Skip to content

Commit 1bf46d6

Browse files
Migrate to modern TBB version
1 parent 0081672 commit 1bf46d6

File tree

16 files changed

+554
-683
lines changed

16 files changed

+554
-683
lines changed

.github/workflows/osrm-backend.yml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ jobs:
144144
CXXCOMPILER: g++-9
145145
CXXFLAGS: -Wno-cast-function-type
146146

147-
- name: gcc-9-release-i686
147+
- name: gcc-9-conan-release-i686
148148
continue-on-error: false
149149
node: 12
150150
runs-on: ubuntu-20.04
@@ -155,7 +155,8 @@ jobs:
155155
CXXCOMPILER: g++-9
156156
CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
157157
TARGET_ARCH: i686
158-
158+
ENABLE_CONAN: ON
159+
159160
- name: gcc-8-release
160161
continue-on-error: false
161162
node: 12
@@ -362,7 +363,6 @@ jobs:
362363
ENABLE_CONAN: ON
363364
NODE_PACKAGE_TESTS_ONLY: ON
364365

365-
366366
name: ${{ matrix.name}}
367367
continue-on-error: ${{ matrix.continue-on-error }}
368368
runs-on: ${{ matrix.runs-on }}
@@ -459,10 +459,6 @@ jobs:
459459
wget --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${CMAKE_DIR}
460460
echo "${CMAKE_DIR}/bin" >> $GITHUB_PATH
461461
462-
# TBB
463-
${MASON} install tbb 2017_U7
464-
echo "LD_LIBRARY_PATH=$(${MASON} prefix tbb 2017_U7)/lib/:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
465-
466462
# ccache
467463
${MASON} install ccache ${CCACHE_VERSION}
468464
echo "$(${MASON} prefix ccache ${CCACHE_VERSION})/bin" >> $GITHUB_PATH
@@ -486,7 +482,7 @@ jobs:
486482
if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then
487483
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
488484
sudo apt-get update -y
489-
sudo apt-get install -y libbz2-dev libxml2-dev libzip-dev liblua5.2-dev libtbb-dev libboost-all-dev
485+
sudo apt-get install -y libbz2-dev libxml2-dev libzip-dev liblua5.2-dev libboost-all-dev
490486
if [[ -z "${CLANG_VERSION}" ]]; then
491487
sudo apt-get install -y ${CXXCOMPILER}
492488
fi
@@ -498,6 +494,18 @@ jobs:
498494
echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}" >> $GITHUB_ENV
499495
fi
500496
497+
# TBB
498+
TBB_VERSION=2021.3.0
499+
if [[ "${RUNNER_OS}" == "Linux" ]]; then
500+
TBB_URL="https://github.com/oneapi-src/oneTBB/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-lin.tgz"
501+
elif [[ "${RUNNER_OS}" == "macOS" ]]; then
502+
TBB_URL="https://github.com/oneapi-src/oneTBB/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-mac.tgz"
503+
fi
504+
wget --tries 5 ${TBB_URL} -O onetbb.tgz
505+
tar zxvf onetbb.tgz
506+
sudo cp -a oneapi-tbb-${TBB_VERSION}/lib/. /usr/local/lib/
507+
sudo cp -a oneapi-tbb-${TBB_VERSION}/include/. /usr/local/include/
508+
501509
- name: Prepare build
502510
run: |
503511
mkdir ${OSRM_BUILD_DIR}
@@ -513,6 +521,7 @@ jobs:
513521
run: |
514522
echo "Using ${JOBS} jobs"
515523
pushd ${OSRM_BUILD_DIR}
524+
516525
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
517526
-DENABLE_CONAN=${ENABLE_CONAN:-OFF} \
518527
-DENABLE_ASSERTIONS=${ENABLE_ASSERTIONS:-OFF} \

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Misc:
66
- FIXED: Fix bug with reading Set values from Lua scripts. [#6285](https://github.com/Project-OSRM/osrm-backend/pull/6285)
77
- Build:
8+
- CHANGED: Migrate to modern TBB version. [#6300](https://github.com/Project-OSRM/osrm-backend/pull/6300)
89
- CHANGED: Configure Undefined Behaviour Sanitizer. [#6290](https://github.com/Project-OSRM/osrm-backend/pull/6290)
910
- CHANGED: Use Conan instead of Mason to install code dependencies. [#6284](https://github.com/Project-OSRM/osrm-backend/pull/6284)
1011
- CHANGED: Migrate to C++17. Update sol2 to 3.3.0. [#6279](https://github.com/Project-OSRM/osrm-backend/pull/6279)

CMakeLists.txt

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -459,22 +459,42 @@ if(ENABLE_CONAN)
459459
set(CONAN_BZIP2_VERSION 1.0.8)
460460
set(CONAN_EXPAT_VERSION 2.2.10)
461461
set(CONAN_LUA_VERSION 5.4.4)
462-
set(CONAN_TBB_VERSION 2020.3)
462+
set(CONAN_TBB_VERSION 2021.3.0)
463463

464464
set(CONAN_SYSTEM_INCLUDES ON)
465-
conan_cmake_run(
466-
REQUIRES
467-
boost/${CONAN_BOOST_VERSION}
468-
bzip2/${CONAN_BZIP2_VERSION}
469-
expat/${CONAN_EXPAT_VERSION}
470-
lua/${CONAN_LUA_VERSION}
471-
tbb/${CONAN_TBB_VERSION}
472-
BASIC_SETUP
473-
BUILD missing
474-
GENERATORS cmake_find_package
475-
KEEP_RPATHS
476-
NO_OUTPUT_DIRS
477-
)
465+
466+
467+
# explicitly say Conan to use x86 dependencies if build for x86 platforms (https://github.com/conan-io/cmake-conan/issues/141)
468+
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
469+
conan_cmake_run(
470+
REQUIRES
471+
boost/${CONAN_BOOST_VERSION}
472+
bzip2/${CONAN_BZIP2_VERSION}
473+
expat/${CONAN_EXPAT_VERSION}
474+
lua/${CONAN_LUA_VERSION}
475+
onetbb/${CONAN_TBB_VERSION}
476+
BASIC_SETUP
477+
BUILD missing
478+
GENERATORS cmake_find_package
479+
KEEP_RPATHS
480+
NO_OUTPUT_DIRS
481+
ARCH x86
482+
)
483+
else()
484+
conan_cmake_run(
485+
REQUIRES
486+
boost/${CONAN_BOOST_VERSION}
487+
bzip2/${CONAN_BZIP2_VERSION}
488+
expat/${CONAN_EXPAT_VERSION}
489+
lua/${CONAN_LUA_VERSION}
490+
onetbb/${CONAN_TBB_VERSION}
491+
BASIC_SETUP
492+
BUILD missing
493+
GENERATORS cmake_find_package
494+
KEEP_RPATHS
495+
NO_OUTPUT_DIRS
496+
)
497+
endif()
478498

479499
add_dependency_includes(${CONAN_INCLUDE_DIRS_BOOST})
480500
add_dependency_includes(${CONAN_INCLUDE_DIRS_BZIP2})
@@ -496,7 +516,7 @@ if(ENABLE_CONAN)
496516
set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY "${Boost_unit_test_framework_LIB_TARGETS}")
497517

498518
find_package(BZip2 REQUIRED EXACT ${CONAN_BZIP2_VERSION})
499-
find_package(EXPAT REQUIRED EXACT ${CONAN_EXPAT_VERSION})
519+
find_package(EXPAT REQUIRED)
500520
find_package(lua REQUIRED EXACT ${CONAN_LUA_VERSION})
501521
set(LUA_LIBRARIES ${lua_LIBRARIES})
502522

@@ -517,9 +537,7 @@ else()
517537

518538
find_package(TBB REQUIRED)
519539
add_dependency_includes(${TBB_INCLUDE_DIR})
520-
if(WIN32)
521-
set(TBB_LIBRARIES optimized ${TBB_LIBRARY} optimized ${TBB_MALLOC_LIBRARY} debug ${TBB_LIBRARY_DEBUG} debug ${TBB_MALLOC_LIBRARY_DEBUG})
522-
endif()
540+
set(TBB_LIBRARIES TBB::tbb)
523541

524542
find_package(EXPAT REQUIRED)
525543
add_dependency_includes(${EXPAT_INCLUDE_DIRS})
@@ -793,9 +811,9 @@ JOIN("-I${DEPENDENCIES_INCLUDE_DIRS}" " -I" PKGCONFIG_OSRM_INCLUDE_FLAGS)
793811

794812
# Boost uses imported targets, we need to use a generator expression to extract
795813
# the link libraries to be written to the pkg-config file.
796-
# Conan defines dependencies as CMake targets too, that's why we do the same for them.
814+
# Conan & TBB define dependencies as CMake targets too, that's why we do the same for them.
797815
foreach(engine_lib ${ENGINE_LIBRARIES})
798-
if("${engine_lib}" MATCHES "^Boost.*" OR "${engine_lib}" MATCHES "^CONAN_LIB.*")
816+
if("${engine_lib}" MATCHES "^Boost.*" OR "${engine_lib}" MATCHES "^CONAN_LIB.*" OR "${engine_lib}" MATCHES "^TBB.*")
799817
list(APPEND PKGCONFIG_DEPENDENT_LIBRARIES "$<TARGET_LINKER_FILE:${engine_lib}>")
800818
else()
801819
list(APPEND PKGCONFIG_DEPENDENT_LIBRARIES "${engine_lib}")

0 commit comments

Comments
 (0)