我似乎无法弄清楚如何在 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}"
无论如何我可以让它工作,还是我每次都必须通过命令行将正确的目录传递给测试?
最佳答案
目前一般情况下这是不可能的。在下一个版本的 CMake 中,您应该可以使用此 commit 中的功能在您的测试属性中使用生成器表达式。
关于windows - 如何在 cmake 中使用 add_test 传递 ${CTEST_CONFIGURATION_TYPE},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467510/