head 1.1; branch 1.1.1; access; symbols libarchive-3-8-7:1.1.1.2 libarchive-3-8-6:1.1.1.2 pkgsrc-2026Q1:1.1.1.2.0.8 pkgsrc-2026Q1-base:1.1.1.2 libarchive-3-8-5:1.1.1.2 libarchive-3-8-4:1.1.1.2 pkgsrc-2025Q4:1.1.1.2.0.6 pkgsrc-2025Q4-base:1.1.1.2 libarchive-3-8-3:1.1.1.2 libarchive-3-8-2:1.1.1.2 pkgsrc-2025Q3:1.1.1.2.0.4 pkgsrc-2025Q3-base:1.1.1.2 libarchive-3-8-1:1.1.1.2 pkgsrc-2025Q2:1.1.1.2.0.2 pkgsrc-2025Q2-base:1.1.1.2 libarchive-3-8-0:1.1.1.2 libarchive-3-7-9:1.1.1.2 pkgsrc-2025Q1:1.1.1.1.0.72 pkgsrc-2025Q1-base:1.1.1.1 pkgsrc-2024Q4:1.1.1.1.0.70 pkgsrc-2024Q4-base:1.1.1.1 libarchive-3-7-7:1.1.1.1 pkgsrc-2024Q3:1.1.1.1.0.68 pkgsrc-2024Q3-base:1.1.1.1 libarchive-3-7-5:1.1.1.1 pkgsrc-2024Q2:1.1.1.1.0.66 pkgsrc-2024Q2-base:1.1.1.1 libarchive-3-7-4:1.1.1.1 libarchive-3-7-3:1.1.1.1 pkgsrc-2024Q1:1.1.1.1.0.64 pkgsrc-2024Q1-base:1.1.1.1 libarchive-3-7-2:1.1.1.1 pkgsrc-2023Q4:1.1.1.1.0.62 pkgsrc-2023Q4-base:1.1.1.1 pkgsrc-2023Q3:1.1.1.1.0.60 pkgsrc-2023Q3-base:1.1.1.1 pkgsrc-2023Q2:1.1.1.1.0.58 pkgsrc-2023Q2-base:1.1.1.1 pkgsrc-2023Q1:1.1.1.1.0.56 pkgsrc-2023Q1-base:1.1.1.1 pkgsrc-2022Q4:1.1.1.1.0.54 pkgsrc-2022Q4-base:1.1.1.1 pkgsrc-2022Q3:1.1.1.1.0.52 pkgsrc-2022Q3-base:1.1.1.1 pkgsrc-2022Q2:1.1.1.1.0.50 pkgsrc-2022Q2-base:1.1.1.1 pkgsrc-2022Q1:1.1.1.1.0.48 pkgsrc-2022Q1-base:1.1.1.1 pkgsrc-2021Q4:1.1.1.1.0.46 pkgsrc-2021Q4-base:1.1.1.1 pkgsrc-2021Q3:1.1.1.1.0.44 pkgsrc-2021Q3-base:1.1.1.1 pkgsrc-2021Q2:1.1.1.1.0.42 pkgsrc-2021Q2-base:1.1.1.1 pkgsrc-2021Q1:1.1.1.1.0.40 pkgsrc-2021Q1-base:1.1.1.1 pkgsrc-2020Q4:1.1.1.1.0.38 pkgsrc-2020Q4-base:1.1.1.1 pkgsrc-2020Q3:1.1.1.1.0.36 pkgsrc-2020Q3-base:1.1.1.1 pkgsrc-2020Q2:1.1.1.1.0.32 pkgsrc-2020Q2-base:1.1.1.1 pkgsrc-2020Q1:1.1.1.1.0.12 pkgsrc-2020Q1-base:1.1.1.1 pkgsrc-2019Q4:1.1.1.1.0.34 pkgsrc-2019Q4-base:1.1.1.1 pkgsrc-2019Q3:1.1.1.1.0.30 pkgsrc-2019Q3-base:1.1.1.1 libarchive-3-4-0:1.1.1.1 libarchive-3-3-3:1.1.1.1 pkgsrc-2019Q2:1.1.1.1.0.28 pkgsrc-2019Q2-base:1.1.1.1 pkgsrc-2019Q1:1.1.1.1.0.26 pkgsrc-2019Q1-base:1.1.1.1 pkgsrc-2018Q4:1.1.1.1.0.24 pkgsrc-2018Q4-base:1.1.1.1 pkgsrc-2018Q3:1.1.1.1.0.22 pkgsrc-2018Q3-base:1.1.1.1 pkgsrc-2018Q2:1.1.1.1.0.20 pkgsrc-2018Q2-base:1.1.1.1 pkgsrc-2018Q1:1.1.1.1.0.18 pkgsrc-2018Q1-base:1.1.1.1 pkgsrc-2017Q4:1.1.1.1.0.16 pkgsrc-2017Q4-base:1.1.1.1 pkgsrc-2017Q3:1.1.1.1.0.14 pkgsrc-2017Q3-base:1.1.1.1 libarchive-3-3-2:1.1.1.1 pkgsrc-2017Q2:1.1.1.1.0.10 pkgsrc-2017Q2-base:1.1.1.1 pkgsrc-2017Q1:1.1.1.1.0.8 pkgsrc-2017Q1-base:1.1.1.1 libarchive-3-3-1:1.1.1.1 pkgsrc-2016Q4:1.1.1.1.0.6 pkgsrc-2016Q4-base:1.1.1.1 pkgsrc-2016Q3:1.1.1.1.0.4 pkgsrc-2016Q3-base:1.1.1.1 pkgsrc-2016Q2:1.1.1.1.0.2 pkgsrc-2016Q2-base:1.1.1.1 libarchive-3-2-1:1.1.1.1 KIENTZLE:1.1.1; locks; strict; comment @# @; 1.1 date 2016.06.20.17.11.42; author joerg; state Exp; branches 1.1.1.1; next ; commitid rRgm3BqbmbI8aebz; 1.1.1.1 date 2016.06.20.17.11.42; author joerg; state Exp; branches; next 1.1.1.2; commitid rRgm3BqbmbI8aebz; 1.1.1.2 date 2025.04.28.09.44.10; author adam; state Exp; branches; next ; commitid 1zB7ffc4d2qCJNSF; desc @@ 1.1 log @Initial revision @ text @################################################################# # Adds a build target called "coverage" for code coverage. # # This compiles the code using special GCC flags, run the tests, # and then generates a nice HTML output. This new "coverage" make # target will only be available if you build using GCC in Debug # mode. If any of the required programs (lcov and genhtml) were # not found, a FATAL_ERROR message is printed. # # If not already done, this code will set ENABLE_TEST to ON. # # To build the code coverage and open it in your browser do this: # # mkdir debug # cd debug # cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON .. # make -j4 # make coverage # xdg-open coverage/index.html ################################################################# # Find programs we need FIND_PROGRAM(LCOV_EXECUTABLE lcov DOC "Full path to lcov executable") FIND_PROGRAM(GENHTML_EXECUTABLE genhtml DOC "Full path to genhtml executable") MARK_AS_ADVANCED(LCOV_EXECUTABLE GENHTML_EXECUTABLE) # Check, compiler, build types and programs are available IF(NOT CMAKE_COMPILER_IS_GNUCC) MESSAGE(FATAL_ERROR "Coverage can only be built on GCC") ELSEIF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") MESSAGE(FATAL_ERROR "Coverage can only be built in Debug mode") ELSEIF(NOT LCOV_EXECUTABLE) MESSAGE(FATAL_ERROR "lcov executable not found") ELSEIF(NOT GENHTML_EXECUTABLE) MESSAGE(FATAL_ERROR "genhtml executable not found") ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) # Enable testing if not already done SET(ENABLE_TEST ON) ################################################################# # Set special compiler and linker flags for test coverage ################################################################# # 0. Enable debug: -g SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") # 1. Disable optimizations: -O0 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0") # 2. Enable all kind of warnings: SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -W") # 3. Enable special coverage flag (HINT: --coverage is a synonym for -fprofile-arcs -ftest-coverage) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") ################################################################# ADD_CUSTOM_TARGET(coverage COMMAND ${CMAKE_COMMAND} -E echo "Beginning test coverage. Output is written to coverage.log." COMMAND ${CMAKE_COMMAND} -E echo "COVERAGE-STEP-1/5: Reset all execution counts to zero" COMMAND ${LCOV_EXECUTABLE} --directory . --zerocounters > coverage.log 2>&1 COMMAND ${CMAKE_COMMAND} -E echo "COVERAGE-STEP-2/5: Run testrunner" COMMAND ${CMAKE_CTEST_COMMAND} >> coverage.log 2>&1 COMMAND ${CMAKE_COMMAND} -E echo "COVERAGE-STEP-3/5: Collect coverage data" COMMAND ${LCOV_EXECUTABLE} --capture --directory . --output-file "./coverage.info" >> coverage.log 2>&1 COMMAND ${CMAKE_COMMAND} -E echo "COVERAGE-STEP-4/5: Generate HTML from coverage data" COMMAND ${GENHTML_EXECUTABLE} "coverage.info" --title="libarchive-${LIBARCHIVE_VERSION_STRING}" --show-details --legend --output-directory "./coverage" >> coverage.log 2>&1 COMMAND ${CMAKE_COMMAND} -E echo "COVERAGE-STEP-5/5: Open test coverage HTML output in browser: xdg-open ./coverage/index.html" COMMENT "Runs testrunner and generates coverage output (formats: .info and .html)") @ 1.1.1.1 log @Import libarchive-3.2.1: - security fixes and other bugfixes - support for multhreading in xz 5.2+ @ text @@ 1.1.1.2 log @libarchive: imported version 3.7.9 @ text @d22 1 a22 1 # Find programs we need d28 1 a28 1 IF(NOT CMAKE_C_COMPILER_ID STREQUAL "GNU") d36 1 a36 1 ENDIF() @