Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用CMake将测试可执行文件放入单独的文件夹?_Cmake - Fatal编程技术网

如何使用CMake将测试可执行文件放入单独的文件夹?

如何使用CMake将测试可执行文件放入单独的文件夹?,cmake,Cmake,因此,我正在进行一个源代码外构建,希望我的二进制文件位于bin文件夹中。我使用下面的命令来实现这一点 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin) 但是,如果所有实际上只是编译测试的可执行文件(通过add_test添加)最终都位于bin/test中,那就太好了。实现这一目标的好办法是什么 我的项目结构,其中unit_test_src中的每个测试文件夹都有自己的CMakeLists.txt文件: root | ----

因此,我正在进行一个源代码外构建,希望我的二进制文件位于
bin
文件夹中。我使用下面的命令来实现这一点

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
但是,如果所有实际上只是编译测试的可执行文件(通过
add_test
添加)最终都位于
bin/test
中,那就太好了。实现这一目标的好办法是什么

我的项目结构,其中unit_test_src中的每个测试文件夹都有自己的
CMakeLists.txt
文件:

root
|
---- src
|    ...
|
---- unit_test_src
|    ...
|
---- bin
|    |
|    ---- test
|
CMakeLists.txt
是一种全球性的财产。您可以使用设置目标的目录,方法是:

可能重复的
set_target_properties(
    test1 test2 ...
    PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test
)