diff options
author | Ben Boeckel <mathstuf@gmail.com> | 2013-08-07 21:07:30 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-09-20 12:18:22 (GMT) |
commit | d331292c121269ccfceee302a0f9bbb960b9f02d (patch) | |
tree | be5575ff1ac79b79fbd63d2bef957a8c17692f2f /Source | |
parent | 6fe5c4afc0a8363927ecd48bea4cc822894f97db (diff) | |
download | CMake-d331292c121269ccfceee302a0f9bbb960b9f02d.zip CMake-d331292c121269ccfceee302a0f9bbb960b9f02d.tar.gz CMake-d331292c121269ccfceee302a0f9bbb960b9f02d.tar.bz2 |
cmTestGenerator: Evaluate generator expressions in test properties
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.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmSetTestsPropertiesCommand.h | 3 | ||||
-rw-r--r-- | Source/cmTestGenerator.cxx | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/Source/cmSetTestsPropertiesCommand.h b/Source/cmSetTestsPropertiesCommand.h index 3a59218..f2f2611 100644 --- a/Source/cmSetTestsPropertiesCommand.h +++ b/Source/cmSetTestsPropertiesCommand.h @@ -51,7 +51,8 @@ public: " set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2" " value2)\n" "Set a property for the tests. If the property is not found, CMake " - "will report an error. The properties include:\n" + "will report an error. Generator expressions will be expanded the same " + "as supported by the test's add_test call. The properties include:\n" "WILL_FAIL: If set to true, this will invert the pass/fail flag of the" " test.\n" "PASS_REGULAR_EXPRESSION: If set, the test output will be checked " diff --git a/Source/cmTestGenerator.cxx b/Source/cmTestGenerator.cxx index 3167362..e5984a8 100644 --- a/Source/cmTestGenerator.cxx +++ b/Source/cmTestGenerator.cxx @@ -117,7 +117,8 @@ void cmTestGenerator::GenerateScriptForConfig(std::ostream& os, i != pm.end(); ++i) { os << " " << i->first - << " " << lg->EscapeForCMake(i->second.GetValue()); + << " " << lg->EscapeForCMake( + ge.Parse(i->second.GetValue())->Evaluate(mf, config)); } os << ")" << std::endl; } |