如何在 CMake 中打印 WORKING_DIRECTORY?
How to print WORKING_DIRECTORY in CMake?
我的 CMakeLists.txt 中有这一行:
add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
问题是WORKING_DIRECTORY
似乎没有设置正确。
message("Futurama ${PROJECT_SOURCE_DIR}")
它表明 PROJECT_SOURCE_DIR
是我所期望的,但是当我 运行 我生成的 VS 项目时,工作文件夹是 $(ProjectDir)
,这是错误的,因为我进行了构建在单独的文件夹中。
Visual Studio 生成器的 WORKING_DIRECTORY
设置是否有可能被破坏?
如果不是,我如何在add_test
之后打印WORKING_DIRECTORY
的状态?
您可以通过多种方式验证 WORKING_DIRECTORY
是否设置正确。
以编程方式(如评论):
get_test_property(${PROJECT_NAME} WORKING_DIRECTORY test_dir)
message("My test's working directory: ${test_dir}")
检验:
导航到构建文件夹中的 CTestTestfile.cmake
文件,然后在文本编辑器中打开它。您可以在此处的命令中看到 WORKING_DIRECTORY
属性 已正确设置。
但是,为 RUN_TESTS
Visual Studio 项目的 工作目录 列出的 $(ProjectDir)
指向构建目录中的文件夹;这是一个 Debugging 属性 并且在 运行 进行 CTest 测试时并没有实际使用。这在 Visual Studio 调试可执行文件时使用。因为 RUN_TESTS
项目实际上不能被调试(CTest 测试实际上是 运行 作为一个 post-build 事件),这个 Working Directory 属性 不适用于您的情况。
我的 CMakeLists.txt 中有这一行:
add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
问题是WORKING_DIRECTORY
似乎没有设置正确。
message("Futurama ${PROJECT_SOURCE_DIR}")
它表明 PROJECT_SOURCE_DIR
是我所期望的,但是当我 运行 我生成的 VS 项目时,工作文件夹是 $(ProjectDir)
,这是错误的,因为我进行了构建在单独的文件夹中。
Visual Studio 生成器的 WORKING_DIRECTORY
设置是否有可能被破坏?
如果不是,我如何在add_test
之后打印WORKING_DIRECTORY
的状态?
您可以通过多种方式验证 WORKING_DIRECTORY
是否设置正确。
以编程方式(如评论):
get_test_property(${PROJECT_NAME} WORKING_DIRECTORY test_dir)
message("My test's working directory: ${test_dir}")
检验:
导航到构建文件夹中的 CTestTestfile.cmake
文件,然后在文本编辑器中打开它。您可以在此处的命令中看到 WORKING_DIRECTORY
属性 已正确设置。
但是,为 RUN_TESTS
Visual Studio 项目的 工作目录 列出的 $(ProjectDir)
指向构建目录中的文件夹;这是一个 Debugging 属性 并且在 运行 进行 CTest 测试时并没有实际使用。这在 Visual Studio 调试可执行文件时使用。因为 RUN_TESTS
项目实际上不能被调试(CTest 测试实际上是 运行 作为一个 post-build 事件),这个 Working Directory 属性 不适用于您的情况。