From bed3ac8741405132096430c9f61578df9f8cfbf9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 2 Jun 2008 16:45:07 -0400 Subject: ENH: Remove SKIP_RULE_DEPENDS option from add_custom_command() - Option was recently added but never released. - Custom commands no longer depend on build.make so we do not need the option. - Rule hashes now take care of rebuilding when rules change so the dependency is not needed. --- Source/cmAddCustomCommandCommand.cxx | 21 +++------------------ Source/cmAddCustomCommandCommand.h | 8 +------- Source/cmCustomCommand.cxx | 18 +++--------------- Source/cmCustomCommand.h | 5 ----- Tests/CustomCommand/CMakeLists.txt | 8 -------- Tests/CustomCommand/foo.in | 3 +-- Tests/CustomCommand/gen_once.c.in | 1 - 7 files changed, 8 insertions(+), 56 deletions(-) delete mode 100644 Tests/CustomCommand/gen_once.c.in diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx index afbdc70..5912a79 100644 --- a/Source/cmAddCustomCommandCommand.cxx +++ b/Source/cmAddCustomCommandCommand.cxx @@ -40,7 +40,6 @@ bool cmAddCustomCommandCommand std::vector depends, outputs, output; bool verbatim = false; bool append = false; - bool skip_rule_depends = false; std::string implicit_depends_lang; cmCustomCommand::ImplicitDependsList implicit_depends; @@ -104,11 +103,6 @@ bool cmAddCustomCommandCommand { verbatim = true; } - else if(copy == "SKIP_RULE_DEPENDS") - { - doing = doing_nothing; - skip_rule_depends = true; - } else if(copy == "APPEND") { append = true; @@ -316,8 +310,8 @@ bool cmAddCustomCommandCommand working.c_str(), false, escapeOldStyle); - // Get the rule object to add some extra information. - if(!implicit_depends.empty() || skip_rule_depends) + // Add implicit dependency scanning requests if any were given. + if(!implicit_depends.empty()) { bool okay = false; if(cmSourceFile* sf = @@ -326,16 +320,7 @@ bool cmAddCustomCommandCommand if(cmCustomCommand* cc = sf->GetCustomCommand()) { okay = true; - - // 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); + cc->SetImplicitDepends(implicit_depends); } } if(!okay) diff --git a/Source/cmAddCustomCommandCommand.h b/Source/cmAddCustomCommandCommand.h index b58a398..7829b61 100644 --- a/Source/cmAddCustomCommandCommand.h +++ b/Source/cmAddCustomCommandCommand.h @@ -71,7 +71,7 @@ public: " COMMAND command1 [ARGS] [args1...]\n" " [COMMAND command2 [ARGS] [args2...] ...]\n" " [MAIN_DEPENDENCY depend]\n" - " [DEPENDS [depends...]] [SKIP_RULE_DEPENDS]\n" + " [DEPENDS [depends...]]\n" " [IMPLICIT_DEPENDS depend1 ...]\n" " [WORKING_DIRECTORY dir]\n" " [COMMENT comment] [VERBATIM] [APPEND])\n" @@ -134,12 +134,6 @@ public: "created as a file on disk it should be marked as SYMBOLIC with " "SET_SOURCE_FILES_PROPERTIES.\n" - "The SKIP_RULE_DEPENDS option prevents the custom build rule from " - "having a dependency on itself. This prevents the rule from running " - "again just because the command changed but is useful to create " - "rules that have absolutely no dependencies. Such rules run only " - "when the output file is missing.\n" - "The IMPLICIT_DEPENDS option requests scanning of implicit " "dependencies of an input file. The language given specifies the " "programming language whose corresponding dependency scanner should " diff --git a/Source/cmCustomCommand.cxx b/Source/cmCustomCommand.cxx index b2f5c87..60896b1 100644 --- a/Source/cmCustomCommand.cxx +++ b/Source/cmCustomCommand.cxx @@ -22,7 +22,6 @@ cmCustomCommand::cmCustomCommand() this->HaveComment = false; this->EscapeOldStyle = true; this->EscapeAllowMakeVars = false; - this->SkipRuleDepends = false; } //---------------------------------------------------------------------------- @@ -51,9 +50,10 @@ cmCustomCommand::cmCustomCommand(const std::vector& outputs, Comment(comment?comment:""), WorkingDirectory(workingDirectory?workingDirectory:""), EscapeAllowMakeVars(false), - EscapeOldStyle(true), - SkipRuleDepends(false) + EscapeOldStyle(true) { + this->EscapeOldStyle = true; + this->EscapeAllowMakeVars = false; } //---------------------------------------------------------------------------- @@ -136,18 +136,6 @@ void cmCustomCommand::SetEscapeAllowMakeVars(bool b) } //---------------------------------------------------------------------------- -bool cmCustomCommand::GetSkipRuleDepends() const -{ - return this->SkipRuleDepends; -} - -//---------------------------------------------------------------------------- -void cmCustomCommand::SetSkipRuleDepends(bool b) -{ - this->SkipRuleDepends = b; -} - -//---------------------------------------------------------------------------- cmCustomCommand::ImplicitDependsList const& cmCustomCommand::GetImplicitDepends() const { diff --git a/Source/cmCustomCommand.h b/Source/cmCustomCommand.h index c6ad772..70319e5 100644 --- a/Source/cmCustomCommand.h +++ b/Source/cmCustomCommand.h @@ -68,10 +68,6 @@ public: bool GetEscapeAllowMakeVars() const; void SetEscapeAllowMakeVars(bool b); - /** Set/Get whether to skip the dependency on the rule itself. */ - bool GetSkipRuleDepends() const; - void SetSkipRuleDepends(bool b); - typedef std::pair ImplicitDependsPair; class ImplicitDependsList: public std::vector {}; void SetImplicitDepends(ImplicitDependsList const&); @@ -87,7 +83,6 @@ private: std::string WorkingDirectory; bool EscapeAllowMakeVars; bool EscapeOldStyle; - bool SkipRuleDepends; ImplicitDependsList ImplicitDepends; }; diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt index 5ee0519..7e9f29c 100644 --- a/Tests/CustomCommand/CMakeLists.txt +++ b/Tests/CustomCommand/CMakeLists.txt @@ -151,14 +151,6 @@ ADD_EXECUTABLE(CustomCommand ${PROJECT_BINARY_DIR}/generated.c ${PROJECT_BINARY_DIR}/not_included.h gen_redirect.c # default location for custom commands is in build tree - gen_once.c - ) - -# Add a rule with no dependencies. -ADD_CUSTOM_COMMAND( - OUTPUT gen_once.c - COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/gen_once.c.in ${PROJECT_BINARY_DIR}/gen_once.c - SKIP_RULE_DEPENDS ) # Add the rule to create generated.c at build time. This is placed diff --git a/Tests/CustomCommand/foo.in b/Tests/CustomCommand/foo.in index c5ce340..08c559d 100644 --- a/Tests/CustomCommand/foo.in +++ b/Tests/CustomCommand/foo.in @@ -6,11 +6,10 @@ int generated(); int wrapped(); -int gen_once(void); int main () { - if (generated()*wrapped()*doc()*gen_once() == 3*5*7*11) + if (generated()*wrapped()*doc() == 3*5*7) { FILE* fin = fopen(PROJECT_BINARY_DIR "/not_included.h", "r"); if(fin) diff --git a/Tests/CustomCommand/gen_once.c.in b/Tests/CustomCommand/gen_once.c.in deleted file mode 100644 index dc8eb67..0000000 --- a/Tests/CustomCommand/gen_once.c.in +++ /dev/null @@ -1 +0,0 @@ -int gen_once(void) { return 11; } -- cgit v0.12