@@ -53,6 +53,7 @@ IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND)
5353ENDIF ()
5454
5555OPTION (MSGPACK_ENABLE_CXX "Enable C++ interface." ON )
56+ OPTION (MSGPACK_ENABLE_SHARED "Build shared libaries in addition to static libraries." ON )
5657
5758INCLUDE (CheckCXXSourceCompiles)
5859CHECK_CXX_SOURCE_COMPILES ("
@@ -177,19 +178,23 @@ INCLUDE_DIRECTORIES (
177178 ${MSGPACK_BOOST_DIR}
178179)
179180
180- ADD_LIBRARY (msgpack SHARED
181- ${msgpack_SOURCES}
182- ${msgpack_HEADERS}
183- )
181+ IF (MSGPACK_ENABLE_SHARED)
182+ ADD_LIBRARY (msgpack SHARED
183+ ${msgpack_SOURCES}
184+ ${msgpack_HEADERS}
185+ )
186+ ENDIF ()
184187
185188ADD_LIBRARY (msgpack-static STATIC
186189 ${msgpack_SOURCES}
187190 ${msgpack_HEADERS}
188191)
189192
190193SET_TARGET_PROPERTIES (msgpack-static PROPERTIES OUTPUT_NAME "msgpack" )
191- SET_TARGET_PROPERTIES (msgpack PROPERTIES IMPORT_SUFFIX "_import.lib" )
192- SET_TARGET_PROPERTIES (msgpack PROPERTIES SOVERSION 3 VERSION 4.0.0)
194+ IF (MSGPACK_ENABLE_SHARED)
195+ SET_TARGET_PROPERTIES (msgpack PROPERTIES IMPORT_SUFFIX "_import.lib" )
196+ SET_TARGET_PROPERTIES (msgpack PROPERTIES SOVERSION 3 VERSION 4.0.0)
197+ ENDIF ()
193198
194199IF (MSGPACK_BUILD_TESTS)
195200 ENABLE_TESTING ()
@@ -201,7 +206,9 @@ IF (MSGPACK_BUILD_TESTS)
201206ENDIF ()
202207
203208IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
204- SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC" )
209+ IF (MSGPACK_ENABLE_SHARED)
210+ SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC" )
211+ ENDIF ()
205212 SET_PROPERTY (TARGET msgpack-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" )
206213ENDIF ()
207214IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "MSVC" )
@@ -220,7 +227,13 @@ IF (NOT DEFINED CMAKE_INSTALL_LIBDIR)
220227 SET (CMAKE_INSTALL_LIBDIR lib)
221228ENDIF ()
222229
223- INSTALL (TARGETS msgpack msgpack-static DESTINATION ${CMAKE_INSTALL_LIBDIR} )
230+ IF (MSGPACK_ENABLE_SHARED)
231+ SET (MSGPACK_INSTALLTARGETS msgpack msgpack-static )
232+ ELSE ()
233+ SET (MSGPACK_INSTALLTARGETS msgpack-static )
234+ ENDIF ()
235+
236+ INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} DESTINATION ${CMAKE_INSTALL_LIBDIR} )
224237INSTALL (DIRECTORY include DESTINATION ${CMAKE_INSTALL_PREFIX} )
225238INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR} /msgpack.pc DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
226239
0 commit comments