1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
# =================================================================================================
# BUILD DISTRIBUTION
set(ARCHIVE_NAME "${CMAKE_PROJECT_NAME}-${dbcsr_VERSION}")
add_custom_target(
dist
COMMENT "Building distribution: ${ARCHIVE_NAME}"
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/dist"
COMMAND git archive-all "${CMAKE_BINARY_DIR}/dist/${ARCHIVE_NAME}.tar.gz"
COMMAND ${CMAKE_COMMAND} -E echo "SHA512 Digests:"
COMMAND ${CMAKE_COMMAND} -E sha512sum
"${CMAKE_BINARY_DIR}/dist/${ARCHIVE_NAME}.tar.gz"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
# =================================================================================================
# LCOV - COVERAGE REPORTS GENERATION
find_program(
LCOV_EXE lcov
DOC "path to the lcov executable (required to generate coverage reports)")
find_program(
GENHTML_EXE genhtml
DOC "path to the genhtml executable (required to generate HTML coverage reports)"
)
set(LCOV_ARGS CACHE STRING
"specify additional arguments to pass to lcov for cov-info")
add_custom_target(
cov-info
COMMAND
"${LCOV_EXE}" --directory "${CMAKE_BINARY_DIR}" --base-dir
"${CMAKE_SOURCE_DIR}" --no-external --capture ${LCOV_ARGS} --output-file
coverage.info
COMMAND "${LCOV_EXE}" --list coverage.info
VERBATIM
BYPRODUCTS coverage.info
COMMENT "Generate coverage.info using lcov")
add_custom_target(
cov-genhtml
COMMAND "${GENHTML_EXE}" coverage.info --output-directory cov-html
COMMENT
"Generate a HTML-based coverage report using lcov in ${CMAKE_BINARY_DIR}/cov-html"
VERBATIM) # Note: this directory will not be cleaned by `cmake --build .. --
# clean`
add_dependencies(cov-genhtml cov-info)
|