Skip to content

Commit 51dd7cb

Browse files
committed
Merge branch 'jen20-cmake-enable-shared'
2 parents a1fc786 + 866e73a commit 51dd7cb

File tree

4 files changed

+49
-23
lines changed

4 files changed

+49
-23
lines changed

.travis.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ install:
3737

3838
env:
3939
- ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="64" LIBPATH="/usr/local/lib" BOOST="boost" BOOST_INC="/usr/local/boost"
40-
- ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST=""
40+
- ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="" BOOST_INC=""
4141
- ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="64" LIBPATH="/usr/local/lib" BOOST="boost" BOOST_INC="/usr/local/boost"
42-
- ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST=""
43-
- ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="64" LIBPATH="/usr/local/lib" BOOST=""
42+
- ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="" BOOST_INC="" SHARED="OFF"
43+
- ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="64" LIBPATH="/usr/local/lib" BOOST="" BOOST_INC=""
4444
- ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost"
45-
- ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="64" LIBPATH="/usr/local/lib" BOOST=""
46-
- ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost"
45+
- ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="64" LIBPATH="/usr/local/lib" BOOST="" BOOST_INC=""
46+
- ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost" SHARED="OFF"
4747

4848
before_script:
4949
- export PATH=/usr/local/bin:$PATH && rm -rf install
@@ -53,39 +53,39 @@ matrix:
5353
- os: osx
5454
compiler: gcc
5555
- os: osx
56-
env: ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST=""
56+
env: ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="" BOOST_INC=""
5757
- os: osx
58-
env: ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST=""
58+
env: ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="" BOOST_INC="" SHARED="OFF"
5959
- os: osx
6060
env: ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost"
6161
- os: osx
62-
env: ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost"
62+
env: ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost" SHARED="OFF"
6363

6464
- os: linux
6565
compiler: gcc
6666
env: ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="64" LIBPATH="/usr/local/lib" BOOST="boost" BOOST_INC="/usr/local/boost"
6767
- os: linux
6868
compiler: gcc
69-
env: ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST=""
69+
env: ACTION="ci/build_autotools.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="" BOOST_INC=""
7070
- os: linux
7171
compiler: gcc
7272
env: ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="64" LIBPATH="/usr/local/lib" BOOST="boost" BOOST_INC="/usr/local/boost"
7373
- os: linux
7474
compiler: gcc
75-
env: ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST=""
75+
env: ACTION="ci/build_cmake.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="" BOOST_INC="" SHARED="OFF"
7676

7777
- os: linux
7878
compiler: clang
79-
env: ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="64" LIBPATH="/usr/local/lib" BOOST=""
79+
env: ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="64" LIBPATH="/usr/local/lib" BOOST="" BOOST_INC=""
8080
- os: linux
8181
compiler: clang
8282
env: ACTION="ci/build_autotools.sh" VERSION="cpp11" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost"
8383
- os: linux
8484
compiler: clang
85-
env: ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="64" LIBPATH="/usr/local/lib" BOOST=""
85+
env: ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="64" LIBPATH="/usr/local/lib" BOOST="" BOOST_INC=""
8686
- os: linux
8787
compiler: clang
88-
env: ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost"
88+
env: ACTION="ci/build_cmake.sh" VERSION="cpp03" ARCH="32" LIBPATH="/usr/local/lib32" BOOST="boost" BOOST_INC="/usr/local/boost" SHARED="OFF"
8989

9090
script:
9191
- git clean -xdf && CMAKE_LIBRARY_PATH=${LIBPATH} ${ACTION} ${VERSION} ${ARCH} ${BOOST} ${BOOST_INC}

CMakeLists.txt

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND)
8989
ENDIF ()
9090

9191
OPTION (MSGPACK_ENABLE_CXX "Enable C++ interface." ON)
92+
OPTION (MSGPACK_ENABLE_SHARED "Build shared libaries in addition to static libraries." ON)
9293

9394
INCLUDE (CheckCXXSourceCompiles)
9495
CHECK_CXX_SOURCE_COMPILES ("
@@ -227,19 +228,23 @@ INCLUDE_DIRECTORIES (
227228
${CMAKE_CURRENT_BINARY_DIR}/include/
228229
)
229230

230-
ADD_LIBRARY (msgpack SHARED
231-
${msgpack_SOURCES}
232-
${msgpack_HEADERS}
233-
)
231+
IF (MSGPACK_ENABLE_SHARED)
232+
ADD_LIBRARY (msgpack SHARED
233+
${msgpack_SOURCES}
234+
${msgpack_HEADERS}
235+
)
236+
ENDIF ()
234237

235238
ADD_LIBRARY (msgpack-static STATIC
236239
${msgpack_SOURCES}
237240
${msgpack_HEADERS}
238241
)
239242

240243
SET_TARGET_PROPERTIES (msgpack-static PROPERTIES OUTPUT_NAME "msgpack")
241-
SET_TARGET_PROPERTIES (msgpack PROPERTIES IMPORT_SUFFIX "_import.lib")
242-
SET_TARGET_PROPERTIES (msgpack PROPERTIES SOVERSION 3 VERSION 4.0.0)
244+
IF (MSGPACK_ENABLE_SHARED)
245+
SET_TARGET_PROPERTIES (msgpack PROPERTIES IMPORT_SUFFIX "_import.lib")
246+
SET_TARGET_PROPERTIES (msgpack PROPERTIES SOVERSION 3 VERSION 4.0.0)
247+
ENDIF ()
243248

244249
IF (MSGPACK_BUILD_TESTS)
245250
ENABLE_TESTING ()
@@ -251,7 +256,9 @@ IF (MSGPACK_BUILD_TESTS)
251256
ENDIF ()
252257

253258
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
254-
SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Wno-mismatched-tags -Werror -g -O3 -DPIC")
259+
IF (MSGPACK_ENABLE_SHARED)
260+
SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Wno-mismatched-tags -Werror -g -O3 -DPIC")
261+
ENDIF ()
255262
SET_PROPERTY (TARGET msgpack-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Wno-mismatched-tags -Werror -g -O3" )
256263
ENDIF ()
257264
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
@@ -272,7 +279,13 @@ ENDIF ()
272279

273280
ADD_SUBDIRECTORY (example)
274281

275-
INSTALL (TARGETS msgpack msgpack-static DESTINATION ${CMAKE_INSTALL_LIBDIR})
282+
IF (MSGPACK_ENABLE_SHARED)
283+
SET (MSGPACK_INSTALLTARGETS msgpack msgpack-static)
284+
ELSE()
285+
SET (MSGPACK_INSTALLTARGETS msgpack-static)
286+
ENDIF ()
287+
288+
INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} DESTINATION ${CMAKE_INSTALL_LIBDIR})
276289
INSTALL (DIRECTORY include DESTINATION ${CMAKE_INSTALL_PREFIX})
277290
IF (NOT MSVC)
278291
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/msgpack.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

ci/build_cmake.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,14 @@ else
4444
boost_dir=""
4545
fi
4646

47-
cmake $cpp11 $bit32 $boost $boost_dir ..
47+
if [ "$5" = "OFF" ]
48+
then
49+
shared="-DMSGPACK_ENABLE_SHARED=OFF"
50+
else
51+
shared=""
52+
fi
53+
54+
cmake $cpp11 $bit32 $boost $boost_dir $shared ..
4855

4956
ret=$?
5057
if [ $ret -ne 0 ]

test/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,20 @@ IF (MSGPACK_CXX11)
5353
)
5454
ENDIF ()
5555

56+
IF (MSGPACK_ENABLE_SHARED)
57+
SET (MSGPACK_TEST_LIB msgpack)
58+
ELSE ()
59+
SET (MSGPACK_TEST_LIB msgpack-static)
60+
ENDIF ()
61+
5662
FOREACH (source_file ${check_PROGRAMS})
5763
GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE)
5864
ADD_EXECUTABLE (
5965
${source_file_we}
6066
${source_file}
6167
)
6268
TARGET_LINK_LIBRARIES (${source_file_we}
63-
msgpack
69+
${MSGPACK_TEST_LIB}
6470
${GTEST_BOTH_LIBRARIES}
6571
${ZLIB_LIBRARIES}
6672
${CMAKE_THREAD_LIBS_INIT}

0 commit comments

Comments
 (0)