1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

core: add appropriate compiler/linker options for code coverage with clang

This commit is contained in:
Sébastien Helleu
2025-05-07 13:18:25 +02:00
parent 7cae4b276d
commit 85f565f6c1
3 changed files with 15 additions and 8 deletions
+3 -3
View File
@@ -139,7 +139,7 @@ jobs:
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_FUZZ=ON"
buildargs: "-DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "${{ matrix.os }} (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
@@ -305,7 +305,7 @@ jobs:
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_FUZZ=ON"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "rockylinux-9 (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
@@ -354,7 +354,7 @@ jobs:
- name: "clang"
cc: "clang"
cxx: "clang++"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_FUZZ=ON"
buildargs: "-DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON -DENABLE_CODE_COVERAGE=ON -DENABLE_FUZZ=ON"
name: "freebsd-14 (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
+11 -4
View File
@@ -33,8 +33,8 @@ set(CMAKE_SKIP_RPATH ON)
# compiler options
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra -Werror-implicit-function-declaration -Wformat -Werror=format-security")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fms-extensions -Wall -Wextra")
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
# extra options specific to gcc/g++
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# extra options specific to GCC
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-overflow=2 -Wformat-truncation=2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-overflow=2 -Wformat-truncation=2")
endif()
@@ -137,8 +137,15 @@ option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
# code coverage
add_library(coverage_config INTERFACE)
if(ENABLE_CODE_COVERAGE)
target_compile_options(coverage_config INTERFACE -O0 -g --coverage)
target_link_libraries(coverage_config INTERFACE --coverage)
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# GCC
target_compile_options(coverage_config INTERFACE -O0 -g --coverage)
target_link_libraries(coverage_config INTERFACE --coverage)
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
# Clang
target_compile_options(coverage_config INTERFACE -g -fprofile-instr-generate -fcoverage-mapping)
target_link_libraries(coverage_config INTERFACE -fprofile-instr-generate)
endif()
endif()
# headless mode is required for documentation
+1 -1
View File
@@ -95,7 +95,7 @@ set(FUZZ_CORE_TARGETS calc crypto string utf8)
foreach(fuzz_target ${FUZZ_CORE_TARGETS})
add_executable(weechat_core_${fuzz_target}_fuzzer core/${fuzz_target}-fuzzer.c)
target_link_libraries(weechat_core_${fuzz_target}_fuzzer ${FUZZ_TARGET_LINK})
target_link_libraries(weechat_core_${fuzz_target}_fuzzer ${FUZZ_TARGET_LINK} coverage_config)
set_target_properties(weechat_core_${fuzz_target}_fuzzer PROPERTIES LINK_FLAGS "$ENV{LIB_FUZZING_ENGINE}")
add_dependencies(weechat_core_${fuzz_target}_fuzzer ${FUZZ_TARGET_DEPS})
endforeach()