Skip to content
Snippets Groups Projects
Commit 3066c576 authored by Pascal Palenda's avatar Pascal Palenda
Browse files

Improve linking of 3rd party libraries

Adding the object files to the final library target did not transfer any
linking information.
As stated here: https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#object-libraries
using `target_link_libraries` honors the usage requirements.
parent 2d6ff020
No related branches found
No related tags found
No related merge requests found
......@@ -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}>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment