Add static library (#174)

This commit is contained in:
Stefan Wahren
2020-07-15 21:27:31 +02:00
committed by Stefan Wahren
parent 0dcf1c531e
commit 7e5bcaaea2

View File

@ -95,8 +95,8 @@ set(PACKAGE_VERSION "${PROJECT_VERSION}")
set(VERSION "${PROJECT_VERSION}") set(VERSION "${PROJECT_VERSION}")
configure_file(${CMAKE_CURRENT_LIST_DIR}/mbus/config.h.in ${CMAKE_CURRENT_LIST_DIR}/config.h @ONLY) configure_file(${CMAKE_CURRENT_LIST_DIR}/mbus/config.h.in ${CMAKE_CURRENT_LIST_DIR}/config.h @ONLY)
add_library( # list of source files
${PROJECT_NAME} add_library(objlib OBJECT
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.c" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.h" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.h"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-tcp.c" "${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-protocol-aux.h"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.c" "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.c"
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.h") "${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.h")
# shared and static libraries built from the same object files
add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:objlib>)
add_library(libmbus_static STATIC $<TARGET_OBJECTS:objlib>)
set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
set_target_properties(libmbus_static PROPERTIES OUTPUT_NAME mbus)
target_include_directories( target_include_directories(
${PROJECT_NAME} ${PROJECT_NAME}
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>" PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
@ -175,7 +183,6 @@ install(
TARGETS ${PROJECT_NAME} TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}Targets EXPORT ${PROJECT_NAME}Targets
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib) RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
install( install(
EXPORT ${PROJECT_NAME}Targets EXPORT ${PROJECT_NAME}Targets
@ -199,6 +206,10 @@ install(
FILES_MATCHING FILES_MATCHING
PATTERN "*.h") PATTERN "*.h")
install(
TARGETS libmbus_static
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev)
# ############################################################################## # ##############################################################################
# package # package
# mkdir build ; cd build ; cmake .. -DLIBMBUS_PACKAGE_DEB=ON ; cpack .. # mkdir build ; cd build ; cmake .. -DLIBMBUS_PACKAGE_DEB=ON ; cpack ..