如何配置CMake以特定顺序构建多个项目?

时间:2019-09-14 14:42:03

标签: c++ cmake

我有一个使用CMake的C ++项目。当我使用cmake -G "Visual Studio 15" . -B .\build生成Visual Studio文件时,可以在Solution Explorer项目ALL_BUILDRUN_TESTSZERO_CHECK中的CMakePredefinedTargets,Continuous,{ CTestDashboardTargets和Experimental(这是我的实际项目)下的{1}},NightlyNightlyMemoryCheck

构建MyProject时,我看到Visual Studio首先构建了MyProject项目,然后构建了ZERO_CHECK。但是,我也想在MyProject之后建立RUN_TESTS项目,因为这是mu单元测试所在的地方。现在,我只需右键单击解决方案,然后选择MyProject即可构建“解决方案属性”。但是,当我构建RUN_TESTS时,是否可以自动构建并运行项目RUN_TESTS

我的MyProject是:

CMakeLists.txt

就我而言,我正在使用Catch2作为测试框架。谢谢。

1 个答案:

答案 0 :(得分:1)

一种可行的解决方案是使用add_custom_command形式的POST_BUILD事件。此示例在构建RUN_TESTS目标之后“构建” MyProject目标(实际上运行测试):

# Run the tests after building target.
add_custom_command(TARGET MyProject
    POST_BUILD
    COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target RUN_TESTS
)

尽管有些陈旧,但这是thread,提供了一些在构建项目时运行个体测试的示例。