From 8f24ba5f40fcbab8b811baaacd2e06e00ca4fcb8 Mon Sep 17 00:00:00 2001 From: Michael Bell Date: Sun, 10 Mar 2024 14:11:13 +0000 Subject: [PATCH] Pin Conan onetbb version to shared support The current pinned version of Conan onetbb appears to be too old to included recipe details in the index. Which means it's pulling in a newer recipe that no longer has a shared lib option. Later versions of the recipe exist in the Conan index, so let's bump to a working recipe for now, to give us time to understand the implication of the removed shared option on the project. --- CMakeLists.txt | 52 +++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b97ca3e6803..0afa562b403 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,7 +151,7 @@ add_library(UPDATER OBJECT ${UpdaterGlob}) add_library(STORAGE OBJECT ${StorageGlob}) add_library(ENGINE OBJECT ${EngineGlob}) -if (BUILD_ROUTED) +if (BUILD_ROUTED) add_library(SERVER OBJECT ${ServerGlob}) add_executable(osrm-routed src/tools/routed.cpp $ $) endif() @@ -312,7 +312,7 @@ add_subdirectory(${FLATBUFFERS_SRC_DIR} set(FMT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmt-9.1.0/include") add_compile_definitions(FMT_HEADER_ONLY) include_directories(SYSTEM ${FMT_INCLUDE_DIR}) - + # see https://stackoverflow.com/questions/70898030/boost-link-error-using-conan-find-package if (MSVC) @@ -322,7 +322,7 @@ endif() if(ENABLE_CONAN) message(STATUS "Installing dependencies via Conan") - # Conan will generate Find*.cmake files to build directory, so we use them with the highest priority + # Conan will generate Find*.cmake files to build directory, so we use them with the highest priority list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_BINARY_DIR}) list(INSERT CMAKE_PREFIX_PATH 0 ${CMAKE_BINARY_DIR}) @@ -332,12 +332,12 @@ if(ENABLE_CONAN) set(CONAN_BZIP2_VERSION "1.0.8#d1b2d5816f25865acf978501dff1f897") set(CONAN_EXPAT_VERSION "2.2.10#916908d4a570ad839edd25322c3268cd") set(CONAN_LUA_VERSION "5.4.4#3ec62efc37cd0a5d80b9e5cb35277360") - set(CONAN_TBB_VERSION "2021.3.0#507ec17cbd51a84167e143b20d170eea") - + set(CONAN_TBB_VERSION "2021.3.0#74b17739d64b20560c06df7b87465fd6") + set(CONAN_SYSTEM_INCLUDES ON) - # TODO: - # if we link TBB dynamically osrm-extract.exe finishes on the first access to any TBB symbol + # TODO: + # if we link TBB dynamically osrm-extract.exe finishes on the first access to any TBB symbol # with exit code = -1073741515, which means that program cannot load required DLL. if (MSVC) set(TBB_SHARED False) @@ -345,14 +345,14 @@ if(ENABLE_CONAN) set(TBB_SHARED True) endif() - set(CONAN_ARGS - REQUIRES + set(CONAN_ARGS + REQUIRES "boost/${CONAN_BOOST_VERSION}" "bzip2/${CONAN_BZIP2_VERSION}" "expat/${CONAN_EXPAT_VERSION}" "lua/${CONAN_LUA_VERSION}" "onetbb/${CONAN_TBB_VERSION}" - BASIC_SETUP + BASIC_SETUP GENERATORS cmake_find_package json # json generator generates a conanbuildinfo.json in the build folder so (non-CMake) projects can easily parse OSRM's dependencies KEEP_RPATHS NO_OUTPUT_DIRS @@ -389,7 +389,7 @@ if(ENABLE_CONAN) set(Boost_ZLIB_LIBRARY "${Boost_zlib_LIB_TARGETS}") set(Boost_REGEX_LIBRARY "${Boost_regex_LIB_TARGETS}") set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY "${Boost_unit_test_framework_LIB_TARGETS}") - + find_package(BZip2 REQUIRED) find_package(EXPAT REQUIRED) @@ -740,23 +740,23 @@ if (ENABLE_FUZZING) add_subdirectory(fuzz) endif () -# add headers sanity check target that includes all headers independently -set(check_headers_dir "${PROJECT_BINARY_DIR}/check-headers") -file(GLOB_RECURSE headers_to_check - ${PROJECT_BINARY_DIR}/*.hpp - ${PROJECT_SOURCE_DIR}/include/*.hpp) -foreach(header ${headers_to_check}) +# add headers sanity check target that includes all headers independently +set(check_headers_dir "${PROJECT_BINARY_DIR}/check-headers") +file(GLOB_RECURSE headers_to_check + ${PROJECT_BINARY_DIR}/*.hpp + ${PROJECT_SOURCE_DIR}/include/*.hpp) +foreach(header ${headers_to_check}) if ("${header}" MATCHES ".*/include/nodejs/.*") # we do not check NodeJS bindings headers continue() endif() - get_filename_component(filename ${header} NAME_WE) - set(filename "${check_headers_dir}/${filename}.cpp") - if (NOT EXISTS ${filename}) - file(WRITE ${filename} "#include \"${header}\"\n") - endif() - list(APPEND sources ${filename}) -endforeach() -add_library(check-headers STATIC EXCLUDE_FROM_ALL ${sources}) -set_target_properties(check-headers PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${check_headers_dir}) + get_filename_component(filename ${header} NAME_WE) + set(filename "${check_headers_dir}/${filename}.cpp") + if (NOT EXISTS ${filename}) + file(WRITE ${filename} "#include \"${header}\"\n") + endif() + list(APPEND sources ${filename}) +endforeach() +add_library(check-headers STATIC EXCLUDE_FROM_ALL ${sources}) +set_target_properties(check-headers PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${check_headers_dir})