diff --git a/src/IhtaAddLibrary.cmake b/src/IhtaAddLibrary.cmake index e04af17d0b5df75a5a6100bba65b94037b893934..f45cb6ce95d9308627b9c1752dbe89cfbafbc753 100644 --- a/src/IhtaAddLibrary.cmake +++ b/src/IhtaAddLibrary.cmake @@ -184,7 +184,9 @@ macro (ihta_add_library) endif () # Add the actual library target - add_library (${IHTA_ADD_LIB_NAME} ${IHTA_ADD_LIB_LIBRARY_TYPE} $<TARGET_OBJECTS:${IHTA_ADD_LIB_TARGET}>) + add_library (${IHTA_ADD_LIB_NAME} ${IHTA_ADD_LIB_LIBRARY_TYPE} "") + target_link_libraries (${IHTA_ADD_LIB_NAME} PUBLIC ${IHTA_ADD_LIB_TARGET}) + add_library (${IHTA_ADD_LIB_NAMESPACE}::${IHTA_ADD_LIB_NAME} ALIAS ${IHTA_ADD_LIB_NAME}) # Include Directory @@ -201,6 +203,13 @@ macro (ihta_add_library) if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set_property (TARGET ${IHTA_ADD_LIB_NAME} PROPERTY FOLDER ${IHTA_ADD_LIB_IDE_FOLDER}) endif () + + # install the object library so it's in the export set, see: + # https://gitlab.kitware.com/cmake/cmake/-/issues/18935 + install (TARGETS ${IHTA_ADD_LIB_TARGET} EXPORT ${IHTA_ADD_LIB_NAME}Targets # Adapt this in case package project + # is *not* used! + ) + else () set (IHTA_ADD_LIB_TARGET ${IHTA_ADD_LIB_NAME}) @@ -234,10 +243,12 @@ macro (ihta_add_library) ihta_add_test ( NAME ${IHTA_ADD_LIB_TEST_TARGET} IDE_FOLDER ${IHTA_ADD_LIB_IDE_FOLDER} - SOURCES ${IHTA_ADD_LIB_TEST_SOURCES} $<TARGET_OBJECTS:${IHTA_ADD_LIB_TARGET}> + SOURCES ${IHTA_ADD_LIB_TEST_SOURCES} COV_SOURCES ${IHTA_ADD_LIB_INCLUDE_DIR} ${IHTA_ADD_LIB_SRC_DIR} ) + target_link_libraries (${IHTA_ADD_LIB_TEST_TARGET} PUBLIC ${IHTA_ADD_LIB_TARGET}) + target_include_directories ( ${IHTA_ADD_LIB_TEST_TARGET} PUBLIC $<BUILD_INTERFACE:${IHTA_ADD_LIB_INCLUDE_DIR}>