假设我有一个具有以下目录结构的项目:
project
src
file1.cpp
file2.cpp
CMakeLists.txt
demos
demo1.cpp
demo2.cpp
CMakeLists.txt
CMakeLists.txt
在主CMakeLists.txt
文件中,我有以下几行:
add_subdirectory(src)
add_subdirectory(demos EXCLUDE_FROM_ALL)
据我所知,用于EXCLUDE_FROM_ALL
目录的demos
参数具有仅显式构建它的效果。也就是说,要构建目标demo1
和demo2
,我需要执行:
make demo1
make demo2
我的问题是:有没有办法将所有这些demo1
和demo2
目标组合到一个demos
目标中,然后输入:
make demos
在一个包含数十个演示的项目中,明确构建每个演示都非常烦人。
答案 0 :(得分:1)
如果我没记错的话,你可以去演示(cd演示)并输入make来制作所有演示目标。
答案 1 :(得分:1)
好的,找到了解决方案!我会在这里发帖以防其他人需要这样的行为。 唯一需要的是定义自定义目标如下:
# Add target "demos" for building the demos
add_custom_target(demos
COMMAND ${CMAKE_BUILD_TOOL}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/demos")