From 12be5d06e3b91b63ede91e76e0869a9d00c389d9 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Sat, 6 Aug 2022 10:12:50 +0900 Subject: [PATCH] Fixed #1025. Propagate compiler options that are decided by cmake options to the parent project. --- CMakeLists.txt | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50b8e57a..9cb9dc04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ CMAKE_POLICY (SET CMP0054 NEW) PROJECT (msgpack LANGUAGES CXX) +ADD_LIBRARY (msgpackc-cxx INTERFACE) + FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.hpp contents) STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents}) SET (VERSION_MAJOR ${CMAKE_MATCH_1}) @@ -55,11 +57,11 @@ ENDIF () IF (MSGPACK_32BIT) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") - SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") + TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -m32) + TARGET_LINK_OPTIONS(msgpackc-cxx INTERFACE -m32) ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") - SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") + TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -m32) + TARGET_LINK_OPTIONS(msgpackc-cxx INTERFACE -m32) ENDIF () ENDIF () @@ -76,18 +78,18 @@ IF (MSGPACK_USE_BOOST) FIND_PACKAGE (Boost REQUIRED) ELSE () - SET (CMAKE_CXX_FLAGS "-DMSGPACK_NO_BOOST ${CMAKE_CXX_FLAGS}") + TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_NO_BOOST) ENDIF () IF (MSGPACK_CHAR_SIGN) - SET (CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}") + TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -f${MSGPACK_CHAR_SIGN}-char) ENDIF () IF (MSGPACK_DEFAULT_API_VERSION) - SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}") + TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION}) ELSE () SET (MSGPACK_DEFAULT_API_VERSION 3) - SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}") + TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=3) ENDIF () IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") @@ -110,8 +112,6 @@ ENDIF () INCLUDE (Files.cmake) -ADD_LIBRARY (msgpackc-cxx INTERFACE) - TARGET_INCLUDE_DIRECTORIES (msgpackc-cxx INTERFACE $ @@ -134,7 +134,6 @@ IF (MSGPACK_GEN_COVERAGE) INCLUDE (CodeCoverage) SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}") - SETUP_TARGET_FOR_COVERAGE(coverage make coverage test) ENDIF () @@ -157,7 +156,7 @@ IF (MSGPACK_FUZZ_REGRESSION) ENDIF () IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc") - SET (CMAKE_CXX_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_CXX_FLAGS}") + TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_ZONE_ALIGN=8) ENDIF () IF (MSGPACK_BUILD_EXAMPLES)