From bf82482c1b92b0f6d6b17150dbe9adcd60ca1f92 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Thu, 14 Mar 2019 12:00:25 +0100 Subject: Adjust build setup for Darwin. --- .gitignore | 2 ++ CMakeLists.txt | 5 ++++- build_settings.cmake | 17 ++++++++++++++++- eval/src/vespa/eval/CMakeLists.txt | 2 +- searchlib/CMakeLists.txt | 2 +- staging_vespalib/src/tests/benchmark/CMakeLists.txt | 2 +- storage/CMakeLists.txt | 2 +- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 6697c90b625..989a338737d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ pom.xml.build *.o *.So +*.dSYM/ +*.dylib lib*.a lib*.so /jdisc_gds_service diff --git a/CMakeLists.txt b/CMakeLists.txt index 61fadc92b4c..8456b79f124 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,7 +120,10 @@ add_subdirectory(vespaclient-java) add_subdirectory(vespajlib) add_subdirectory(vespalib) add_subdirectory(vespalog) -add_subdirectory(vespamalloc) +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") +else() + add_subdirectory(vespamalloc) +endif() add_subdirectory(vsm) add_subdirectory(zkfacade) diff --git a/build_settings.cmake b/build_settings.cmake index 94021271fa8..6ba511355a9 100644 --- a/build_settings.cmake +++ b/build_settings.cmake @@ -32,7 +32,11 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O3 -fno-omit-frame-pointer ${C_WARN_OPTS 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}") # Linker flags -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id -latomic -ldl -Wl,-E") +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -latomic -ldl") +else() + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id -latomic -ldl -Wl,-E") +endif() SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic" ) # Use C++ 17 @@ -81,6 +85,14 @@ else() set (VESPA_LLVM_VERSION "6.0") endif() +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") + set(VESPA_LLVM_LIB "LLVM") + set(VESPA_GLIBC_RT_LIB "") +else() + set(VESPA_LLVM_LIB "LLVM-${VESPA_LLVM_VERSION}") + set(VESPA_GLIBC_RT_LIB "rt") +endif() + if(VESPA_USER) else() set(VESPA_USER "vespa") @@ -102,9 +114,12 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath,${CMAKE_B set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,${CMAKE_BUILD_RPATH}") endif() +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") +else() # Don't allow unresolved symbols in executables or shared libraries set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined") # Enable cppunit tests in shared libraries set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-as-needed") +endif() diff --git a/eval/src/vespa/eval/CMakeLists.txt b/eval/src/vespa/eval/CMakeLists.txt index 94a46015b7d..90972de7c80 100644 --- a/eval/src/vespa/eval/CMakeLists.txt +++ b/eval/src/vespa/eval/CMakeLists.txt @@ -12,5 +12,5 @@ vespa_add_library(vespaeval $ INSTALL lib64 DEPENDS - LLVM-${VESPA_LLVM_VERSION} + ${VESPA_LLVM_LIB} ) diff --git a/searchlib/CMakeLists.txt b/searchlib/CMakeLists.txt index c55aadb5eae..11863bead42 100644 --- a/searchlib/CMakeLists.txt +++ b/searchlib/CMakeLists.txt @@ -16,7 +16,7 @@ vespa_define_module( searchcommon EXTERNAL_DEPENDS - rt + ${VESPA_GLIBC_RT_LIB} LIBS src/vespa/searchlib diff --git a/staging_vespalib/src/tests/benchmark/CMakeLists.txt b/staging_vespalib/src/tests/benchmark/CMakeLists.txt index 57527d57acb..92f4f6106c1 100644 --- a/staging_vespalib/src/tests/benchmark/CMakeLists.txt +++ b/staging_vespalib/src/tests/benchmark/CMakeLists.txt @@ -5,7 +5,7 @@ vespa_add_executable(staging_vespalib_benchmark_test_app testbase.cpp DEPENDS staging_vespalib - rt + ${VESPA_GLIBC_RT_LIB} ) vespa_add_test(NAME staging_vespalib_benchmark_test NO_VALGRIND COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/benchmark_test.sh BENCHMARK DEPENDS staging_vespalib_benchmark_test_app) diff --git a/storage/CMakeLists.txt b/storage/CMakeLists.txt index 269785d629e..f77c11eb350 100644 --- a/storage/CMakeLists.txt +++ b/storage/CMakeLists.txt @@ -19,7 +19,7 @@ vespa_define_module( EXTERNAL_DEPENDS Judy - rt + ${VESPA_GLIBC_RT_LIB} LIBS src/vespa/storage -- cgit v1.2.3