diff --git a/CMakeLists.txt b/CMakeLists.txt index 086b26e6..612eadc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,8 +95,8 @@ set(PACKAGE_VERSION "${PROJECT_VERSION}") set(VERSION "${PROJECT_VERSION}") configure_file(${CMAKE_CURRENT_LIST_DIR}/mbus/config.h.in ${CMAKE_CURRENT_LIST_DIR}/config.h @ONLY) -add_library( - ${PROJECT_NAME} +# list of source files +add_library(objlib OBJECT "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.c" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.h" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-tcp.c" @@ -107,6 +107,14 @@ add_library( "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol-aux.h" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.c" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.h") + +# shared and static libraries built from the same object files +add_library(${PROJECT_NAME} SHARED $) +add_library(libmbus_static STATIC $) + +set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1) +set_target_properties(libmbus_static PROPERTIES OUTPUT_NAME mbus) + target_include_directories( ${PROJECT_NAME} PUBLIC "$" "$" @@ -175,7 +183,6 @@ install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib - ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib) install( EXPORT ${PROJECT_NAME}Targets @@ -199,6 +206,10 @@ install( FILES_MATCHING PATTERN "*.h") +install( + TARGETS libmbus_static + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev) + # ############################################################################## # package # mkdir build ; cd build ; cmake .. -DLIBMBUS_PACKAGE_DEB=ON ; cpack ..