@@ -4,6 +4,8 @@ CMAKE_POLICY (SET CMP0054 NEW)
44
55PROJECT (msgpack LANGUAGES CXX)
66
7+ ADD_LIBRARY (msgpackc-cxx INTERFACE )
8+
79FILE (READ ${CMAKE_CURRENT_SOURCE_DIR} /include /msgpack/version_master.hpp contents)
810STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents} )
911SET (VERSION_MAJOR ${CMAKE_MATCH_1} )
@@ -55,11 +57,11 @@ ENDIF ()
5557
5658IF (MSGPACK_32BIT)
5759 IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
58- SET ( CMAKE_CXX_FLAGS " -m32 ${CMAKE_CXX_FLAGS} " )
59- SET ( CMAKE_EXE_LINKER_FLAGS " -m32 ${CMAKE_EXE_LINKER_FLAGS} " )
60+ TARGET_COMPILE_OPTIONS (msgpackc-cxx INTERFACE -m32)
61+ TARGET_LINK_OPTIONS (msgpackc-cxx INTERFACE -m32)
6062 ELSEIF ("${CMAKE_CXX_COMPILER_ID} " MATCHES "Clang" )
61- SET ( CMAKE_CXX_FLAGS " -m32 ${CMAKE_CXX_FLAGS} " )
62- SET ( CMAKE_EXE_LINKER_FLAGS " -m32 ${CMAKE_EXE_LINKER_FLAGS} " )
63+ TARGET_COMPILE_OPTIONS (msgpackc-cxx INTERFACE -m32)
64+ TARGET_LINK_OPTIONS (msgpackc-cxx INTERFACE -m32)
6365 ENDIF ()
6466ENDIF ()
6567
@@ -76,18 +78,18 @@ IF (MSGPACK_USE_BOOST)
7678
7779 FIND_PACKAGE (Boost REQUIRED)
7880ELSE ()
79- SET ( CMAKE_CXX_FLAGS "-DMSGPACK_NO_BOOST ${CMAKE_CXX_FLAGS} " )
81+ TARGET_COMPILE_DEFINITIONS (msgpackc-cxx INTERFACE MSGPACK_NO_BOOST )
8082ENDIF ()
8183
8284IF (MSGPACK_CHAR_SIGN)
83- SET ( CMAKE_CXX_FLAGS " -f${MSGPACK_CHAR_SIGN} -char ${CMAKE_CXX_FLAGS} " )
85+ TARGET_COMPILE_OPTIONS (msgpackc-cxx INTERFACE -f${MSGPACK_CHAR_SIGN} -char)
8486ENDIF ()
8587
8688IF (MSGPACK_DEFAULT_API_VERSION)
87- SET ( CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION =${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS} " )
89+ TARGET_COMPILE_DEFINITIONS (msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION =${MSGPACK_DEFAULT_API_VERSION} )
8890ELSE ()
8991 SET (MSGPACK_DEFAULT_API_VERSION 3)
90- SET ( CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS} " )
92+ TARGET_COMPILE_DEFINITIONS (msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=3 )
9193ENDIF ()
9294
9395IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
@@ -110,8 +112,6 @@ ENDIF ()
110112
111113INCLUDE (Files .cmake)
112114
113- ADD_LIBRARY (msgpackc-cxx INTERFACE )
114-
115115TARGET_INCLUDE_DIRECTORIES (msgpackc-cxx
116116 INTERFACE
117117 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include >
@@ -134,7 +134,6 @@ IF (MSGPACK_GEN_COVERAGE)
134134
135135 INCLUDE (CodeCoverage)
136136 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS} " )
137-
138137 SETUP_TARGET_FOR_COVERAGE(coverage make coverage test )
139138ENDIF ()
140139
@@ -157,7 +156,7 @@ IF (MSGPACK_FUZZ_REGRESSION)
157156ENDIF ()
158157
159158IF ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "sparc" )
160- SET ( CMAKE_CXX_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_CXX_FLAGS} " )
159+ TARGET_COMPILE_DEFINITIONS (msgpackc-cxx INTERFACE MSGPACK_ZONE_ALIGN=8 )
161160ENDIF ()
162161
163162IF (MSGPACK_BUILD_EXAMPLES)
0 commit comments