@@ -154,8 +154,13 @@ IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND AND NOT "${MSGPACK_FUZZ_REGRESS
154154 OPTION (MSGPACK_BUILD_TESTS "Build msgpack tests." ON )
155155ENDIF ()
156156
157+ IF (MSGPACK_ENABLE_SHARED)
158+ MESSAGE (DEPRECATION "MSGPACK_ENABLE_SHARED is deprecated. Use BUILD_SHARED_LIBS instead." )
159+ ENDIF ()
160+
157161OPTION (MSGPACK_ENABLE_CXX "Enable C++ interface." ON )
158- OPTION (MSGPACK_ENABLE_SHARED "Build shared libaries in addition to static libraries." ON )
162+ OPTION (MSGPACK_ENABLE_SHARED "Build shared libaries." ON )
163+ OPTION (MSGPACK_ENABLE_STATIC "Build static libaries." ON )
159164
160165INCLUDE (CheckCXXSourceCompiles)
161166CHECK_CXX_SOURCE_COMPILES ("
@@ -181,7 +186,7 @@ CONFIGURE_FILE (
181186 @ONLY
182187)
183188
184- IF (MSGPACK_ENABLE_SHARED)
189+ IF (BUILD_SHARED_LIBS OR MSGPACK_ENABLE_SHARED)
185190 ADD_LIBRARY (msgpackc SHARED
186191 ${msgpackc_SOURCES}
187192 ${msgpackc_HEADERS}
@@ -197,33 +202,36 @@ IF (MSGPACK_ENABLE_SHARED)
197202 )
198203ENDIF ()
199204
200- ADD_LIBRARY (msgpackc-static STATIC
201- ${msgpackc_SOURCES}
202- ${msgpackc_HEADERS}
203- )
205+ IF (MSGPACK_ENABLE_STATIC)
206+ ADD_LIBRARY (msgpackc-static STATIC
207+ ${msgpackc_SOURCES}
208+ ${msgpackc_HEADERS}
209+ )
204210
205- TARGET_INCLUDE_DIRECTORIES (msgpackc-static
206- PUBLIC
207- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
208- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include >
209- $<INSTALL_INTERFACE:include >
210- PRIVATE
211- ${CMAKE_CURRENT_SOURCE_DIR}
212- )
211+ TARGET_INCLUDE_DIRECTORIES (msgpackc-static
212+ PUBLIC
213+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
214+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include >
215+ $<INSTALL_INTERFACE:include >
216+ PRIVATE
217+ ${CMAKE_CURRENT_SOURCE_DIR}
218+ )
213219
214- IF (NOT MSGPACK_ENABLE_SHARED)
215- # Add alias for subdirectories
216- ADD_LIBRARY (msgpackc ALIAS msgpackc-static )
217- ENDIF ()
220+ IF (NOT BUILD_SHARED_LIBS AND NOT MSGPACK_ENABLE_SHARED)
221+ # Add alias for subdirectories
222+ ADD_LIBRARY (msgpackc ALIAS msgpackc-static )
223+ ENDIF ()
218224
219- SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc" )
220- IF (MSGPACK_ENABLE_SHARED)
221- IF (MSVC )
222- SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib" )
223- ELSEIF (MINGW)
224- SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX ".dll.a" )
225+ SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc" )
226+
227+ IF (BUILD_SHARED_LIBS OR MSGPACK_ENABLE_SHARED)
228+ IF (MSVC )
229+ SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib" )
230+ ELSEIF (MINGW)
231+ SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX ".dll.a" )
232+ ENDIF ()
233+ SET_TARGET_PROPERTIES (msgpackc PROPERTIES SOVERSION 2 VERSION 2.0.0)
225234 ENDIF ()
226- SET_TARGET_PROPERTIES (msgpackc PROPERTIES SOVERSION 2 VERSION 2.0.0)
227235ENDIF ()
228236
229237# enable regression testing
@@ -248,17 +256,21 @@ IF (MSGPACK_BUILD_TESTS)
248256ENDIF ()
249257
250258IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
251- IF (MSGPACK_ENABLE_SHARED)
259+ IF (BUILD_SHARED_LIBS OR MSGPACK_ENABLE_SHARED)
252260 SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -DPIC" )
253261 ENDIF ()
254- SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" )
262+ IF (MSGPACK_ENABLE_STATIC)
263+ SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" )
264+ ENDIF ()
255265ENDIF ()
256266
257267IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "Clang" )
258- IF (MSGPACK_ENABLE_SHARED)
268+ IF (BUILD_SHARED_LIBS OR MSGPACK_ENABLE_SHARED)
259269 SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags" )
260270 ENDIF ()
261- SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags" )
271+ IF (MSGPACK_ENABLE_STATIC)
272+ SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags" )
273+ ENDIF ()
262274ENDIF ()
263275
264276IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "MSVC" )
@@ -290,9 +302,11 @@ IF (MSGPACK_BUILD_EXAMPLES)
290302 ADD_SUBDIRECTORY (example)
291303ENDIF ()
292304
293- IF (MSGPACK_ENABLE_SHARED)
294- SET (MSGPACK_INSTALLTARGETS msgpackc msgpackc-static )
295- ELSE ()
305+ IF (BUILD_SHARED_LIBS OR MSGPACK_ENABLE_SHARED)
306+ SET (MSGPACK_INSTALLTARGETS msgpackc)
307+ ENDIF ()
308+
309+ IF (MSGPACK_ENABLE_STATIC)
296310 SET (MSGPACK_INSTALLTARGETS msgpackc-static )
297311ENDIF ()
298312
0 commit comments