summaryrefslogtreecommitdiffstats
path: root/build_settings.cmake
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-08-01 13:27:29 +0200
committerTor Egge <Tor.Egge@broadpark.no>2019-08-01 14:36:49 +0200
commitc85b935c7063793bc6486bb9827860d20f4cf3bb (patch)
tree51b390cfd67f06bd3ffe65e00b0db85eee276119 /build_settings.cmake
parent8dc976a0413999572321b1c167f876ebc2dcfdb1 (diff)
Don't depend on gcc libs when using clang
Diffstat (limited to 'build_settings.cmake')
-rw-r--r--build_settings.cmake31
1 files changed, 28 insertions, 3 deletions
diff --git a/build_settings.cmake b/build_settings.cmake
index 7d8ba11f8a1..b1b0b065771 100644
--- a/build_settings.cmake
+++ b/build_settings.cmake
@@ -21,20 +21,45 @@ set(C_WARN_OPTS "-Winline -Wuninitialized -Werror -Wall -W -Wchar-subscripts -Wc
# Warnings that are specific to C++ compilation
# Note: this is not a union of C_WARN_OPTS, since CMAKE_CXX_FLAGS already includes CMAKE_C_FLAGS, which in turn includes C_WARN_OPTS transitively
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
set(CXX_SPECIFIC_WARN_OPTS "-Wnon-virtual-dtor -Wformat-security -Wno-overloaded-virtual")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-delete-null-pointer-checks")
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
+ set(VESPA_ATOMIC_LIB "")
+ set(VESPA_GCC_LIB "")
+ set(VESPA_STDCXX_FS_LIB "")
+ else()
+ set(VESPA_ATOMIC_LIB "atomic")
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
+ set(VESPA_GCC_LIB "gcc")
+ set(VESPA_STDCXX_FS_LIB "stdc++fs")
+ else()
+ set(VESPA_GCC_LIB "")
+ set(VESPA_STDCXX_FS_LIB "")
+ endif()
+ endif()
else()
set(CXX_SPECIFIC_WARN_OPTS "-Wsuggest-override -Wnon-virtual-dtor -Wformat-security")
+ set(VESPA_ATOMIC_LIB "atomic")
+ set(VESPA_GCC_LIB "gcc")
+ set(VESPA_STDCXX_FS_LIB "stdc++fs")
endif()
# C and C++ compiler flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O3 -fno-omit-frame-pointer ${C_WARN_OPTS} -fPIC ${VESPA_CXX_ABI_FLAGS} -DBOOST_DISABLE_ASSERTS ${VESPA_CPU_ARCH_FLAGS} -mtune=intel ${EXTRA_C_FLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS} ${CXX_SPECIFIC_WARN_OPTS} -std=c++1z -fvisibility-inlines-hidden -fdiagnostics-color=auto ${EXTRA_CXX_FLAGS}")
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS} ${CXX_SPECIFIC_WARN_OPTS} -std=c++1z -fdiagnostics-color=auto ${EXTRA_CXX_FLAGS}")
+else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS} ${CXX_SPECIFIC_WARN_OPTS} -std=c++1z -fvisibility-inlines-hidden -fdiagnostics-color=auto ${EXTRA_CXX_FLAGS}")
+endif()
# Linker flags
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -latomic -ldl")
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ldl")
+ else()
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -latomic -ldl")
+ endif()
else()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id -latomic -ldl -Wl,-E")
endif()