gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:44:01 25 4
gpt4 key购买 nike

我有一个使用 CMake 的 C++ 项目。当我使用 cmake -G "Visual Studio 15" . -B .\build 生成 Visual Studio 文件时,我可以在解决方案资源管理器项目中看到 ALL_BUILD , RUN_TESTS , 和 ZERO_CHECK在 CMakePredefinedTargets 下,Continuous , Experimental , Nightly , 和 NightlyMemoryCheck在 CTestDashboardTargets 和 MyProject 下(这是我的实际项目)。

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

我的 CMakeLists.txt是:

cmake_minimum_required (VERSION 3.8)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
project("MyProject")

add_executable(MyProject test.cpp)

# Configure unit tests
find_package(Catch2 REQUIRED)
target_link_libraries(MyProject Catch2::Catch2)

include(CTest)
include(Catch)
catch_discover_tests(MyProject)

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

最佳答案

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

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

虽然有点过时,但这是一个 thread提供一些在构建项目时运行个人测试的额外示例。

关于c++ - 如何配置 CMake 以特定顺序构建多个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57936541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com