summaryrefslogtreecommitdiffstats
path: root/Source/cmAddCustomCommandCommand.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmAddCustomCommandCommand.cxx')
-rw-r--r--Source/cmAddCustomCommandCommand.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx
index 831e9c7..b1398db 100644
--- a/Source/cmAddCustomCommandCommand.cxx
+++ b/Source/cmAddCustomCommandCommand.cxx
@@ -49,6 +49,8 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
bool append = false;
bool uses_terminal = false;
bool command_expand_lists = false;
+ bool depends_explicit_only =
+ mf.IsOn("CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY");
std::string implicit_depends_lang;
cmImplicitDependsList implicit_depends;
@@ -104,6 +106,7 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
MAKE_STATIC_KEYWORD(USES_TERMINAL);
MAKE_STATIC_KEYWORD(VERBATIM);
MAKE_STATIC_KEYWORD(WORKING_DIRECTORY);
+ MAKE_STATIC_KEYWORD(DEPENDS_EXPLICIT_ONLY);
#undef MAKE_STATIC_KEYWORD
static std::unordered_set<std::string> const keywords{
keyAPPEND,
@@ -126,7 +129,8 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
keyTARGET,
keyUSES_TERMINAL,
keyVERBATIM,
- keyWORKING_DIRECTORY
+ keyWORKING_DIRECTORY,
+ keyDEPENDS_EXPLICIT_ONLY
};
for (std::string const& copy : args) {
@@ -155,6 +159,8 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
uses_terminal = true;
} else if (copy == keyCOMMAND_EXPAND_LISTS) {
command_expand_lists = true;
+ } else if (copy == keyDEPENDS_EXPLICIT_ONLY) {
+ depends_explicit_only = true;
} else if (copy == keyTARGET) {
doing = doing_target;
} else if (copy == keyARGS) {
@@ -329,6 +335,7 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
cc->SetDepfile(depfile);
cc->SetJobPool(job_pool);
cc->SetCommandExpandLists(command_expand_lists);
+ cc->SetDependsExplicitOnly(depends_explicit_only);
if (source.empty() && output.empty()) {
// Source is empty, use the target.
mf.AddCustomCommandToTarget(target, cctype, std::move(cc));