@@ -95,8 +95,8 @@ set(PACKAGE_VERSION "${PROJECT_VERSION}")
95
95
set (VERSION "${PROJECT_VERSION} " )
96
96
configure_file (${CMAKE_CURRENT_LIST_DIR} /mbus/config.h.in ${CMAKE_CURRENT_LIST_DIR} /config.h @ONLY)
97
97
98
- add_library (
99
- ${PROJECT_NAME}
98
+ # list of source files
99
+ add_library (objlib OBJECT
100
100
"${CMAKE_CURRENT_LIST_DIR} /mbus/mbus-protocol.c"
101
101
"${CMAKE_CURRENT_LIST_DIR} /mbus/mbus-protocol.h"
102
102
"${CMAKE_CURRENT_LIST_DIR} /mbus/mbus-tcp.c"
@@ -107,6 +107,14 @@ add_library(
107
107
"${CMAKE_CURRENT_LIST_DIR} /mbus/mbus-protocol-aux.h"
108
108
"${CMAKE_CURRENT_LIST_DIR} /mbus/mbus-serial.c"
109
109
"${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
+
110
118
target_include_directories (
111
119
${PROJECT_NAME}
112
120
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR} >" "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} >"
@@ -175,7 +183,6 @@ install(
175
183
TARGETS ${PROJECT_NAME}
176
184
EXPORT ${PROJECT_NAME} Targets
177
185
LIBRARY DESTINATION "${INSTALL_LIB_DIR} " COMPONENT lib
178
- ARCHIVE DESTINATION "${INSTALL_LIB_DIR} " COMPONENT dev
179
186
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} " COMPONENT lib)
180
187
install (
181
188
EXPORT ${PROJECT_NAME} Targets
@@ -199,6 +206,10 @@ install(
199
206
FILES_MATCHING
200
207
PATTERN "*.h" )
201
208
209
+ install (
210
+ TARGETS libmbus_static
211
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR} " COMPONENT dev)
212
+
202
213
# ##############################################################################
203
214
# package
204
215
# mkdir build ; cd build ; cmake .. -DLIBMBUS_PACKAGE_DEB=ON ; cpack ..
0 commit comments