我有一个我想要构建的子目录foo/
CMakeLists.txt:
add_subdirectory(foo)
在foo/
内部我有许多我想要构建的目标,我希望“分组”它们在一个虚假目标下,也称为foo
。< / p>
foo/CMakeLists.txt:
add_custom_target(foo ALL)
add_library (foo_lib ...)
add_executable(foo_bin ...)
add_executable(foo_tests ...)
add_dependencies(foo foo_lib)
add_dependencies(foo foo_bin)
add_dependencies(foo foo_test)
这样我就可以通过输入make foo
这很好,,除非我在foo/
上面的目录
make foo
不执行任何操作。
我认为这是因为foo
认为make
目标不是过时的,因为目录存在。修复方法是将其标记为foo
目标。
根据add_custom_target
上的CMake文档,目标将始终视为过时(即:用PHONY
表示,它将是{{ 1}}目标)。
问题:
为什么我的make
自定义目标没有在包含PHONY
子目录的目录中构建?