xo-flatstring: utest: skip ccov target in submodule build

This commit is contained in:
Roland Conybeare 2024-04-18 13:28:51 -04:00
commit 8a020258c4

View file

@ -14,36 +14,41 @@ add_test(NAME ${SELF_EXE} COMMAND ${SELF_EXE})
# ---------------------------------------------------------------- # ----------------------------------------------------------------
# in coverage build, target to build+install coverage report # in coverage build, target to build+install coverage report
set(CCOV_OUTPUT_DIR ${PROJECT_BINARY_DIR}/ccov/html) if (XO_SUBMODULE_BUILD)
set(CCOV_INDEX_FILE ${CCOV_OUTPUT_DIR}/index.html) # in submodule build, generate aggregate coverage report
set(CCOV_REPORT_EXE ${PROJECT_BINARY_DIR}/gen-ccov) # for all xo libraries
# CMAKE_INSTALL_DOCDIR else()
# =default=> DATAROOTDIR/doc/PROJECT_NAME set(CCOV_OUTPUT_DIR ${PROJECT_BINARY_DIR}/ccov/html)
# =default=> CMAKE_INSTALL_PREFIX/share/doc/xo_flatstring set(CCOV_INDEX_FILE ${CCOV_OUTPUT_DIR}/index.html)
set(CCOV_INSTALL_DOCDIR ${CMAKE_INSTALL_DOCDIR}/ccov) set(CCOV_REPORT_EXE ${PROJECT_BINARY_DIR}/gen-ccov)
# CMAKE_INSTALL_DOCDIR
# =default=> DATAROOTDIR/doc/PROJECT_NAME
# =default=> CMAKE_INSTALL_PREFIX/share/doc/xo_flatstring
set(CCOV_INSTALL_DOCDIR ${CMAKE_INSTALL_DOCDIR}/ccov)
# 'test' target should always be out-of-date # 'test' target should always be out-of-date
# #
# DEPENDS: reminder - can't put 'test' here, requires 'all' target # DEPENDS: reminder - can't put 'test' here, requires 'all' target
# #
add_custom_command( add_custom_command(
OUTPUT ${CCOV_INDEX_FILE} OUTPUT ${CCOV_INDEX_FILE}
DEPENDS ${SELF_EXE} DEPENDS ${SELF_EXE}
COMMAND ${CCOV_REPORT_EXE} COMMAND ${CCOV_REPORT_EXE}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "Generating coverage report -> [${CCOV_OUTPUT_DIR}]") COMMENT "Generating coverage report -> [${CCOV_OUTPUT_DIR}]")
add_custom_target( add_custom_target(
ccov ccov
DEPENDS ${CCOV_INDEX_FILE} ${SELF_EXE}) DEPENDS ${CCOV_INDEX_FILE} ${SELF_EXE})
# OPTIONAL: quietly skip this step if ccov report not generated # OPTIONAL: quietly skip this step if ccov report not generated
install( install(
DIRECTORY ${CCOV_OUTPUT_DIR} DIRECTORY ${CCOV_OUTPUT_DIR}
FILE_PERMISSIONS OWNER_READ GROUP_READ WORLD_READ FILE_PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
DESTINATION ${CCOV_INSTALL_DOCDIR} DESTINATION ${CCOV_INSTALL_DOCDIR}
COMPONENT Documentation COMPONENT Documentation
OPTIONAL) OPTIONAL)
endif()
# ---------------------------------------------------------------- # ----------------------------------------------------------------
# deps: logutils, ... # deps: logutils, ...