From d0710179e8f40efc5cf63809d6ca3cb5e3e325e6 Mon Sep 17 00:00:00 2001 From: Pascal Palenda <pascal.palenda@akustik.rwth-aachen.de> Date: Tue, 14 Feb 2023 11:23:22 +0100 Subject: [PATCH] Add the creaton of the object library --- src/IhtaAddLibrary.cmake | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/IhtaAddLibrary.cmake b/src/IhtaAddLibrary.cmake index 46197f7..b00bcb3 100644 --- a/src/IhtaAddLibrary.cmake +++ b/src/IhtaAddLibrary.cmake @@ -70,7 +70,38 @@ macro (ihta_add_library) endif () if (IHTA_ADD_LIB_TEST_INPLACE OR IHTA_ADD_LIB_TEST_INTERNALS) - # todo + set (IHTA_ADD_LIB_TARGET ${IHTA_ADD_LIB_NAME}${IHTA_ADD_LIB_OBJECT_LIB_POSTFIX}) + + # Create an object library + add_library (${IHTA_ADD_LIB_TARGET} OBJECT "") + + target_sources (${IHTA_ADD_LIB_TARGET} PRIVATE ${IHTA_ADD_LIB_SOURCES}) + + # Add compile definition for the export header generated by cmake's generate_export_header. For example used in packageProject. + if (${IHTA_ADD_LIB_LIBRARY_TYPE} MATCHES "STATIC") + target_compile_definitions (${IHTA_ADD_LIB_TARGET} PUBLIC ${IHTA_ADD_LIB_NAME}_STATIC_DEFINE) + else () + target_compile_definitions (${IHTA_ADD_LIB_TARGET} PUBLIC ${IHTA_ADD_LIB_NAME}_EXPORTS) + 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_NAMESPACE}::${IHTA_ADD_LIB_NAME} ALIAS ${IHTA_ADD_LIB_NAME}) + + # Include Directory + target_include_directories ( + ${IHTA_ADD_LIB_NAME} + PUBLIC $<BUILD_INTERFACE:${IHTA_ADD_LIB_INCLUDE_DIR}> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${IHTA_ADD_LIB_INSTALL_INCLUDE_DIR}> + ) + + # Required compiler features + target_compile_features (${IHTA_ADD_LIB_NAME} PUBLIC cxx_std_17) + + # If build out of parent project, add parent folder library to parent project folder + 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 () else () set (IHTA_ADD_LIB_TARGET ${IHTA_ADD_LIB_NAME}) -- GitLab