From 5c2d1861326469bd59fa44292e3f8847c3b3bc7a Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Tue, 7 Apr 2020 00:14:45 +0200 Subject: [PATCH] CMake: Add variable to indicate if c++11 or later is enabled Use it in macOS checks. --- build/cmake/functions.cmake | 18 ++++++------------ build/cmake/init.cmake | 5 +++++ build/cmake/setup.cmake | 6 +----- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index b9d862bbe8..26268d4db0 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -77,18 +77,12 @@ endmacro() function(wx_set_common_target_properties target_name) cmake_parse_arguments(wxCOMMON_TARGET_PROPS "DEFAULT_WARNINGS" "" "" ${ARGN}) - if(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_DEFAULT) - if( - APPLE AND - CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 10.9 AND - (wxBUILD_CXX_STANDARD EQUAL 11 OR wxBUILD_CXX_STANDARD EQUAL 14) - ) - if(CMAKE_GENERATOR STREQUAL "Xcode") - set_target_properties(${target_name} PROPERTIES XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY libc++) - else() - target_compile_options(${target_name} PUBLIC "-stdlib=libc++") - target_link_libraries(${target_name} PRIVATE "-stdlib=libc++") - endif() + if(APPLE AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 10.9 AND wxHAS_CXX11) + if(CMAKE_GENERATOR STREQUAL "Xcode") + set_target_properties(${target_name} PROPERTIES XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY libc++) + else() + target_compile_options(${target_name} PUBLIC "-stdlib=libc++") + target_link_libraries(${target_name} PRIVATE "-stdlib=libc++") endif() endif() set_target_properties(${target_name} PROPERTIES diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index 659ce94da6..6709c371b8 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -11,6 +11,11 @@ if(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_DEFAULT) set(CMAKE_CXX_STANDARD ${wxBUILD_CXX_STANDARD}) endif() +if(NOT CMAKE_CXX_STANDARD EQUAL 98) + set(wxHAS_CXX11 TRUE) +else() + set(wxHAS_CXX11 FALSE) +endif() if(MSVC) # Determine MSVC runtime library flag diff --git a/build/cmake/setup.cmake b/build/cmake/setup.cmake index 35ba62b64b..923f38d1a7 100644 --- a/build/cmake/setup.cmake +++ b/build/cmake/setup.cmake @@ -23,11 +23,7 @@ include(CheckTypeSize) include(CMakePushCheckState) include(TestBigEndian) -if( - APPLE AND - CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 10.9 AND - (CMAKE_CXX_STANDARD EQUAL 11 OR CMAKE_CXX_STANDARD EQUAL 14) - ) +if(APPLE AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 10.9 AND wxHAS_CXX11) set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} "-stdlib=libc++") endif()