From 8e035a7518365e4afa9c7cf079756261572029bb Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Thu, 10 Dec 2020 21:42:53 +0300 Subject: [PATCH] build: pass the c++ standard for compiling llvm Yes clickhosue set gnu++2a globally, but this will not work, since default -std=c++11 will be added later, look: clang++ -std=gnu++2a ... -std=c++11 -Wall -Wextra contrib/llvm/... --- CMakeLists.txt | 6 +++--- contrib/CMakeLists.txt | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 367af2bbf9..56faf4ca2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -225,14 +225,14 @@ endif () if (COMPILER_GCC OR COMPILER_CLANG) # to make numeric_limits<__int128> works with GCC - set (_CXX_STANDARD "-std=gnu++2a") + set (_CXX_STANDARD "gnu++2a") else() - set (_CXX_STANDARD "-std=c++2a") + set (_CXX_STANDARD "c++2a") endif() # cmake < 3.12 doesn't support 20. We'll set CMAKE_CXX_FLAGS for now # set (CMAKE_CXX_STANDARD 20) -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_CXX_STANDARD}") +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${_CXX_STANDARD}") set (CMAKE_CXX_EXTENSIONS 0) # https://cmake.org/cmake/help/latest/prop_tgt/CXX_EXTENSIONS.html#prop_tgt:CXX_EXTENSIONS set (CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 48d760e754..ec7ce49634 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -241,6 +241,8 @@ if (USE_EMBEDDED_COMPILER AND USE_INTERNAL_LLVM_LIBRARY) set (LLVM_ENABLE_RTTI 1 CACHE INTERNAL "") set (LLVM_ENABLE_PIC 0 CACHE INTERNAL "") set (LLVM_TARGETS_TO_BUILD "X86;AArch64" CACHE STRING "") + # Yes it is set globally, but this is not enough, since llvm will add -std=c++11 after default + set (LLVM_CXX_STD ${_CXX_STANDARD} CACHE STRING "" FORCE) add_subdirectory (llvm/llvm) target_include_directories(LLVMSupport SYSTEM BEFORE PRIVATE ${ZLIB_INCLUDE_DIR}) endif ()