私は非常に単純な回帰モデルを作成しようとしています (とりわけ)、カバレッジ用の GCC ターゲットを構築およびコンパイルし、実行し、標準の Cobertura カバレッジ レポートを発行します (すべて Jenkins 内)。Jenkins の部分はここでは関係ありません。現時点では、CMake の構文だけに関心があります。これまでのところ、これは私の CMake ファイルです。
cmake_minimum_required( VERSION 3.15 )
# Project's name
project( my_project )
# Set the output folder where your program will be created
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/test/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set( CMAKE_VERBOSE_MAKEFILE on )
# Generate coverage on GCC.
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
set(LDFLAGS "${LDFLAGS} -lgcov -fprofile-arcs")
endif()
# Includes and Sources
include_directories(${PROJECT_SOURCE_DIR}/inc)
file(GLOB APP_SRC "./src/*.c")
file(GLOB TEST_DEPENDS_SRC "./test/src/*.c")
# Add executable to list.
add_executable( ${PROJECT_NAME}_Test ${APP_SRC} ${TEST_DEPENDS_SRC} )
これにより、ディレクトリ /test/build/gcc/CMakeFiles/my_project.dir/* に *.gcno および *.gcda ファイルが生成されますが、後処理を容易にするために、これらのファイルをソースと一緒に配置する必要があると思います。それは可能ですか?もしそうなら、どのように?それはベストプラクティスですか?CMakeに関しては、私はまだかなりグリーンです。