【发布时间】:2012-02-27 15:24:52
【问题描述】:
我似乎无法弄清楚如何在 cmake 中使用 add_test 传递 ${CTEST_CONFIGURATION_TYPE} 而无需 CMake 添加额外的转义字符。
我目前正在使用 cmake 生成 VS 项目文件并设置 RUNTIME_OUTPUT_DIRECTORY 并且需要使用此目录 + 配置作为一些测试的工作目录,因为它们依赖于其他构建的可执行文件。
我尝试过使用
add_test(NAME test
WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CTEST_CONFIGURATION_TYPE}"
COMMAND test ${TEST_ARGS})
这会正确找到我的测试可执行文件,但是生成的 CTestTestfile.cmake 文件包含
WORKING_DIRECTORY "<CORRECT_RUNTIME_PATH>/\${CTEST_CONFIGURATION_TYPE}"
无论如何我可以让它工作还是我每次都必须通过命令行将正确的目录传递给测试?
【问题讨论】:
-
为了澄清,您想传递一个包含文字 ${CTEST_CONFIGURATION_TYPE} 的字符串,而不是 CMake 用变量的内容替换它?
-
是的,这样生成的 CTestTestfile.cmake 包含行 set_tests_properties(test WORKING_DIRECTORY "
/${CTEST_CONFIGURATION_TYPE}")