diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-10-13 21:52:54 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-10-13 21:52:54 +0200 |
commit | 9e67f20029c3e91c7286971d6d68713c467d5b06 (patch) | |
tree | 29972b2f41e7bc2484458038e94acb3505a2fd4f /default_build_settings.cmake | |
parent | 6e7459c9eff635d9c8227cd8d1add320f298c0e2 (diff) |
Always detect llvm version.
Diffstat (limited to 'default_build_settings.cmake')
-rw-r--r-- | default_build_settings.cmake | 198 |
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() |