mirror of
https://github.com/zeux/pugixml.git
synced 2024-12-26 12:41:06 +08:00
CMake now uses C++17 if supported by the compiler
We only set this when C++ version or requirement flag is not overridden externally to be able to rely on CMake automatically downgrading the standard version when the compiler doesn't support it. CXX_STANDARD 17 also requires CMake 3.8 or later; on earlier versions we use the old behavior and set C++11.
This commit is contained in:
parent
ae163d5f06
commit
0f22f71f60
@ -64,11 +64,13 @@ if (NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
|
|||||||
MultiThreaded$<$<CONFIG:Debug>:Debug>$<$<NOT:$<BOOL:${PUGIXML_STATIC_CRT}>>:DLL>)
|
MultiThreaded$<$<CONFIG:Debug>:Debug>$<$<NOT:$<BOOL:${PUGIXML_STATIC_CRT}>>:DLL>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED)
|
# Set the default C++ standard to C++17 if not set; CMake will automatically downgrade this if the compiler does not support it
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
# When CMAKE_CXX_STANDARD_REQUIRED is set, we fall back to C++11 to avoid breaking older compilers
|
||||||
endif()
|
if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED AND NOT DEFINED CMAKE_CXX_STANDARD AND NOT CMAKE_VERSION VERSION_LESS 3.8)
|
||||||
|
|
||||||
if (NOT DEFINED CMAKE_CXX_STANDARD)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED OFF)
|
||||||
|
elseif (NOT DEFINED CMAKE_CXX_STANDARD)
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user