summaryrefslogtreecommitdiffstats
path: root/Source/cmTestGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'test-property-genex' into generate-modern-styleBrad King2013-09-201-22/+34
|\ | | | | | | | | | | Resolve conflict in Source/cmTestGenerator.cxx by taking "their" side (test-property-genex). It already accounts for the lower-case change in "our" side (generate-modern-style).
| * cmTestGenerator: Evaluate generator expressions in test propertiesBen Boeckel2013-09-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful for cases like: add_test(NAME mytest COMMAND mydriver $<TARGET_FILE:myexe>) set_tests_properties(mytest PROPERTIES REQUIRED_FILES "$<TARGET_FILE:myexe>" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>" ) In this example we require the actual test executable to exist to run the test in addition to the test driver at argv[0]. Also the $<CONFIGURATION> expression improves over \${CTEST_CONFIGURATION_TYPE} because the latter is not normalized for case-sensitive filesystems.
| * cmTestGenerator: Separate test properties for each configurationBrad King2013-09-201-22/+33
| | | | | | | | | | | | | | | | | | | | | | | | Move property generation from GenerateScriptConfigs to separate copies in GenerateOldStyle and GenerateScriptForConfig. This causes the per-config tests generated for the add_test(NAME) signature to each get their own test properties. This will allow us to later change the property values based on the test configuration. While at it, generate lower-case CMake code (e.g. set_tests_properties). Inspired-by: Ben Boeckel <mathstuf@gmail.com>
* | Generate modern-style cmake code.Stephen Kelly2013-08-221-4/+4
|/ | | | | | | | | | | The commits 9db31162 (Remove CMake-language block-end command arguments, 2012-08-13) and 77543bde (Convert CMake-language commands to lower case, 2012-08-13) changed most cmake code to use lowercase commands and no parameters in termination commands. However, those changes excluded cmake code generated in c++ by cmake. Make a similar style change to code generated by cmake.
* Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressionsStephen Kelly2012-12-201-2/+2
| | | | | The compiled generator expressions need to outlive the creating type. For the same reason, store the input string in a std::string.
* cmGeneratorExpression: Port users to two-stage processingStephen Kelly2012-09-181-4/+4
| | | | | | | | | | Removing the Process() API and removing the parameters from the constructor will allow cmGeneratorExpressions to be cached and evaluated with multiple configs for example, such as when evaluating target properties. This requires the creation of a new compiled representation of cmGeneratorExpression. The cmListFileBacktrace remains in the constructor so that we can record where a particular generator expression appeared in the CMakeLists file.
* CTest: Report tests not run due to unknown configurationBrad King2011-06-101-0/+16
| | | | | | | | | | | | | When add_test(NAME) is called without the CONFIGURATIONS argument then the test is intended to run in any configuration. In multi-config generators like the VS IDE and Xcode tests created by add_test(NAME) can only be run when testing a known configuration (otherwise there is no way to generate the test command line). If no test command line is known for a particular configuration, or if no configuration is given to ctest, report the test as not run instead of silently skipping it. Also fix CMake's own TestsWorkingDirectory test invocation to correct a previously silent failure exposed by this change.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* Introduce "generator expressions" to add_test()Brad King2009-08-111-2/+7
| | | | | | | | This introduces a new syntax called "generator expressions" to the test COMMAND option of the add_test(NAME) command mode. These expressions have a syntax like $<TARGET_FILE:mytarget> and are evaluated during build system generation. This syntax allows per-configuration target output files to be referenced in test commands and arguments.
* Cleanup test property script code generationBrad King2009-08-101-30/+4
| | | | | | | We teach cmTestGenerator::GenerateScriptConfigs to use the general cmLocalGenerator::EscapeForCMake method to write escaped test property values into test scripts. This eliminates the previous hand-coded escaping implementation.
* ENH: Add NAME mode to ADD_TEST commandBrad King2009-03-161-2/+66
| | | | | | | | This creates command mode add_test(NAME ...). This signature is extensible with more keyword arguments later. The main purpose is to enable automatic replacement of target names with built target file locations. A side effect of this feature is support for tests that only run under specific configurations.
* ENH: Refactor storage of test command linesBrad King2009-03-161-5/+9
| | | | | We used to separate the command executable from its argument vector. It is simpler to just store the whole command line in one vector.
* ENH: Refactor generation of CTestTestfile contentBrad King2009-03-161-0/+126
This moves code which generates ADD_TEST and SET_TESTS_PROPERTIES calls into CTestTestfile.cmake files out of cmLocalGenerator and into a cmTestGenerator class. This will allow more advanced generation without cluttering cmLocalGenerator. The cmTestGenerator class derives from cmScriptGenerator to get support for per-configuration script generation (not yet enabled).