cmake目标行为取决于源内和源外调用

时间:2014-07-01 19:58:36

标签: cmake

在我的项目中,我有大量的测试可执行文件,我只想在需要时构建它们,即“make tests”应该在没有args的“make”中创建它们。

在我的顶级CMakeLists.txt中,我有

add_custom_target(tests)

在我的子目录CMakeLists.txt中,我有

set (TEST_APP_LIST foo bar)
foreach (TEST_APP ${TEST_APP_LIST})
    add_executable(${TEST_APP} EXCLUDE_FROM_ALL ${TEST_APP}.cpp)
    target_link_libraries(${TEST_APP} ${MY_LIBS})
    add_dependencies(tests ${TEST_APP})
endforeach(TEST_APP)

这是踢球者:当我进行源外构建时,这很好用,但是如果我进行源内构建,即使我没有指定它,也会构建测试目标。我想在两种情况下明确要求测试目标。

很有可能说“好吧,只是不要做源内构建,因为它们是邪恶的”这是公平的,但目前,我需要支持这两种方法一段时间。

这是使用cmake 2.6版。

0 个答案:

没有答案