gnucash/libgnucash/tax/CMakeLists.txt
John Ralls 6834cb5025 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.
2023-12-08 14:53:02 -08:00

94 lines
2.9 KiB
CMake

add_subdirectory(test)
set(locale_tax_SOURCES gnc-locale-tax.c gnc-locale-tax.h)
# Add dependency on config.h
set_source_files_properties (${locale_tax_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
add_library(gnc-locale-tax ${locale_tax_SOURCES})
target_link_libraries(gnc-locale-tax
gnc-engine
gnc-app-utils
gnucash-guile
PkgConfig::GLIB2
${GUILE_LDFLAGS})
target_include_directories(gnc-locale-tax
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE
${CMAKE_BINARY_DIR}/common
${GUILE_INCLUDE_DIRS})
if (APPLE)
set_target_properties (gnc-locale-tax PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
endif()
if (COVERAGE)
add_coverage_target(gnc-locale-tax)
endif()
install(TARGETS gnc-locale-tax
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
# No headers to install
# Scheme
set(gncmod_tax_us_SCHEME_1 us/txf-help.scm)
set(gncmod_tax_us_SCHEME_2 us/txf.scm)
set(gncmod_tax_us_SCHEME_3 us/tax.scm)
set(gncmod_tax_de_DE_SCHEME_1 de_DE/txf-help.scm)
set(gncmod_tax_de_DE_SCHEME_2 de_DE/txf.scm)
set(gncmod_tax_de_DE_SCHEME_3 de_DE/tax.scm)
set(GUILE_DEPENDS scm-app-utils)
gnc_add_scheme_targets(scm-tax-us-1
SOURCES "${gncmod_tax_us_SCHEME_1}"
OUTPUT_DIR "gnucash/locale/us/tax"
DEPENDS "${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-tax-us-2
SOURCES "${gncmod_tax_us_SCHEME_2}"
OUTPUT_DIR "gnucash/locale/us/tax"
DEPENDS "scm-tax-us-1;${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-tax-us-3
SOURCES "${gncmod_tax_us_SCHEME_3}"
OUTPUT_DIR "gnucash/locale/us"
DEPENDS "scm-tax-us-2;${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-tax-de_DE-1
SOURCES "${gncmod_tax_de_DE_SCHEME_1}"
OUTPUT_DIR "gnucash/locale/de_DE/tax"
DEPENDS "${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-tax-de_DE-2
SOURCES "${gncmod_tax_de_DE_SCHEME_2}"
OUTPUT_DIR "gnucash/locale/de_DE/tax"
DEPENDS "scm-tax-de_DE-1;${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-tax-de_DE-3
SOURCES "${gncmod_tax_de_DE_SCHEME_3}"
OUTPUT_DIR "gnucash/locale/de_DE"
DEPENDS "scm-tax-de_DE-2;${GUILE_DEPENDS}")
add_custom_target(scm-locale-tax ALL DEPENDS scm-tax-us-1 scm-tax-us-2 scm-tax-us-3 scm-tax-de_DE-1 scm-tax-de_DE-2 scm-tax-de_DE-3)
set(de_DE_tax_EXTRA_DIST
"de_DE/taxtxf - LIES MICH.txt"
"de_DE/txf-USt-Bericht.html"
"de_DE/txf-USt-VA Anleitung 2011.pdf")
set_local_dist(tax_DIST_local CMakeLists.txt ${locale_tax_SOURCES}
${gncmod_tax_us_SCHEME_1} ${gncmod_tax_us_SCHEME_2} ${gncmod_tax_us_SCHEME_3}
${gncmod_tax_de_DE_SCHEME_1} ${gncmod_tax_de_DE_SCHEME_2} ${gncmod_tax_de_DE_SCHEME_3}
${de_DE_tax_EXTRA_DIST})
set(tax_DIST ${tax_DIST_local} ${locale_tax_DIST} ${test_locale_tax_DIST} PARENT_SCOPE)