build and libname

This commit is contained in:
Erik Frojdh
2020-09-07 09:14:47 +02:00
parent a1b88d3a62
commit fb8842e048
11 changed files with 50 additions and 53 deletions

View File

@ -12,6 +12,7 @@ set(SOURCES
src/sls_detector_exceptions.cpp
)
# Header files to install as a part of the library
set(PUBLICHEADERS
include/sls_detector_defs.h
include/sls_detector_exceptions.h
@ -45,28 +46,27 @@ if(SLS_DEVEL_HEADERS)
)
endif()
# Create a Object library to avoidbuilding the library twice
# Create an object library to avoid building the library twice
add_library(slsSupportObject OBJECT
${SOURCES}
${HEADERS}
)
target_include_directories(slsSupportObject PUBLIC
target_include_directories(slsSupportObject
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
target_include_directories(slsSupportObject PRIVATE
PRIVATE
${ZeroMQ_INCLUDE_DIRS}
)
target_link_libraries(slsSupportObject
PUBLIC
PUBLIC
slsProjectOptions
zmq
# zmq
${ZeroMQ_LIBRARIES}
rapidjson
PRIVATE
PRIVATE
slsProjectWarnings
)
@ -74,41 +74,35 @@ if (SLS_USE_TESTS)
add_subdirectory(tests)
endif(SLS_USE_TESTS)
add_library(slsSupportLib SHARED $<TARGET_OBJECTS:slsSupportObject>)
target_link_libraries(slsSupportLib PUBLIC slsSupportObject)
# target_include_directories(slsSupportLib PUBLIC
# "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
# "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
# )
# Add shared library version of the support lib
add_library(slsSupportShared SHARED $<TARGET_OBJECTS:slsSupportObject>)
set_target_properties(slsSupportLib PROPERTIES
target_link_libraries(slsSupportShared PUBLIC slsSupportObject)
set_target_properties(slsSupportShared PROPERTIES
LIBRARY_OUTPUT_NAME SlsSupport
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
add_library(slsSupportLibStatic STATIC $<TARGET_OBJECTS:slsSupportObject>)
target_link_libraries(slsSupportLibStatic PUBLIC slsSupportObject)
# Add static version of the support lib
add_library(slsSupportStatic STATIC $<TARGET_OBJECTS:slsSupportObject>)
set_target_properties(slsSupportLibStatic PROPERTIES
target_link_libraries(slsSupportStatic PUBLIC slsSupportObject)
set_target_properties(slsSupportStatic PROPERTIES
ARCHIVE_OUTPUT_NAME SlsSupportStatic
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
# target_include_directories(slsSupportLibStatic PUBLIC
# "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
# "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
# )
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
set_property(TARGET slsSupportObject PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsSupportLib PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsSupportLibStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsSupportShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsSupportStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
# Install the library
install(TARGETS slsSupportLib slsSupportLibStatic slsSupportObject
install(TARGETS slsSupportShared slsSupportStatic slsSupportObject
EXPORT "${TARGETS_EXPORT_NAME}"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}