Skip to content

Commit 3aaadb9

Browse files
committed
Fixed #703.
Added no build static-library option.
1 parent 8a3a11f commit 3aaadb9

File tree

3 files changed

+51
-35
lines changed

3 files changed

+51
-35
lines changed

CMakeLists.txt

Lines changed: 46 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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)
155155
ENDIF ()
156156

157+
IF (MSGPACK_ENABLE_SHARED)
158+
MESSAGE (DEPRECATION "MSGPACK_ENABLE_SHARED is deprecated. Use BUILD_SHARED_LIBS instead.")
159+
ENDIF ()
160+
157161
OPTION (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

160165
INCLUDE (CheckCXXSourceCompiles)
161166
CHECK_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
)
198203
ENDIF ()
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)
227235
ENDIF ()
228236

229237
# enable regression testing
@@ -248,17 +256,21 @@ IF (MSGPACK_BUILD_TESTS)
248256
ENDIF ()
249257

250258
IF ("${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 ()
255265
ENDIF ()
256266

257267
IF ("${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 ()
262274
ENDIF ()
263275

264276
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
@@ -290,9 +302,11 @@ IF (MSGPACK_BUILD_EXAMPLES)
290302
ADD_SUBDIRECTORY (example)
291303
ENDIF ()
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)
297311
ENDIF ()
298312

ci/build_cmake.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ else
2323
export BIT32="OFF"
2424
fi
2525

26-
cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_BOOST=${BOOST} -DMSGPACK_ENABLE_SHARED=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} ..
26+
cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_BOOST=${BOOST} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} ..
2727

2828
ret=$?
2929
if [ $ret -ne 0 ]

example/c/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
IF (MSGPACK_ENABLE_SHARED)
1+
IF (BUILD_SHARED_LIBS OR MSGPACK_ENABLE_SHARED)
22
SET (MSGPACK_LIB msgpackc)
3-
ELSE ()
3+
ENDIF ()
4+
5+
IF (MSGPACK_ENABLE_STATIC)
46
SET (MSGPACK_LIB msgpackc-static)
57
ENDIF ()
68

0 commit comments

Comments
 (0)