diff options
author | David Cole <david.cole@kitware.com> | 2009-12-04 17:09:01 (GMT) |
---|---|---|
committer | David Cole <david.cole@kitware.com> | 2009-12-04 17:09:01 (GMT) |
commit | 0b38bb4c535ae972d7f973e3e69945a6d0c14d75 (patch) | |
tree | ac80395b194b2a8ed2bcf6b1f997b62c21d151be /Source/cmBuildCommand.h | |
parent | af14f1f2c3750ba3cf9b9cc1a809a88b1878a5c3 (diff) | |
download | CMake-0b38bb4c535ae972d7f973e3e69945a6d0c14d75.zip CMake-0b38bb4c535ae972d7f973e3e69945a6d0c14d75.tar.gz CMake-0b38bb4c535ae972d7f973e3e69945a6d0c14d75.tar.bz2 |
Fix issue #2336 - honor the -C arg to ctest. Honor it for all stages of running -D dashboards from the command line and running ctest_configure, ctest_build and ctest_test commands in -S scripts. Also, allow a script to change it by setting the CTEST_CONFIGURATION_TYPE variable: allows for multiple configuration build/test cycles within one script. Add a new signature for the cmake command build_command that accepts CONFIGURATION as one argument. The original build_command signature is still there, but now marked as deprecated in the documentation. Of course... also add CTestConfig tests to verify that -C is honored for -D dashboards and -S scripts.
Diffstat (limited to 'Source/cmBuildCommand.h')
-rw-r--r-- | Source/cmBuildCommand.h | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/Source/cmBuildCommand.h b/Source/cmBuildCommand.h index 9d494e7..703ff88 100644 --- a/Source/cmBuildCommand.h +++ b/Source/cmBuildCommand.h @@ -38,35 +38,60 @@ public: cmExecutionStatus &status); /** + * The primary command signature with optional, KEYWORD-based args. + */ + virtual bool MainSignature(std::vector<std::string> const& args); + + /** + * Legacy "exactly 2 args required" signature. + */ + virtual bool TwoArgsSignature(std::vector<std::string> const& args); + + /** * The name of the command as specified in CMakeList.txt. */ virtual const char* GetName() {return "build_command";} - + /** * Succinct documentation. */ virtual const char* GetTerseDocumentation() { - return "Get the command line that will build this project."; + return "Get the command line to build this project."; } - + /** * More documentation. */ virtual const char* GetFullDocumentation() { return - " build_command(<variable> <makecommand>)\n" - "Sets the given <variable> to a string containing the command that " - "will build this project from the root of the build tree using the " - "build tool given by <makecommand>. <makecommand> should be msdev, " - "nmake, make or one of the end user build tools. " - "This is useful for configuring testing systems."; + " build_command(<variable>\n" + " [CONFIGURATION <config>]\n" + " [PROJECT_NAME <projname>]\n" + " [TARGET <target>])\n" + "Sets the given <variable> to a string containing the command line " + "for building one configuration of a target in a project using the " + "build tool appropriate for the current CMAKE_GENERATOR.\n" + "If CONFIGURATION is omitted, CMake chooses a reasonable default " + "value for multi-configuration generators. CONFIGURATION is " + "ignored for single-configuration generators.\n" + "If PROJECT_NAME is omitted, the resulting command line will build " + "the top level PROJECT in the current build tree.\n" + "If TARGET is omitted, the resulting command line will build " + "everything, effectively using build target 'all' or 'ALL_BUILD'.\n" + " build_command(<cachevariable> <makecommand>)\n" + "This second signature is deprecated, but still available for " + "backwards compatibility. Use the first signature instead.\n" + "Sets the given <cachevariable> to a string containing the command " + "to build this project from the root of the build tree using " + "the build tool given by <makecommand>. <makecommand> should be " + "the full path to msdev, devenv, nmake, make or one of the end " + "user build tools." + ; } - + cmTypeMacro(cmBuildCommand, cmCommand); }; - - #endif |