Как определить выходной каталог файлов покрытия в CMake - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь создать очень простую регрессионную модель, которая (помимо прочего) создает и компилирует цель GCC для покрытия, выполняет, а затем публикует стандартный отчет покрытия Cobertura (все в 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} )

Это генерирует мои файлы * .gcno и * .gcda в каталоге /test/build/gcc/CMakeFiles/my_project.dir/*, но для простотыпостобработка, я думаю, я хочу, чтобы эти файлы размещались рядом с их источником.Это возможно?Если да, то как?Это лучшая практика?Я все еще довольно зеленый, когда дело доходит до CMake.

...