清.创建覆盖目标

CMake. Create coverage target

本文关键字:目标 覆盖 创建      更新时间:2023-10-16

很抱歉这么受欢迎的问题。但我不能相应地将这里的答案应用到我的环境中。

我有 API 和测试。两者都是主"虚拟"项目的子项目。我坚持了下来,因为我使用了CMake-anitpattern:

cmake_minimum_required (VERSION 2.8)
set(CMAKE_SKIP_RPATH FALSE)
add_subdirectory ( src )
add_subdirectory ( test )
add_custom_target(coverage
    COMMAND make
    COMMAND sh ${CMAKE_SOURCE_DIR}/do_coverage.sh
)

这个COMMAND make是一个糟糕的解决方案,因为我计划稍后在 Windows 上构建我的项目(是的,我也需要将 sh-script 中的命令放在 CMakeList 中.txt用于此目的)。

那么,我怎样才能让CMake在自动模式下构建测试项目来做覆盖的事情(gcov,gcovr),即使cmake之后我想直接make coverage?谢谢!

你可以使用cmake来构建它,如下所示:

add_custom_target(
    coverage
    COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}
    COMMAND sh ${CMAKE_SOURCE_DIR}/do_coverage.sh
  )