diff options
Diffstat (limited to 'Source/cmIfCommand.h')
-rw-r--r-- | Source/cmIfCommand.h | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h index 94e4d998a..f794b78b8 100644 --- a/Source/cmIfCommand.h +++ b/Source/cmIfCommand.h @@ -26,7 +26,7 @@ public: cmExecutionStatus &); virtual bool ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf); - + std::vector<cmListFileArgument> Args; std::vector<cmListFileFunction> Functions; bool IsBlocking; @@ -41,7 +41,7 @@ public: /** * This is a virtual constructor for the command. */ - virtual cmCommand* Clone() + virtual cmCommand* Clone() { return new cmIfCommand; } @@ -52,7 +52,7 @@ public: */ virtual bool InvokeInitialPass(const std::vector<cmListFileArgument>& args, cmExecutionStatus &); - + /** * This is called when the command is first encountered in * the CMakeLists.txt file. @@ -72,7 +72,7 @@ public: { return "Conditionally execute a group of commands."; } - + /** * This determines if the command is invoked when in script mode. */ @@ -114,7 +114,7 @@ public: "will be evaluated. Possible expressions are:\n" " if(<constant>)\n" "True if the constant is 1, ON, YES, TRUE, Y, or a non-zero number. " - "False if the constant is 0, OFF, NO, FALSE, N, IGNORE, \"\", " + "False if the constant is 0, OFF, NO, FALSE, N, IGNORE, NOTFOUND, '', " "or ends in the suffix '-NOTFOUND'. " "Named boolean constants are case-insensitive. " "If the argument is not one of these constants, " @@ -149,7 +149,12 @@ public: " if(file1 IS_NEWER_THAN file2)\n" "True if file1 is newer than file2 or if one of the two files " "doesn't exist. " - "Behavior is well-defined only for full paths.\n" + "Behavior is well-defined only for full paths. " + "If the file time stamps are exactly the same, an " + "IS_NEWER_THAN comparison returns true, so that any dependent " + "build operations will occur in the event of a tie. " + "This includes the case of passing the same file name for both " + "file1 and file2.\n" " if(IS_DIRECTORY directory-name)\n" "True if the given name is a directory. " "Behavior is well-defined only for full paths.\n" @@ -238,22 +243,22 @@ public: "7) The left and right hand arguments to AND OR are " "independently tested to see if they are boolean constants, if " "so they are used as such, otherwise they are assumed to be " - "variables and are dereferenced. \n" + "variables and are dereferenced. \n" ; } // this is a shared function for both If and Else to determine if the // arguments were valid, and if so, was the response true. If there is // an error, the errorString will be set. - static bool IsTrue(const std::vector<std::string> &args, - std::string &errorString, cmMakefile *mf, + static bool IsTrue(const std::vector<std::string> &args, + std::string &errorString, cmMakefile *mf, cmake::MessageType &status); - + // Get a definition from the makefile. If it doesn't exist, // return the original string. static const char* GetVariableOrString(const char* str, const cmMakefile* mf); - + cmTypeMacro(cmIfCommand, cmCommand); }; |