Skip to content

Commit 22bc7d2

Browse files
committed
Add static library (#174)
1 parent 17fb99c commit 22bc7d2

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

CMakeLists.txt

+14-3
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ set(PACKAGE_VERSION "${PROJECT_VERSION}")
9595
set(VERSION "${PROJECT_VERSION}")
9696
configure_file(${CMAKE_CURRENT_LIST_DIR}/mbus/config.h.in ${CMAKE_CURRENT_LIST_DIR}/config.h @ONLY)
9797

98-
add_library(
99-
${PROJECT_NAME}
98+
# list of source files
99+
add_library(objlib OBJECT
100100
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.c"
101101
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol.h"
102102
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-tcp.c"
@@ -107,6 +107,14 @@ add_library(
107107
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-protocol-aux.h"
108108
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.c"
109109
"${CMAKE_CURRENT_LIST_DIR}/mbus/mbus-serial.h")
110+
111+
# shared and static libraries built from the same object files
112+
add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:objlib>)
113+
add_library(libmbus_static STATIC $<TARGET_OBJECTS:objlib>)
114+
115+
set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
116+
set_target_properties(libmbus_static PROPERTIES OUTPUT_NAME mbus)
117+
110118
target_include_directories(
111119
${PROJECT_NAME}
112120
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
@@ -175,7 +183,6 @@ install(
175183
TARGETS ${PROJECT_NAME}
176184
EXPORT ${PROJECT_NAME}Targets
177185
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib
178-
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev
179186
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib)
180187
install(
181188
EXPORT ${PROJECT_NAME}Targets
@@ -199,6 +206,10 @@ install(
199206
FILES_MATCHING
200207
PATTERN "*.h")
201208

209+
install(
210+
TARGETS libmbus_static
211+
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT dev)
212+
202213
# ##############################################################################
203214
# package
204215
# mkdir build ; cd build ; cmake .. -DLIBMBUS_PACKAGE_DEB=ON ; cpack ..

0 commit comments

Comments
 (0)