【发布时间】:2017-12-08 04:53:56
【问题描述】:
我正在按一些规则对文件夹中的源进行分组,并且我希望能够单独测试每个组以加快迭代速度。为此,我希望 CMake 为每个组生成一个可执行文件。我将项目结构简化为:
root
build
group_1
CMakeLists.txt
group_1_file_1.cpp
group_1_tests
CMakeLists.txt
group_1_file_1_tests.cpp
group_1/CMakeLists.txt 在哪里:
SET(group_1_srcs
${CMAKE_CURRENT_SOURCE_DIR}/group_1_file_1.cpp
)
#Generate standalone application for unit tests when cmake is started with this CMakeLists as root
IF(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
ADD_SUBDIRECTORY("group_1_tests/")
ENDIF()
而group_1/group_1_tests/CMakeLists.txt 是
PROJECT(group_1_tests)
SET(group_1_tests_srcs
${CMAKE_CURRENT_SOURCE_DIR}/group_1_file_1_tests.cpp
)
ADD_EXECUTABLE(${PROJECT_NAME} "${group_1_tests_srcs}" "${group_1_srcs}")
从root/build/ 运行cmake ../group_1 会生成我想要的项目root/build/group_1_tests/group_1_tests.sln,但也会生成root/build/Project.sln,其文件和设置与前一个相同。
您能否解释一下为什么会生成这个项目以及如何避免它?
【问题讨论】:
标签: cmake