Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OSRM] Add new binary, second try... #8893

Draft
wants to merge 90 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
897c40d
Add back OSRM
jeremiahpslewis Jun 14, 2024
2887931
try gcc 10
jeremiahpslewis Jun 14, 2024
b9c0a37
Try gcc 13
jeremiahpslewis Jun 14, 2024
5c2c9b8
Comment out mingw patch
jeremiahpslewis Jun 14, 2024
9cb97a6
Add c++20 compatible Mac sdk
jeremiahpslewis Jun 14, 2024
9f00d18
try later version of boost
jeremiahpslewis Jun 14, 2024
b051e8c
Drop 32 bit systems
jeremiahpslewis Jun 14, 2024
38a965b
use clang for all builds
jeremiahpslewis Jun 14, 2024
40a522c
Try boost 1.76 again
jeremiahpslewis Jun 14, 2024
7780ba6
set mingw flag according to onetbb
jeremiahpslewis Jun 14, 2024
40fa381
Revert to boost 1.79
jeremiahpslewis Jun 14, 2024
ae75969
better accommodate mingw
jeremiahpslewis Jun 14, 2024
ed4073c
Fix mingw patch
jeremiahpslewis Jun 14, 2024
86c71a7
Add missing image line to devcontainer.json
jeremiahpslewis Jun 14, 2024
3ad0b11
Drop unnecessary part of patch
jeremiahpslewis Jun 14, 2024
95916f4
update patch
jeremiahpslewis Jun 14, 2024
2142a39
gcc 12 confirmed as lower bound
jeremiahpslewis Jun 14, 2024
191a720
Augment mingw patch
jeremiahpslewis Jun 14, 2024
f325649
Better mingw patch
jeremiahpslewis Jun 14, 2024
fc080a6
tweak mingw patch
jeremiahpslewis Jun 15, 2024
b2e4911
Try earlier gcc
jeremiahpslewis Jun 15, 2024
84324c4
Revert to gcc12
jeremiahpslewis Jun 15, 2024
985b35a
Tweak mingw patch
jeremiahpslewis Jun 15, 2024
673d301
fix patch
jeremiahpslewis Jun 15, 2024
9933996
update patch
jeremiahpslewis Jun 15, 2024
b1f4443
attempt more extreme cmake patch
jeremiahpslewis Jun 15, 2024
d4b7e84
Incorporate tweak from @mattwigway
jeremiahpslewis Jun 15, 2024
6cd51b4
Try using gcc again...
jeremiahpslewis Jun 15, 2024
198f815
Revert back to clang
jeremiahpslewis Jun 15, 2024
551b7ad
Try clang lld fix
jeremiahpslewis Jun 15, 2024
a6c629a
Drop windows for now
jeremiahpslewis Jun 15, 2024
9a07122
Add zlib dependency
jeremiahpslewis Jun 15, 2024
f9c584e
Fix zlib?
jeremiahpslewis Jun 15, 2024
c927929
Go back to gcc 10
jeremiahpslewis Jun 15, 2024
74e1ec3
Try julia compat = 1.8 and gcc 12
jeremiahpslewis Jun 15, 2024
aedc225
Tweak params
jeremiahpslewis Jun 15, 2024
4ed8af5
Add osmium as dependency
jeremiahpslewis Jun 17, 2024
09d6ac1
Try boost 1.76 for libosmium compat
jeremiahpslewis Jun 17, 2024
0816ba0
[OSRM] use libosmium dependency
mattwigway Jun 17, 2024
cc089ef
[OSRM] fix mac build
mattwigway Jun 17, 2024
1e72189
Cleanup script
jeremiahpslewis Jun 18, 2024
87e70aa
Drop libosmium so we can use boost 1.79
jeremiahpslewis Jun 18, 2024
ad333e2
update guidance build patch so that osrm-extract binary works
mattwigway Jun 18, 2024
381a2ca
[OSRM] try monolithic libosrm fork
mattwigway Jun 18, 2024
bf842b6
[OSRM] set libraryproducts correctly for monolithic libosrm
mattwigway Jun 18, 2024
44fdc5a
[OSRM] don't dlopen libosrm.so
mattwigway Jun 18, 2024
3a46e11
try updated boost
jeremiahpslewis Jan 30, 2025
bd13a9e
Update build_tarballs.jl
jeremiahpslewis Feb 1, 2025
4cc9c79
add cflag -Wno-deprecated-declarations
jeremiahpslewis Feb 1, 2025
27531ff
switch back to upstream
jeremiahpslewis Feb 12, 2025
416f401
add patch for newer boost
jeremiahpslewis Feb 12, 2025
853a2cd
add cmake patch
jeremiahpslewis Feb 12, 2025
3f5c310
add missing build var
jeremiahpslewis Feb 12, 2025
1439413
help cmake find AR
jeremiahpslewis Feb 12, 2025
ceed7f4
drop lto
jeremiahpslewis Feb 12, 2025
6d1fb2a
try building for more platforms
jeremiahpslewis Feb 12, 2025
20a1829
drop 32 bits which aren't supported
jeremiahpslewis Feb 12, 2025
fa76a7b
try using tbb override?
jeremiahpslewis Feb 12, 2025
b300c1e
try gcc
jeremiahpslewis Feb 12, 2025
7b119a9
go back to clang
jeremiahpslewis Feb 12, 2025
416f6f8
try ignoring deprecations
jeremiahpslewis Feb 12, 2025
fdb1946
fix quote
jeremiahpslewis Feb 12, 2025
6d6b0ab
try gcc again
jeremiahpslewis Feb 12, 2025
2031f2c
Update build_tarballs.jl
jeremiahpslewis Feb 13, 2025
871da32
Update build_tarballs.jl
jeremiahpslewis Feb 13, 2025
57f8c93
try adding flag
jeremiahpslewis Feb 13, 2025
7cc716b
add -fext-numeric-literals flag
jeremiahpslewis Feb 13, 2025
c9f7250
special case mingw build flags
jeremiahpslewis Feb 13, 2025
ce814dc
cleanup bash syntax
jeremiahpslewis Feb 13, 2025
586dc1c
clean up bash
jeremiahpslewis Feb 13, 2025
1c3f52b
use shared fmt lib
jeremiahpslewis Feb 13, 2025
98367e4
use shared fmt lib...
jeremiahpslewis Feb 13, 2025
5e11d9e
capitalization...
jeremiahpslewis Feb 13, 2025
7a4ed8b
Update cmake_fixes.patch
jeremiahpslewis Feb 13, 2025
c218526
revert...
jeremiahpslewis Feb 13, 2025
27e9202
try clang on mingw
jeremiahpslewis Feb 13, 2025
ede5294
revert use of clang on mingw
jeremiahpslewis Feb 13, 2025
74e7229
fix folder name
jeremiahpslewis Feb 13, 2025
74b5119
argh!
jeremiahpslewis Feb 13, 2025
ee05663
Delete O/OSRM/build_tarballs.jl
jeremiahpslewis Feb 13, 2025
c5b62a5
too many typos!
jeremiahpslewis Feb 13, 2025
0f9de54
don
jeremiahpslewis Feb 13, 2025
bd5ad06
use clang, drop flag on mingw
jeremiahpslewis Feb 13, 2025
d62ff09
fix platform exclusion function
jeremiahpslewis Feb 13, 2025
f0d29e7
Fix Bool logic
jeremiahpslewis Feb 13, 2025
90e826b
add unset strict ansi to mingw
jeremiahpslewis Feb 13, 2025
cac5d4c
hide excess mingw errors
jeremiahpslewis Feb 13, 2025
a8c8cc7
try new flag
jeremiahpslewis Feb 13, 2025
cc28191
drop windows!
jeremiahpslewis Feb 13, 2025
5e2893a
Bump oneTBB
jeremiahpslewis Feb 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"image": "mcr.microsoft.com/devcontainers/base:debian",
"features": {
"ghcr.io/julialang/devcontainer-features/julia:1": {
"channel": "1.7"
Expand All @@ -11,5 +12,5 @@
"gpu": "optional"
},
"privileged": true,
"onCreateCommand": "julia -e 'using Pkg; Pkg.precompile();'"
"onCreateCommand": "julia -e 'using Pkg; Pkg.precompile();'",
}
157 changes: 157 additions & 0 deletions O/OpenSourceRoutingMachine/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# Note that this script can accept some limited command-line arguments, run
# `julia build_tarballs.jl --help` to see a usage message.
using BinaryBuilder, Pkg

name = "OpenSourceRoutingMachine"
version = v"5.28.0" # UNTAGGED / ASK FOR NEW RELEASE TAG

# Collection of sources required to complete build
sources = [
GitSource("https://github.com/Project-OSRM/osrm-backend.git", "c59ad69d6a081fb0c8fca9fe7bf798d4150ea8d2"),
DirectorySource("./bundled"),
# OSRM requires C++20, which needs a newer SDK
ArchiveSource("https://github.com/realjf/MacOSX-SDKs/releases/download/v0.0.1/MacOSX12.3.sdk.tar.xz",
"a511c1cf1ebfe6fe3b8ec005374b9c05e89ac28b3d4eb468873f59800c02b030"),
]

sdk_update_script = raw"""
if [[ "${target}" == *-apple-darwin* ]]; then
# Install a newer SDK which supports C++20
pushd $WORKSPACE/srcdir/MacOSX12.*.sdk
rm -rf /opt/${target}/${target}/sys-root/System
rm -rf /opt/${target}/${target}/sys-root/usr/*
cp -ra usr/* "/opt/${target}/${target}/sys-root/usr/."
cp -ra System "/opt/${target}/${target}/sys-root/."
popd
export MACOSX_DEPLOYMENT_TARGET=12.3
fi
"""

# Bash recipe for building across all platforms
script = sdk_update_script * raw"""
cd $WORKSPACE/srcdir/osrm-backend

# Use boost patch, drop once https://github.com/Project-OSRM/osrm-backend/pull/7073 is merged
atomic_patch -p1 "${WORKSPACE}/srcdir/patches/boost_1_87.patch"

# Patch CMakeLists.txt
atomic_patch -p1 "${WORKSPACE}/srcdir/patches/cmake_fixes.patch"

if [[ ${target} == *mingw* ]]; then
atomic_patch -p1 "${WORKSPACE}/srcdir/patches/mingw.patch"

# oneTBB requires at least Windows Vista/Server 2008:
# https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createsemaphoreexa
export CXXFLAGS="-D_WIN32_WINNT=0x0600"
fi

CFLAGS="-Wno-array-bounds -Wno-error=suggest-override -Wno-error=deprecated-declarations -Wno-error=stringop-overflow -Wno-error=uninitialized -Wno-error=array-bounds"
mkdir build && cd build

export AR=$HOSTAR

CMAKE_FLAGS=()
CMAKE_FLAGS+=(-DCMAKE_INSTALL_PREFIX=${prefix})
CMAKE_FLAGS+=(-DCMAKE_BUILD_TYPE=Release)
CMAKE_FLAGS+=(-DBUILD_SHARED_LIBS=ON)
CMAKE_FLAGS+=(-DENABLE_CCACHE=OFF)
CMAKE_FLAGS+=(-Wno-dev)
CMAKE_FLAGS+=(-DENABLE_MASON=OFF)
CMAKE_FLAGS+=(-DZLIB_INCLUDE_DIRS=${includedir})
CMAKE_FLAGS+=(-DCMAKE_AR=$HOSTAR)
CMAKE_FLAGS+=(-DZLIB_LIBRARY=${libdir}/libz.${dlext})
CMAKE_FLAGS+=(-DENABLE_LTO=OFF)

cmake_cxx_flags="-Wno-array-bounds -Wno-error=suggest-override -Wno-error=deprecated-declarations -Wno-error=stringop-overflow -Wno-error=uninitialized -Wno-error=array-bounds"

if [[ ${target} == *mingw* ]]; then
CMAKE_FLAGS+=(-DLUA_INCLUDE_DIR=${includedir})
CMAKE_FLAGS+=(-DLUA_LIBRARIES=${libdir}/liblua.${dlext})
CMAKE_FLAGS+=(-D__TBB_USE_FENV=0)
CMAKE_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN%.*}_clang.cmake)

cmake_cxx_flags="-U__STRICT_ANSI__ -Wno-error=-W#warnings ${cmake_cxx_flags}"
else
CMAKE_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN})
fi

CMAKE_FLAGS+=(-DCMAKE_CXX_FLAGS="${cmake_cxx_flags}")

cmake .. ${CMAKE_FLAGS[@]}
cmake --build . -j${nproc}
cmake --build . -j${nproc} --target install

cp osrm-* ${bindir}
cp libosrm* ${libdir}

cp ../profiles/*.lua ${prefix}
cp ../profiles/lib/*.lua ${prefix}/lib

install_license ../LICENSE.TXT
"""

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
# 32 bit platforms are not supported
# oneTBB_jll isn't available for Windows i686 on Yggdrasil (version 2021.5.0)
# oneTBB_jll isn't available for armv6l, armv7l
# musl builds with lots of TBB errors like 'undefined reference to `getcontext''
platforms = supported_platforms(; exclude=p -> Sys.iswindows(p) || (nbits(p) == 32))
platforms = expand_cxxstring_abis(platforms)

# The products that we will ensure are always built
products = Product[
ExecutableProduct("osrm-routed", :osrm_routed)
ExecutableProduct("osrm-partition", :osrm_partition)
ExecutableProduct("osrm-components", :osrm_components)
ExecutableProduct("osrm-contract", :osrm_contract)
ExecutableProduct("osrm-customize", :osrm_customize)
ExecutableProduct("osrm-datastore", :osrm_datastore)
ExecutableProduct("osrm-extract", :osrm_extract)
# We are not dlopening because the build images use Julia 1.7, which can't dlopen SOs built
# with GCC 12, which is required for OSRM. However, Julia 1.8+ can dlopen them (tested),
# and that is what our compat entry says, so the dlopen failure can safely be ignored.
LibraryProduct("libosrm", :libosrm, dont_dlopen=true)
FileProduct("bicycle.lua", :bicycle)
FileProduct("debug_way.lua", :debug_way)
FileProduct("test.lua", :test)
FileProduct("car.lua", :car)
FileProduct("rasterbot.lua", :rasterbot)
FileProduct("testbot.lua", :testbot)
FileProduct("debug_example.lua", :debug_example)
FileProduct("foot.lua", :foot)
FileProduct("rasterbotinterp.lua", :rasterbotinterp)
FileProduct("turnbot.lua", :turnbot)
FileProduct("lib/access.lua", :lib_access)
FileProduct("lib/maxspeed.lua", :lib_maxspeed)
FileProduct("lib/profile_debugger.lua", :lib_profile_debugger)
FileProduct("lib/set.lua", :lib_set)
FileProduct("lib/utils.lua", :lib_utils)
FileProduct("lib/destination.lua", :lib_destination)
FileProduct("lib/measure.lua", :lib_measure)
FileProduct("lib/relations.lua", :lib_relations)
FileProduct("lib/tags.lua", :lib_tags)
FileProduct("lib/way_handlers.lua", :lib_way_handlers)
FileProduct("lib/guidance.lua", :lib_guidance)
FileProduct("lib/pprint.lua", :lib_pprint)
FileProduct("lib/sequence.lua", :lib_sequence)
FileProduct("lib/traffic_signal.lua", :lib_traffic_signal)
]

# Dependencies that must be installed before this package can be built
dependencies = [
Dependency("Bzip2_jll"; compat="1.0.9")
Dependency("boost_jll"; compat="=1.87.0") # Earlier versions of boost seem uncompatible with C++20 deprecations
Dependency("Expat_jll"; compat="2.6.5")
Dependency("XML2_jll")
Dependency("oneTBB_jll"; compat="2022.0.0")
Dependency("Lua_jll"; compat="~5.4.3")
Dependency("Zlib_jll")
Dependency("Fmt_jll")
HostBuildDependency("Lua_jll")
# Dependency("libosmium_jll")
Dependency("CompilerSupportLibraries_jll"; platforms=filter(!Sys.isbsd, platforms))
]

# Build the tarballs, and possibly a `build.jl` as well.
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.8", preferred_gcc_version=v"13", clang_use_lld=false)
16 changes: 16 additions & 0 deletions O/OpenSourceRoutingMachine/bundled/patches/boost_1_87.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Source: https://github.com/Project-OSRM/osrm-backend/pull/7073
diff --git a/include/server/server.hpp b/include/server/server.hpp
index 34b8982e6..02b0dda05 100644
--- a/include/server/server.hpp
+++ b/include/server/server.hpp
@@ -53,8 +53,7 @@ class Server
const auto port_string = std::to_string(port);

boost::asio::ip::tcp::resolver resolver(io_context);
- boost::asio::ip::tcp::resolver::query query(address, port_string);
- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
+ boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve(address, port_string).begin();

acceptor.open(endpoint.protocol());
#ifdef SO_REUSEPORT

171 changes: 171 additions & 0 deletions O/OpenSourceRoutingMachine/bundled/patches/cmake_fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a8388b7db..ffdf31d6d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -147,7 +147,7 @@ configure_file(
)
file(GLOB UtilGlob src/util/*.cpp src/util/*/*.cpp)
file(GLOB ExtractorGlob src/extractor/*.cpp src/extractor/*/*.cpp)
-file(GLOB GuidanceGlob src/guidance/*.cpp src/extractor/intersection/*.cpp)
+file(GLOB GuidanceGlob src/guidance/*.cpp)
file(GLOB PartitionerGlob src/partitioner/*.cpp)
file(GLOB CustomizerGlob src/customize/*.cpp)
file(GLOB ContractorGlob src/contractor/*.cpp)
@@ -155,7 +155,7 @@ file(GLOB UpdaterGlob src/updater/*.cpp)
file(GLOB StorageGlob src/storage/*.cpp)
file(GLOB ServerGlob src/server/*.cpp src/server/**/*.cpp)
file(GLOB EngineGlob src/engine/*.cpp src/engine/**/*.cpp)
-file(GLOB ErrorcodesGlob src/osrm/errorcodes.cpp)
+file(GLOB OSRMGlob src/osrm/*.cpp)

add_library(UTIL OBJECT ${UtilGlob})
add_library(EXTRACTOR OBJECT ${ExtractorGlob})
@@ -179,14 +179,20 @@ add_executable(osrm-partition src/tools/partition.cpp)
add_executable(osrm-customize src/tools/customize.cpp)
add_executable(osrm-contract src/tools/contract.cpp)
add_executable(osrm-datastore src/tools/store.cpp $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm src/osrm/osrm.cpp $<TARGET_OBJECTS:ENGINE> $<TARGET_OBJECTS:STORAGE> $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_contract src/osrm/contractor.cpp $<TARGET_OBJECTS:CONTRACTOR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_extract src/osrm/extractor.cpp $<TARGET_OBJECTS:EXTRACTOR> $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_guidance $<TARGET_OBJECTS:GUIDANCE> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_partition src/osrm/partitioner.cpp $<TARGET_OBJECTS:PARTITIONER> $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_customize src/osrm/customizer.cpp $<TARGET_OBJECTS:CUSTOMIZER> $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_update $<TARGET_OBJECTS:UPDATER> $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
-add_library(osrm_store $<TARGET_OBJECTS:STORAGE> $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
+add_library(osrm
+ ${OSRMGlob}
+ $<TARGET_OBJECTS:ENGINE>
+ $<TARGET_OBJECTS:CONTRACTOR>
+ $<TARGET_OBJECTS:EXTRACTOR>
+ $<TARGET_OBJECTS:GUIDANCE>
+ $<TARGET_OBJECTS:PARTITIONER>
+ $<TARGET_OBJECTS:CUSTOMIZER>
+ $<TARGET_OBJECTS:UPDATER>
+ $<TARGET_OBJECTS:STORAGE>
+ $<TARGET_OBJECTS:MICROTAR>
+ $<TARGET_OBJECTS:UTIL>
+ )
+

# Explicitly set the build type to Release if no other type is specified
# on the command line. Without this, cmake defaults to an unoptimized,
@@ -478,86 +484,29 @@ set(BOOST_ENGINE_LIBRARIES
${BOOST_BASE_LIBRARIES})

# Binaries
-target_link_libraries(osrm-datastore osrm_store ${Boost_PROGRAM_OPTIONS_LIBRARY})
-target_link_libraries(osrm-extract osrm_extract ${Boost_PROGRAM_OPTIONS_LIBRARY})
-target_link_libraries(osrm-partition osrm_partition ${Boost_PROGRAM_OPTIONS_LIBRARY})
-target_link_libraries(osrm-customize osrm_customize ${Boost_PROGRAM_OPTIONS_LIBRARY})
-target_link_libraries(osrm-contract osrm_contract ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries(osrm-datastore osrm ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries(osrm-extract osrm ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries(osrm-partition osrm ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries(osrm-customize osrm ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries(osrm-contract osrm ${Boost_PROGRAM_OPTIONS_LIBRARY})
if (BUILD_ROUTED)
target_link_libraries(osrm-routed osrm ${Boost_PROGRAM_OPTIONS_LIBRARY} ${OPTIONAL_SOCKET_LIBS} ${ZLIB_LIBRARY})
endif()

-set(EXTRACTOR_LIBRARIES
- ${BZIP2_LIBRARIES}
- ${BOOST_BASE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${EXPAT_LIBRARIES}
- ${LUA_LIBRARIES}
- ${OSMIUM_LIBRARIES}
- ${TBB_LIBRARIES}
- ${ZLIB_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES})
-set(GUIDANCE_LIBRARIES
- ${BOOST_BASE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${LUA_LIBRARIES}
- ${TBB_LIBRARIES}
- ${MAYBE_COVERAGE_LIBRARIES})
-set(PARTITIONER_LIBRARIES
- ${BOOST_ENGINE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${TBB_LIBRARIES}
- ${MAYBE_RT_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES}
- ${ZLIB_LIBRARY})
-set(CUSTOMIZER_LIBRARIES
- ${BOOST_ENGINE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${TBB_LIBRARIES}
- ${MAYBE_RT_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES})
-set(UPDATER_LIBRARIES
- ${BOOST_BASE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${TBB_LIBRARIES}
- ${MAYBE_RT_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES}
- ${ZLIB_LIBRARY})
-set(CONTRACTOR_LIBRARIES
- ${BOOST_BASE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${LUA_LIBRARIES}
- ${TBB_LIBRARIES}
- ${MAYBE_RT_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES})
-set(ENGINE_LIBRARIES
- ${BOOST_ENGINE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${TBB_LIBRARIES}
- ${MAYBE_RT_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES}
- ${ZLIB_LIBRARY})
-set(STORAGE_LIBRARIES
- ${BOOST_BASE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${TBB_LIBRARIES}
- ${MAYBE_RT_LIBRARY}
- ${MAYBE_COVERAGE_LIBRARIES})
-set(UTIL_LIBRARIES
- ${BOOST_BASE_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${TBB_LIBRARIES}
- ${MAYBE_COVERAGE_LIBRARIES}
- ${ZLIB_LIBRARY})
-
# Libraries
-target_link_libraries(osrm ${ENGINE_LIBRARIES})
-target_link_libraries(osrm_update ${UPDATER_LIBRARIES})
-target_link_libraries(osrm_contract ${CONTRACTOR_LIBRARIES} osrm_update osrm_store)
-target_link_libraries(osrm_extract osrm_guidance ${EXTRACTOR_LIBRARIES})
-target_link_libraries(osrm_partition ${PARTITIONER_LIBRARIES})
-target_link_libraries(osrm_customize ${CUSTOMIZER_LIBRARIES} osrm_update osrm_store)
-target_link_libraries(osrm_store ${STORAGE_LIBRARIES})
+target_link_libraries(osrm
+ ${BZIP2_LIBRARIES}
+ ${Boost_REGEX_LIBRARY}
+ ${BOOST_BASE_LIBRARIES}
+ ${BOOST_ENGINE_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${EXPAT_LIBRARIES}
+ ${LUA_LIBRARIES}
+ ${OSMIUM_LIBRARIES}
+ ${TBB_LIBRARIES}
+ ${MAYBE_RT_LIBRARY}
+ ${ZLIB_LIBRARY}
+ ${MAYBE_COVERAGE_LIBRARIES})

# BUILD_COMPONENTS
add_executable(osrm-components src/tools/components.cpp $<TARGET_OBJECTS:MICROTAR> $<TARGET_OBJECTS:UTIL>)
@@ -622,14 +571,6 @@ if (BUILD_ROUTED)
install(TARGETS osrm-routed DESTINATION bin)
endif()
install(TARGETS osrm DESTINATION lib)
-install(TARGETS osrm_extract DESTINATION lib)
-install(TARGETS osrm_partition DESTINATION lib)
-install(TARGETS osrm_customize DESTINATION lib)
-install(TARGETS osrm_update DESTINATION lib)
-install(TARGETS osrm_contract DESTINATION lib)
-install(TARGETS osrm_store DESTINATION lib)
-install(TARGETS osrm_guidance DESTINATION lib)
-

# Install profiles and support library to /usr/local/share/osrm/profiles by default
set(DefaultProfilesDir profiles)
Loading