summaryrefslogtreecommitdiffstats
path: root/default_build_settings.cmake
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-10-13 21:52:54 +0200
committerTor Egge <Tor.Egge@online.no>2022-10-13 21:52:54 +0200
commit9e67f20029c3e91c7286971d6d68713c467d5b06 (patch)
tree29972b2f41e7bc2484458038e94acb3505a2fd4f /default_build_settings.cmake
parent6e7459c9eff635d9c8227cd8d1add320f298c0e2 (diff)
Always detect llvm version.
Diffstat (limited to 'default_build_settings.cmake')
-rw-r--r--default_build_settings.cmake198
1 files changed, 43 insertions, 155 deletions
diff --git a/default_build_settings.cmake b/default_build_settings.cmake
index 3d0db85dc4d..5a21d12d0c6 100644
--- a/default_build_settings.cmake
+++ b/default_build_settings.cmake
@@ -2,107 +2,16 @@
include(VespaExtendedDefaultBuildSettings OPTIONAL)
-function(setup_vespa_default_build_settings_rhel_8)
- message("-- Setting up default build settings for rhel 8")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "12" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_centos_stream_8)
- message("-- Setting up default build settings for centos stream 8")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "14" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_centos_stream_9)
- message("-- Setting up default build settings for centos stream 9")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/include/openblas" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "14" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_rocky_8_6)
- message("-- Setting up default build settings for rocky 8.6")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "13" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_almalinux_8_6)
- message("-- Setting up default build settings for almalinux 8.6")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "13" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_almalinux_9_0)
- message("-- Setting up default build settings for almalinux 9.0")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/include/openblas" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "13" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_oraclelinux_8_6)
- message("-- Setting up default build settings for oracle linux 8.6")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "13" PARENT_SCOPE)
-endfunction()
-
function(setup_vespa_default_build_settings_darwin)
message("-- Setting up default build settings for darwin")
- set(DEFAULT_VESPA_LLVM_VERSION "15" PARENT_SCOPE)
- set(DEFAULT_CMAKE_PREFIX_PATH "${VESPA_DEPS}" "/usr/local/opt/bison" "/usr/local/opt/flex" "/usr/local/opt/openssl@1.1" "/usr/local/opt/openblas" "/usr/local/opt/icu4c" PARENT_SCOPE)
- set(DEFAULT_EXTRA_LINK_DIRECTORY "${VESPA_DEPS}/lib" "/usr/local/opt/bison/lib" "/usr/local/opt/flex/lib" "/usr/local/opt/icu4c/lib" "/usr/local/opt/openssl@1.1/lib" "/usr/local/opt/openblas/lib")
+ set(DEFAULT_EXTRA_LINK_DIRECTORY "${VESPA_DEPS_PREFIX}/lib" "/usr/local/opt/bison/lib" "/usr/local/opt/flex/lib" "/usr/local/opt/icu4c/lib" "/usr/local/opt/openssl@1.1/lib" "/usr/local/opt/openblas/lib")
list(APPEND DEFAULT_EXTRA_LINK_DIRECTORY "/usr/local/lib")
set(DEFAULT_EXTRA_LINK_DIRECTORY "${DEFAULT_EXTRA_LINK_DIRECTORY}" PARENT_SCOPE)
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/local/opt/flex/include" "/usr/local/opt/icu4c/include" "/usr/local/opt/openssl@1.1/include" "/usr/local/opt/openblas/include")
+ set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS_PREFIX}/include" "/usr/local/opt/flex/include" "/usr/local/opt/icu4c/include" "/usr/local/opt/openssl@1.1/include" "/usr/local/opt/openblas/include")
list(APPEND DEFAULT_EXTRA_INCLUDE_DIRECTORY "/usr/local/include")
set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${DEFAULT_EXTRA_INCLUDE_DIRECTORY}" PARENT_SCOPE)
endfunction()
-function(setup_vespa_default_build_settings_fedora_36)
- message("-- Setting up default build settings for fedora 36")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/include/openblas" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "14" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_fedora_37)
- message("-- Setting up default build settings for fedora 37")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/include/openblas" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "15" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_fedora_38)
- message("-- Setting up default build settings for fedora 38")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/include/openblas" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "15" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_amzn_2022)
- message("-- Setting up default build settings for amzn 2022")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" "/usr/include/openblas" PARENT_SCOPE)
- set(DEFAULT_VESPA_LLVM_VERSION "14" PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_ubuntu)
- message("-- Setting up default build settings for ubuntu")
- SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
- SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
- find_package(LLVM REQUIRED CONFIG)
- message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
- message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
- set(DEFAULT_VESPA_LLVM_VERSION ${LLVM_VERSION_MAJOR} PARENT_SCOPE)
- set(DEFAULT_EXTRA_LINK_DIRECTORY "${VESPA_DEPS}/lib" ${LLVM_LIBRARY_DIRS} PARENT_SCOPE)
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" ${LLVM_INCLUDE_DIRS} PARENT_SCOPE)
-endfunction()
-
-function(setup_vespa_default_build_settings_debian)
- message("-- Setting up default build settings for debian")
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include" PARENT_SCOPE)
- SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
- SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
- find_package(LLVM REQUIRED CONFIG)
- message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
- message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
- set(DEFAULT_VESPA_LLVM_VERSION ${LLVM_VERSION_MAJOR} PARENT_SCOPE)
-endfunction()
-
function(vespa_use_default_vespa_unprivileged)
if(NOT DEFINED VESPA_UNPRIVILEGED)
message("-- Setting VESPA_UNPRIVILEGED to yes")
@@ -156,74 +65,62 @@ function(vespa_use_default_vespa_group)
endif()
endfunction()
-function(vespa_use_default_build_settings)
- set(VESPA_DEPS "/opt/vespa-deps")
- unset(DEFAULT_VESPA_LLVM_VERSION)
- unset(DEFAULT_CMAKE_PREFIX_PATH)
- unset(DEFAULT_EXTRA_LINK_DIRECTORY)
- unset(DEFAULT_EXTRA_INCLUDE_DIRECTORY)
- unset(DEFAULT_VESPA_CPU_ARCH_FLAGS)
- unset(DEFAULT_CMAKE_SHARED_LINKER_FLAGS)
+function(vespa_use_default_vespa_deps_prefix)
+ set(VESPA_DEPS_PREFIX "/opt/vespa-deps")
if(APPLE)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- set(VESPA_DEPS "/opt/vespa-deps-clang")
+ set(VESPA_DEPS_PREFIX "/opt/vespa-deps-clang")
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
- set(VESPA_DEPS "/opt/vespa-deps-appleclang")
+ set(VESPA_DEPS_PREFIX "/opt/vespa-deps-appleclang")
endif()
endif()
if(COMMAND vespa_use_specific_vespa_deps)
vespa_use_specific_vespa_deps()
endif()
+ message("-- Setting VESPA_DEPS_PREFIX to ${VESPA_DEPS_PREFIX}")
+ set(VESPA_DEPS_PREFIX ${VESPA_DEPS_PREFIX} PARENT_SCOPE)
+endfunction()
+
+function(vespa_use_default_cmake_prefix_path)
+ set(DEFAULT_CMAKE_PREFIX_PATH ${VESPA_DEPS_PREFIX})
+ if (APPLE)
+ list(APPEND DEFAULT_CMAKE_PREFIX_PATH "/usr/local/opt/bison" "/usr/local/opt/flex" "/usr/local/opt/openssl@1.1" "/usr/local/opt/openblas" "/usr/local/opt/icu4c")
+ endif()
+ message("-- DEFAULT_CMAKE_PREFIX_PATH is ${DEFAULT_CMAKE_PREFIX_PATH}")
+ if(NOT DEFINED CMAKE_PREFIX_PATH)
+ message("-- Setting CMAKE_PREFIX_PATH to ${DEFAULT_CMAKE_PREFIX_PATH}")
+ set(CMAKE_PREFIX_PATH ${DEFAULT_CMAKE_PREFIX_PATH} PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(vespa_use_default_build_settings)
+ unset(DEFAULT_EXTRA_LINK_DIRECTORY)
+ unset(DEFAULT_EXTRA_INCLUDE_DIRECTORY)
+ unset(DEFAULT_VESPA_CPU_ARCH_FLAGS)
+ unset(DEFAULT_CMAKE_SHARED_LINKER_FLAGS)
if(COMMAND vespa_use_specific_compiler_rpath)
vespa_use_specific_compiler_rpath()
endif()
- if(COMMAND vespa_use_specific_llvm_version)
- vespa_use_specific_llvm_version()
- endif()
- if(VESPA_OS_DISTRO STREQUAL "rhel" AND
- VESPA_OS_DISTRO_VERSION VERSION_GREATER_EQUAL "8" AND
- VESPA_OS_DISTRO_VERSION VERSION_LESS "9")
- setup_vespa_default_build_settings_rhel_8()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "centos 8")
- setup_vespa_default_build_settings_centos_stream_8()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "centos 9")
- setup_vespa_default_build_settings_centos_stream_9()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "rocky 8.6")
- setup_vespa_default_build_settings_rocky_8_6()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "almalinux 8.6")
- setup_vespa_default_build_settings_almalinux_8_6()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "almalinux 9.0")
- setup_vespa_default_build_settings_almalinux_9_0()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "ol 8.6")
- setup_vespa_default_build_settings_oraclelinux_8_6()
- elseif(VESPA_OS_DISTRO STREQUAL "darwin")
+ if(APPLE)
setup_vespa_default_build_settings_darwin()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "fedora 36")
- setup_vespa_default_build_settings_fedora_36()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "fedora 37")
- setup_vespa_default_build_settings_fedora_37()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "fedora 38")
- setup_vespa_default_build_settings_fedora_38()
- elseif(VESPA_OS_DISTRO_COMBINED STREQUAL "amzn 2022")
- setup_vespa_default_build_settings_amzn_2022()
- elseif(VESPA_OS_DISTRO STREQUAL "ubuntu")
- setup_vespa_default_build_settings_ubuntu()
- elseif(VESPA_OS_DISTRO STREQUAL "debian")
- setup_vespa_default_build_settings_debian()
else()
- message(FATAL_ERROR "-- Unknown vespa build platform ${VESPA_OS_DISTRO_COMBINED}")
- endif()
- if(NOT DEFINED VESPA_LLVM_VERSION AND NOT DEFINED DEFAULT_VESPA_LLVM_VERSION)
- message(FATAL_ERROR "-- Unknown default llvm version")
- endif()
- if(NOT DEFINED DEFAULT_CMAKE_PREFIX_PATH)
- set(DEFAULT_CMAKE_PREFIX_PATH "${VESPA_DEPS}")
+ message("-- Setting up default build settings for for ${VESPA_OS_DISTRO_COMBINED}")
endif()
+ set(DEFAULT_VESPA_LLVM_VERSION ${LLVM_VERSION_MAJOR})
if(NOT DEFINED DEFAULT_EXTRA_LINK_DIRECTORY)
- set(DEFAULT_EXTRA_LINK_DIRECTORY "${VESPA_DEPS}/${CMAKE_INSTALL_LIBDIR}")
+ set(DEFAULT_EXTRA_LINK_DIRECTORY "${VESPA_DEPS_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+ list(APPEND DEFAULT_EXTRA_LINK_DIRECTORY ${LLVM_LIBRARY_DIRS})
+ list(REMOVE_ITEM DEFAULT_EXTRA_LINK_DIRECTORY "/usr/${CMAKE_INSTALL_LIBDIR}")
+ list(REMOVE_DUPLICATES DEFAULT_EXTRA_LINK_DIRECTORY)
endif()
if(NOT DEFINED DEFAULT_EXTRA_INCLUDE_DIRECTORY)
- set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS}/include")
+ set(DEFAULT_EXTRA_INCLUDE_DIRECTORY "${VESPA_DEPS_PREFIX}/include")
+ list(APPEND DEFAULT_EXTRA_INCLUDE_DIRECTORY ${LLVM_INCLUDE_DIRS})
+ if(EXISTS "/usr/include/openblas")
+ list(APPEND DEFAULT_EXTRA_INCLUDE_DIRECTORY "/usr/include/openblas")
+ endif()
+ list(REMOVE_ITEM DEFAULT_EXTRA_INCLUDE_DIRECTORY "/usr/include")
+ list(REMOVE_DUPLICATES DEFAULT_EXTRA_INCLUDE_DIRECTORY)
endif()
if(DEFINED DEFAULT_CMAKE_SHARED_LINKER_FLAGS)
message("-- DEFAULT_CMAKE_SHARED_LINKER_FLAGS is ${DEFAULT_CMAKE_SHARED_LINKER_FLAGS}")
@@ -242,23 +139,14 @@ function(vespa_use_default_build_settings)
set(DEFAULT_VESPA_CPU_ARCH_FLAGS "-march=armv8.2-a+fp16+rcpc+dotprod+crypto -mtune=neoverse-n1")
endif()
endif()
- if(DEFINED DEFAULT_CMAKE_PREFIX_PATH)
- message("-- DEFAULT_CMAKE_PREFIX_PATH is ${DEFAULT_CMAKE_PREFIX_PATH}")
- endif()
if(DEFINED DEFAULT_EXTRA_LINK_DIRECTORY)
message("-- DEFAULT_EXTRA_LINK_DIRECTORY is ${DEFAULT_EXTRA_LINK_DIRECTORY}")
endif()
if(DEFINED DEFAULT_EXTRA_INCLUDE_DIRECTORY)
message("-- DEFAULT_EXTRA_INCLUDE_DIRECTORY is ${DEFAULT_EXTRA_INCLUDE_DIRECTORY}")
endif()
- if(DEFINED DEFAULT_VESPA_LLVM_VERSION)
- message("-- DEFAULT_VESPA_LLVM_VERSION is ${DEFAULT_VESPA_LLVM_VERSION}")
- endif()
+ message("-- DEFAULT_VESPA_LLVM_VERSION is ${DEFAULT_VESPA_LLVM_VERSION}")
message("-- DEFAULT_VESPA_CPU_ARCH_FLAGS is ${DEFAULT_VESPA_CPU_ARCH_FLAGS}")
- if(NOT DEFINED CMAKE_PREFIX_PATH AND DEFINED DEFAULT_CMAKE_PREFIX_PATH)
- message("-- Setting CMAKE_PREFIX_PATH to ${DEFAULT_CMAKE_PREFIX_PATH}")
- set(CMAKE_PREFIX_PATH "${DEFAULT_CMAKE_PREFIX_PATH}" PARENT_SCOPE)
- endif()
if(NOT DEFINED EXTRA_INCLUDE_DIRECTORY AND DEFINED DEFAULT_EXTRA_INCLUDE_DIRECTORY)
message("-- Setting EXTRA_INCLUDE_DIRECTORY to ${DEFAULT_EXTRA_INCLUDE_DIRECTORY}")
set(EXTRA_INCLUDE_DIRECTORY "${DEFAULT_EXTRA_INCLUDE_DIRECTORY}" PARENT_SCOPE)
@@ -291,7 +179,7 @@ function(vespa_use_default_build_settings)
set(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" PARENT_SCOPE)
endif()
endif()
- if(NOT DEFINED VESPA_LLVM_VERSION AND DEFINED DEFAULT_VESPA_LLVM_VERSION)
+ if(NOT DEFINED VESPA_LLVM_VERSION)
message("-- Setting VESPA_LLVM_VERSION to ${DEFAULT_VESPA_LLVM_VERSION}")
set(VESPA_LLVM_VERSION "${DEFAULT_VESPA_LLVM_VERSION}" PARENT_SCOPE)
endif()