From ff889284152b087ba5dd7ab365afdf41614539a4 Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Tue, 31 Jan 2023 10:12:46 -0800 Subject: [PATCH] Fix cmake on macos (#32241) --- CMakeLists.txt | 6 ++++++ templates/CMakeLists.txt.template | 6 ++++++ tools/run_tests/run_tests.py | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index df3fc4a7442..58a030b8062 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,6 +229,12 @@ if(WIN32) set(_gRPC_PLATFORM_WINDOWS ON) endif() +if (APPLE AND NOT DEFINED CMAKE_CXX_STANDARD) + # AppleClang defaults to C++98, so we bump it to C++14. + message("CMAKE_CXX_STANDARD was undefined, defaulting to C++14.") + set(CMAKE_CXX_STANDARD 14) +endif () + if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) endif() diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template index c015549f348..7be9b0a2ae2 100644 --- a/templates/CMakeLists.txt.template +++ b/templates/CMakeLists.txt.template @@ -264,6 +264,12 @@ set(_gRPC_PLATFORM_WINDOWS ON) endif() + if (APPLE AND NOT DEFINED CMAKE_CXX_STANDARD) + # AppleClang defaults to C++98, so we bump it to C++14. + message("CMAKE_CXX_STANDARD was undefined, defaulting to C++14.") + set(CMAKE_CXX_STANDARD 14) + endif () + ## Some libraries are shared even with BUILD_SHARED_LIBRARIES=OFF if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index e2b8388c94d..d29220bb40f 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -477,7 +477,7 @@ class CLanguage(object): _check_compiler(compiler, ['default', 'cmake']) if compiler == 'default' or compiler == 'cmake': - return ('debian11', ["-DCMAKE_CXX_STANDARD=14"]) + return ('debian11', []) elif compiler == 'gcc7': return ('gcc_7', []) elif compiler == 'gcc10.2':