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:
@@ -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
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user