Use target_compile_definitions for custom defines
Replace `add_definitions` with `target_compile_definitions` for specified targets. Multiple options are separated using the `separate_arguments` function, which converts any string using space-separated arguments into a semicolon-separated list.
This commit is contained in:
parent
0f1e75a902
commit
fc7928a4b7
@ -24,7 +24,8 @@ cmake_dependent_option(PUGIXML_BUILD_TESTS
|
|||||||
"BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF)
|
"BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF)
|
||||||
|
|
||||||
# Custom build defines
|
# Custom build defines
|
||||||
set(PUGIXML_BUILD_DEFINES CACHE STRING "Build defines")
|
set(PUGIXML_BUILD_DEFINES CACHE STRING "Build defines for custom options")
|
||||||
|
separate_arguments(PUGIXML_BUILD_DEFINES)
|
||||||
|
|
||||||
option(PUGIXML_BUILD_SHARED_AND_STATIC_LIBS "Build both shared and static libraries" OFF)
|
option(PUGIXML_BUILD_SHARED_AND_STATIC_LIBS "Build both shared and static libraries" OFF)
|
||||||
|
|
||||||
@ -47,12 +48,6 @@ if (NOT DEFINED CMAKE_CXX_STANDARD)
|
|||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DEFINED PUGIXML_BUILD_DEFINES)
|
|
||||||
foreach(DEFINE ${PUGIXML_BUILD_DEFINES})
|
|
||||||
add_definitions("-D" ${DEFINE})
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PUGIXML_USE_POSTFIX)
|
if (PUGIXML_USE_POSTFIX)
|
||||||
set(CMAKE_RELWITHDEBINFO_POSTFIX _r)
|
set(CMAKE_RELWITHDEBINFO_POSTFIX _r)
|
||||||
set(CMAKE_MINSIZEREL_POSTFIX _m)
|
set(CMAKE_MINSIZEREL_POSTFIX _m)
|
||||||
@ -90,6 +85,8 @@ if (PUGIXML_BUILD_SHARED_LIBS OR PUGIXML_BUILD_SHARED_AND_STATIC_LIBS)
|
|||||||
PUBLIC
|
PUBLIC
|
||||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>)
|
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>)
|
||||||
target_compile_definitions(pugixml-shared
|
target_compile_definitions(pugixml-shared
|
||||||
|
PUBLIC
|
||||||
|
${PUGIXML_BUILD_DEFINES}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:PUGIXML_API=__declspec\(dllexport\)>)
|
$<$<CXX_COMPILER_ID:MSVC>:PUGIXML_API=__declspec\(dllexport\)>)
|
||||||
target_compile_options(pugixml-shared
|
target_compile_options(pugixml-shared
|
||||||
@ -110,6 +107,9 @@ if (NOT PUGIXML_BUILD_SHARED_LIBS OR PUGIXML_BUILD_SHARED_AND_STATIC_LIBS)
|
|||||||
target_include_directories(pugixml-static
|
target_include_directories(pugixml-static
|
||||||
PUBLIC
|
PUBLIC
|
||||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>)
|
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>)
|
||||||
|
target_compile_definitions(pugixml-static
|
||||||
|
PUBLIC
|
||||||
|
${PUGIXML_BUILD_DEFINES})
|
||||||
target_compile_options(pugixml-static
|
target_compile_options(pugixml-static
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${msvc-rt-mtd-shared}
|
${msvc-rt-mtd-shared}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user