CMake自定义目标,其名称与未构建的子目录相同

时间:2016-09-05 05:21:42

标签: cmake gnu-make

我有一个我想要构建的子目录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/ 上面的目录

<{1}}子目录所在的目录中的

make foo不执行任何操作。

我认为这是因为foo认为make目标不是过时的,因为目录存在。修复方法是将其标记为foo目标。

根据add_custom_target上的CMake文档,目标将始终视为过时(即:用PHONY表示,它将是{{ 1}}目标)。

问题:

为什么我的make自定义目标没有在包含PHONY子目录的目录中构建?

0 个答案:

没有答案