summaryrefslogtreecommitdiffstats
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
parent8dc976a0413999572321b1c167f876ebc2dcfdb1 (diff)
Don't depend on gcc libs when using clang
-rw-r--r--build_settings.cmake31
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/CMakeLists.txt2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt2
-rw-r--r--searchlib/src/vespa/searchlib/CMakeLists.txt2
-rw-r--r--storage/CMakeLists.txt2
-rw-r--r--vespalib/src/vespa/vespalib/CMakeLists.txt2
6 files changed, 33 insertions, 8 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()
diff --git a/searchcore/src/vespa/searchcore/proton/common/CMakeLists.txt b/searchcore/src/vespa/searchcore/proton/common/CMakeLists.txt
index 84d1cfb471a..4db36039b3c 100644
--- a/searchcore/src/vespa/searchcore/proton/common/CMakeLists.txt
+++ b/searchcore/src/vespa/searchcore/proton/common/CMakeLists.txt
@@ -22,5 +22,5 @@ vespa_add_library(searchcore_pcommon STATIC
DEPENDS
searchcore_proton_metrics
searchcore_fconfig
- stdc++fs
+ ${VESPA_STDCXX_FS_LIB}
)
diff --git a/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt b/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt
index d47e87e9e03..92cf186f697 100644
--- a/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt
+++ b/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt
@@ -121,5 +121,5 @@ vespa_add_library(searchcore_server STATIC
searchcore_fconfig
searchcore_reference
configdefinitions
- stdc++fs
+ ${VESPA_STDCXX_FS_LIB}
)
diff --git a/searchlib/src/vespa/searchlib/CMakeLists.txt b/searchlib/src/vespa/searchlib/CMakeLists.txt
index e4e1f92898f..f6f9ad2259a 100644
--- a/searchlib/src/vespa/searchlib/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/CMakeLists.txt
@@ -32,7 +32,7 @@ vespa_add_library(searchlib
INSTALL lib64
DEPENDS
staging_vespalib
- atomic
+ ${VESPA_ATOMIC_LIB}
)
vespa_add_target_package_dependency(searchlib Protobuf)
diff --git a/storage/CMakeLists.txt b/storage/CMakeLists.txt
index 418d8dbe430..52423f031e5 100644
--- a/storage/CMakeLists.txt
+++ b/storage/CMakeLists.txt
@@ -47,7 +47,7 @@ vespa_define_module(
TEST_DEPENDS
messagebus_messagebus-test
vdstestlib
- atomic
+ ${VESPA_ATOMIC_LIB}
TESTS
src/tests
diff --git a/vespalib/src/vespa/vespalib/CMakeLists.txt b/vespalib/src/vespa/vespalib/CMakeLists.txt
index d13875a9383..4249f6333a4 100644
--- a/vespalib/src/vespa/vespalib/CMakeLists.txt
+++ b/vespalib/src/vespa/vespalib/CMakeLists.txt
@@ -25,7 +25,7 @@ vespa_add_library(vespalib
$<TARGET_OBJECTS:vespalib_vespalib_websocket>
INSTALL lib64
DEPENDS
- gcc
+ ${VESPA_GCC_LIB}
)
vespa_add_target_package_dependency(vespalib OpenSSL)