如何在CMake中打印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),这是错误的,因为我在单独的文件夹中进行构建。 / p>

Visual Studio生成器的WORKING_DIRECTORY设置是否可能被破坏?

如果没有,如何在WORKING_DIRECTORY之后打印add_test的状态?

解决方法

有几种方法可以验证WORKING_DIRECTORY的设置是否正确。

以编程方式(如评论所述):

get_test_property(${PROJECT_NAME} WORKING_DIRECTORY test_dir)
message("My test's working directory: ${test_dir}")

检查:

导航至构建文件夹中的CTestTestfile.cmake文件,然后在文本编辑器中将其打开。您可以在此处的命令中看到WORKING_DIRECTORY属性已正确设置。


但是,$(ProjectDir) Visual Studio项目的工作目录中列出的RUN_TESTS指向您的构建目录中的文件夹;这是一个 Debugging 属性,在运行CTest测试时实际上并未使用。在Visual Studio调试可执行文件时使用。由于RUN_TESTS项目实际上无法调试(CTest测试实际上是作为构建后事件运行的),因此该工作目录属性不适用于您的情况。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...