Implement coverage option

To use pass -DCMAKE_BUILD_TYPE=Debug or Asan -DCOVERAGE=ON and build as
usual, then do ninja lcov-initialize && ninja check && ninja
lcov-collect. The result will be a directory, <Builddir>/Coverage
containing lcov tracefiles, including an aggregate file gnucash.info
which you can use for further processing. It will also report an overall summary.
Note that only C/C++ files are included.

There's one more target, lcov-generate-html, that you can run after
lcov-collect. It will generate a simple website in
<Builddir>/Coverage-HTML showing coverage by source directory (the
directories in <Builddir> have coverage for generated files). Each
directory path is a clickable link to a page that shows coverage for
each source file; the filenames link to a page for each showing which
lines have been exercised.
This commit is contained in:
John Ralls 2023-12-04 10:43:50 -08:00
parent a3f14759ab
commit 6834cb5025
28 changed files with 233 additions and 3 deletions

View File

@ -54,7 +54,7 @@ option (WITH_OFX "compile with ofx support (needs LibOFX)" ON)
option (WITH_PYTHON "enable python plugin and bindings" OFF) option (WITH_PYTHON "enable python plugin and bindings" OFF)
option (ENABLE_BINRELOC "compile with binary relocation support" ON) option (ENABLE_BINRELOC "compile with binary relocation support" ON)
option (DISABLE_NLS "do not use Native Language Support" OFF) option (DISABLE_NLS "do not use Native Language Support" OFF)
option (COVERAGE "Instrument an Asan build for coverage reporting" OFF) option (COVERAGE "Instrument a Debug or Asan build for coverage reporting" OFF)
option (LEAKS "Report leaks for tests in a non-Apple Asan build." OFF) option (LEAKS "Report leaks for tests in a non-Apple Asan build." OFF)
option (ODR "Report One Definition Rule violations in tests in a non-Apple Asan build." OFF) option (ODR "Report One Definition Rule violations in tests in a non-Apple Asan build." OFF)
# ############################################################ # ############################################################
@ -628,7 +628,13 @@ elseif(UNIX)
endif () endif ()
set(ASAN_LINK_OPTIONS -fsanitize=address -fsanitize=undefined) set(ASAN_LINK_OPTIONS -fsanitize=address -fsanitize=undefined)
if (COVERAGE) if (COVERAGE)
list(APPEND ASAN_LINK_OPTIONS --coverage) include(GncCoverage)
endif()
if (COVERAGE)
set(COVERAGE_COMPILE_OPTION --coverage)
add_compile_options("$<$<CONFIG:Debug>:${COVERAGE_COMPILE_OPTION}>")
add_link_options("$<$<CONFIG:Debug>:${COVERAGE_COMPILE_OPTION}>")
list(APPEND ASAN_LINK_OPTIONS ${COVERAGE_COMPILE_OPTION})
endif() endif()
set(ASAN_COMPILE_OPTIONS -g ${ASAN_LINK_OPTIONS}) set(ASAN_COMPILE_OPTIONS -g ${ASAN_LINK_OPTIONS})
add_compile_options("$<$<CONFIG:Asan>:${ASAN_COMPILE_OPTIONS}>") add_compile_options("$<$<CONFIG:Asan>:${ASAN_COMPILE_OPTIONS}>")
@ -689,6 +695,10 @@ add_custom_target(check
COMMAND ${CMAKE_CTEST_COMMAND} COMMAND ${CMAKE_CTEST_COMMAND}
) )
if (COVERAGE)
add_dependencies(check lcov-initialize)
endif()
set(gnucash_DOCS set(gnucash_DOCS
AUTHORS AUTHORS
ChangeLog.1999 ChangeLog.1999

View File

@ -0,0 +1,111 @@
#lcov command options:
# -a, --add-tracefile (takes glob)
# -c, --capture; create a trace file from the .da files
# -e, --extract; a reduced scope for analysis
# -l, --list; the contents of a tracefile
# -r, --remove; remove pattern-match from tracefile
# -z, --zerocounters; run this first, then -c -i
# --diff
# --summary
# other necessary options:
# --directory; points to the source root. If left off it analyzes the kernel
# --no-external; only analyze code in --directory
# --build-directory; where the .no when different from the .da files
# --branch-coverage; to ensure branch info is saved
# --demangle-cpp; requires c++filt
if (COVERAGE)
find_program(LCOV lcov)
find_program(GENINFO geninfo)
find_program(GENHTML genhtml)
find_program(CPPFILT c++filt)
if (NOT LCOV OR NOT GENINFO OR NOT GENHTML OR NOT CPPFILT)
MESSAGE(WARNING "A required program for presenting coverage information isn't available, disabling coverage")
set(COVERAGE OFF CACHE INTERNAL "")
return()
endif()
else()
return()
endif()
execute_process(COMMAND lcov --version OUTPUT_VARIABLE lcov_version_response)
string(REGEX MATCH "[-.0-9]+" lcov_version ${lcov_version_response})
set(LCOV_VERSION ${lcov_version} CACHE INTERNAL "")
set(excludes_arg "")
foreach (sys_path ${CMAKE_SYSTEM_PREFIX_PATH})
list(APPEND excludes_arg "--exclude" "${sys_path}/*")
endforeach()
set(ignores_arg "--ignore-errors" "unused,unused" "--ignore-errors" "mismatch,mismatch"
"--ignore-errors" "empty,empty")
list(APPEND ignores_arg "--rc" "geninfo_unexecuted_blocks=1")
set(generate_flags "")
set(geninfo_flags --quiet ${excludes_arg})
if (LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
list(APPEND geninfo_flags ${ignores_arg})
list(APPEND generate_flags "--branch-coverage" "--demangle-cpp" "c++filt")
else()
list(APPEND generate_flags "--rc" "lcov_branch_coverage=1" "--rc" "genhtml_demangle_cpp=1")
endif()
set(coverage_dir "${CMAKE_BINARY_DIR}/Coverage" CACHE INTERNAL "Directory to accumulate coverage tracefiles")
set(coverage_html_dir "${CMAKE_BINARY_DIR}/Coverage-HTML" CACHE INTERNAL "Directory to place HTML coverage results pages")
file(MAKE_DIRECTORY ${coverage_dir})
add_custom_target(lcov-initialize)
if (LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
add_custom_target(lcov-collect
COMMAND lcov ${geninfo_flags} -a ${coverage_dir}/*.info -o ${coverage_dir}/gnucash.info
COMMAND lcov --summary ${coverage_dir}/gnucash.info
VERBATIM
COMMAND_EXPAND_LISTS)
else()
file(GENERATE OUTPUT ${CMAKE_BINARY_DIR}/collect.sh
CONTENT
"#!/bin/bash
if [ -e $2 ]
then rm $2
fi
j=\"\"
for i in $1/*.info
do j=\"$j -a $i\"
done
lcov $j -o $2
"
FILE_PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE WORLD_EXECUTE)
add_custom_target(lcov-collect
COMMAND ${CMAKE_COMMAND} -E env ${CMAKE_BINARY_DIR}/collect.sh ${coverage_dir} ${coverage_dir}/gnucash.info
DEPENDS ${CMAKE_BINARY_DIR}/collect.sh
VERBATIM
COMMAND_EXPAND_LISTS)
endif()
set_target_properties(lcov-collect PROPERTIES ADDITIONAL_CLEAN_FILES "${coverage_dir}/gnucash.info")
add_custom_target(lcov-generate-html
genhtml --quiet --output-directory "${coverage_html_dir}" --legend --function-coverage ${generate_flags} ${coverage_dir}/gnucash.info
VERBATIM
COMMAND_EXPAND_LISTS)
set_target_properties(lcov-generate-html PROPERTIES ADDITIONAL_CLEAN_FILES "${coverage_html_dir}")
function (add_coverage_target tgt)
get_target_property(build_dir ${tgt} BINARY_DIR)
set(target_dir "${build_dir}/CMakeFiles/${tgt}.dir")
add_custom_target(lcov-initialize-${tgt}
lcov ${geninfo_flags} -z --directory ${target_dir}
COMMAND lcov ${geninfo_flags} ${generate_flags} -c -i --directory ${target_dir} -o "${coverage_dir}/${tgt}_base.info"
VERBATIM
COMMAND_EXPAND_LISTS)
add_dependencies(lcov-initialize lcov-initialize-${tgt})
add_dependencies(lcov-initialize-${tgt} ${tgt})
add_custom_target(lcov-collect-${tgt}
COMMAND lcov ${geninfo_flags} ${generate_flags} -c --directory ${target_dir} -o "${coverage_dir}/${tgt}_result.info"
VERBATIM
COMMAND_EXPAND_LISTS)
add_dependencies(lcov-collect lcov-collect-${tgt})
set_target_properties(${tgt} PROPERTIES ADDITIONAL_CLEAN_FILES "${coverage_dir}/${tgt}_base.info;${coverage_dir}/${tgt}_result.info")
endFunction()

View File

@ -160,6 +160,11 @@ if (MAC_INTEGRATION)
target_link_options(gnucash-cli PRIVATE -Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_SOURCE_DIR}/Info.plist) target_link_options(gnucash-cli PRIVATE -Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_SOURCE_DIR}/Info.plist)
endif() endif()
if (COVERAGE AND LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
add_coverage_target(gnucash)
add_coverage_target(gnucash-cli)
endif()
install(TARGETS gnucash gnucash-cli DESTINATION ${CMAKE_INSTALL_BINDIR}) install(TARGETS gnucash gnucash-cli DESTINATION ${CMAKE_INSTALL_BINDIR})
# No headers to install. # No headers to install.

View File

@ -55,6 +55,10 @@ if (APPLE)
set_target_properties (gnc-gnome-search PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-gnome-search PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-gnome-search)
endif()
install(TARGETS gnc-gnome-search install(TARGETS gnc-gnome-search
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -224,6 +224,10 @@ if (MAC_INTEGRATION)
target_link_libraries(gnc-gnome-utils ${OSX_EXTRA_LIBRARIES}) target_link_libraries(gnc-gnome-utils ${OSX_EXTRA_LIBRARIES})
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-gnome-utils)
endif()
target_include_directories(gnc-gnome-utils target_include_directories(gnc-gnome-utils
PUBLIC PUBLIC
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}

View File

@ -163,6 +163,9 @@ if (MAC_INTEGRATION)
target_link_libraries(gnc-gnome ${OSX_EXTRA_LIBRARIES}) target_link_libraries(gnc-gnome ${OSX_EXTRA_LIBRARIES})
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-gnome)
endif()
install(TARGETS gnc-gnome install(TARGETS gnc-gnome
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -73,6 +73,11 @@ if (APPLE)
endif() endif()
add_dependencies(gnc-html swig-gnc-html-c) add_dependencies(gnc-html swig-gnc-html-c)
if (COVERAGE)
add_coverage_target(gnc-html)
endif()
install(TARGETS gnc-html install(TARGETS gnc-html
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -61,6 +61,10 @@ if (APPLE)
set_target_properties (gnc-generic-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") set_target_properties (gnc-generic-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-generic-import)
endif()
install(TARGETS gnc-generic-import install(TARGETS gnc-generic-import
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -81,6 +81,10 @@ if(WITH_AQBANKING)
set_target_properties (gncmod-aqbanking PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gncmod-aqbanking PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gncmod-aqbanking)
endif()
install(TARGETS gncmod-aqbanking install(TARGETS gncmod-aqbanking
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -37,6 +37,10 @@ if (APPLE)
set_target_properties (gnc-bi-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-bi-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE AND LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
add_coverage_target(gnc-bi-import)
endif()
install(TARGETS gnc-bi-import install(TARGETS gnc-bi-import
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -43,6 +43,10 @@ if (APPLE)
set_target_properties (gnc-csv-export PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-csv-export PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-csv-export)
endif()
install(TARGETS gnc-csv-export install(TARGETS gnc-csv-export
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -84,6 +84,10 @@ if (APPLE)
set_target_properties (gnc-csv-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-csv-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-csv-import)
endif()
install(TARGETS gnc-csv-import install(TARGETS gnc-csv-import
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -35,6 +35,10 @@ if (APPLE)
set_target_properties (gnc-customer-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-customer-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (0 AND COVERAGE) # Generates no coverage data
add_coverage_target(gnc-customer-import)
endif()
install(TARGETS gnc-customer-import install(TARGETS gnc-customer-import
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -32,6 +32,10 @@ if (APPLE)
set_target_properties (gnc-log-replay PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-log-replay PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE AND LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
add_coverage_target(gnc-log-replay)
endif()
install(TARGETS gnc-log-replay install(TARGETS gnc-log-replay
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -48,6 +48,10 @@ if (WITH_OFX)
set_target_properties (gncmod-ofx PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gncmod-ofx PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE AND LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
add_coverage_target(gncmod-ofx)
endif()
install(TARGETS gncmod-ofx install(TARGETS gncmod-ofx
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -36,6 +36,10 @@ if (APPLE)
set_target_properties (gnc-qif-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-qif-import PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE AND LCOV_VERSION VERSION_GREATER_EQUAL "2.0")
add_coverage_target(gnc-qif-import)
endif()
install(TARGETS gnc-qif-import install(TARGETS gnc-qif-import
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -56,6 +56,10 @@ if (APPLE)
set_target_properties (gnc-ledger-core PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-ledger-core PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-ledger-core)
endif()
install(TARGETS gnc-ledger-core install(TARGETS gnc-ledger-core
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -60,6 +60,10 @@ install(TARGETS gnc-register-core
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
if (COVERAGE)
add_coverage_target(gnc-register-core)
endif()
install(FILES ${register_core_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash) install(FILES ${register_core_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
set_local_dist(register_core_DIST_local CMakeLists.txt README ${register_core_SOURCES} ${register_core_HEADERS}) set_local_dist(register_core_DIST_local CMakeLists.txt README ${register_core_SOURCES} ${register_core_HEADERS})

View File

@ -55,6 +55,10 @@ if (APPLE)
set_target_properties (gnc-register-gnome PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-register-gnome PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-register-gnome)
endif()
install(TARGETS gnc-register-gnome install(TARGETS gnc-register-gnome
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -43,6 +43,10 @@ if (APPLE)
set_target_properties (gnc-report PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gnc-report PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-report)
endif()
install(TARGETS gnc-report install(TARGETS gnc-report
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -84,7 +84,11 @@ if (APPLE)
set_target_properties (gnc-app-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") set_target_properties (gnc-app-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
endif() endif()
install(TARGETS gnc-app-utils if (COVERAGE)
add_coverage_target(gnc-app-utils)
endif()
install (TARGETS gnc-app-utils
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}

View File

@ -43,6 +43,10 @@ if (WITH_SQL)
set_target_properties (gncmod-backend-dbi PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") set_target_properties (gncmod-backend-dbi PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
endif() endif()
if (COVERAGE)
add_coverage_target(gncmod-backend-dbi)
endif()
install(TARGETS gncmod-backend-dbi install(TARGETS gncmod-backend-dbi
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash

View File

@ -80,5 +80,9 @@ if(WITH_SQL)
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
if (COVERAGE)
add_coverage_target(gnc-backend-sql)
endif()
# No headers to install # No headers to install
endif() endif()

View File

@ -96,6 +96,10 @@ install(TARGETS gnc-backend-xml-utils
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
# No headers to install # No headers to install
if (COVERAGE)
add_coverage_target(gnc-backend-xml-utils)
endif()
# ---- # ----
@ -119,6 +123,10 @@ if (APPLE)
set_target_properties (gncmod-backend-xml PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") set_target_properties (gncmod-backend-xml PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
endif() endif()
if (COVERAGE)
add_coverage_target(gncmod-backend-xml)
endif()
install(TARGETS gncmod-backend-xml install(TARGETS gncmod-backend-xml
LIBRARY DESTINATION ${LIB_DIR} LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR} ARCHIVE DESTINATION ${LIB_DIR}

View File

@ -72,6 +72,10 @@ install(TARGETS gnc-core-utils
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
) )
if (COVERAGE)
add_coverage_target(gnc-core-utils)
endif()
### gncla-dir.h ### gncla-dir.h
set(prefix ${CMAKE_INSTALL_PREFIX}) set(prefix ${CMAKE_INSTALL_PREFIX})

View File

@ -263,6 +263,10 @@ if (APPLE)
set_target_properties (gnc-engine PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") set_target_properties (gnc-engine PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-engine)
endif()
install(TARGETS gnc-engine install(TARGETS gnc-engine
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -27,6 +27,10 @@ target_include_directories (gnc-module
${CMAKE_BINARY_DIR}/common # for config.h ${CMAKE_BINARY_DIR}/common # for config.h
) )
if (COVERAGE)
add_coverage_target(gnc-module)
endif()
install(TARGETS gnc-module install(TARGETS gnc-module
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -23,6 +23,10 @@ if (APPLE)
set_target_properties (gnc-locale-tax PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") set_target_properties (gnc-locale-tax PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
endif() endif()
if (COVERAGE)
add_coverage_target(gnc-locale-tax)
endif()
install(TARGETS gnc-locale-tax install(TARGETS gnc-locale-tax
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}