diff options
Diffstat (limited to 'Source/cmAddCustomCommandCommand.cxx')
-rw-r--r-- | Source/cmAddCustomCommandCommand.cxx | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx index 5912a79..afbdc70 100644 --- a/Source/cmAddCustomCommandCommand.cxx +++ b/Source/cmAddCustomCommandCommand.cxx @@ -40,6 +40,7 @@ bool cmAddCustomCommandCommand std::vector<std::string> depends, outputs, output; bool verbatim = false; bool append = false; + bool skip_rule_depends = false; std::string implicit_depends_lang; cmCustomCommand::ImplicitDependsList implicit_depends; @@ -103,6 +104,11 @@ bool cmAddCustomCommandCommand { verbatim = true; } + else if(copy == "SKIP_RULE_DEPENDS") + { + doing = doing_nothing; + skip_rule_depends = true; + } else if(copy == "APPEND") { append = true; @@ -310,8 +316,8 @@ bool cmAddCustomCommandCommand working.c_str(), false, escapeOldStyle); - // Add implicit dependency scanning requests if any were given. - if(!implicit_depends.empty()) + // Get the rule object to add some extra information. + if(!implicit_depends.empty() || skip_rule_depends) { bool okay = false; if(cmSourceFile* sf = @@ -320,7 +326,16 @@ bool cmAddCustomCommandCommand if(cmCustomCommand* cc = sf->GetCustomCommand()) { okay = true; - cc->SetImplicitDepends(implicit_depends); + + // Add implicit dependency scanning requests if any were + // given. + if(!implicit_depends.empty()) + { + cc->SetImplicitDepends(implicit_depends); + } + + // Set the rule dependency state. + cc->SetSkipRuleDepends(skip_rule_depends); } } if(!okay) |