windows - 如何在 cmake 中使用 add_test 传递 ${CTEST_CONFIGURATION_TYPE}

标签 windows cmake ctest

我似乎无法弄清楚如何在 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/

相关文章:

c# - 为什么我的 WPF 应用程序不显示?

cmake - 如果 cmake 2.8 中的值不相等

c++ - 将 cmake 编译器从 clang 更改为 g++ for mac

c - 我如何告诉 cmake 执行这两个步骤来使用 winpcap?

c++ - Catch lib(单元测试)和 CTest(CMake)集成

C++在WM6.1上锁定tabskbar但也锁定windows键

c - Windows 套接字错误代码 10055

c++ - 如何将 INT64 写入 CString

cmake - CTest 在 make <target> 后生成并提交 gcov.tar 到 Cdash

cmake - 如何将 CTest 与 Node js 命令一起使用,测试使用 emscripten 从 C++ 编译的 JS 文件,并使用 Catch2?