@@ -22,20 +22,17 @@ if (NOT WIN32 AND NOT DEFINED ENV{OSRM_BUILD_DIR})
22
22
set (ENV{OSRM_BUILD_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
23
23
endif ()
24
24
25
- option (ENABLE_CONAN "Use conan for dependencies" OFF )
26
- option (ENABLE_CCACHE "Speed up incremental rebuilds via ccache" ON )
27
- option (BUILD_TOOLS "Build OSRM tools" OFF )
28
25
option (BUILD_PACKAGE "Build OSRM package" OFF )
29
- option (BUILD_ROUTED "Build osrm-routed HTTP server" ON )
30
26
option (ENABLE_ASSERTIONS "Use assertions in release mode" OFF )
31
- option (ENABLE_DEBUG_LOGGING "Use debug logging in release mode" OFF )
27
+ option (ENABLE_CCACHE "Speed up incremental rebuilds via ccache" ON )
28
+ option (ENABLE_CLANG_TIDY "Enables clang-tidy checks" OFF )
29
+ option (ENABLE_CONAN "Use conan for dependencies" OFF )
32
30
option (ENABLE_COVERAGE "Build with coverage instrumentalisation" OFF )
33
- option (ENABLE_SANITIZER "Use memory sanitizer for Debug build" OFF )
34
- option (ENABLE_LTO "Use Link Time Optimisation" ON )
31
+ option (ENABLE_DEBUG_LOGGING "Use debug logging in release mode" OFF )
35
32
option (ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF )
33
+ option (ENABLE_LTO "Use Link Time Optimisation" ON )
36
34
option (ENABLE_NODE_BINDINGS "Build NodeJs bindings" OFF )
37
- option (ENABLE_CLANG_TIDY "Enables clang-tidy checks" OFF )
38
-
35
+ option (ENABLE_SANITIZER "Use memory sanitizer for Debug build" OFF )
39
36
40
37
if (ENABLE_CONAN )
41
38
message (STATUS "Installing Conan packages. It may take a while..." )
@@ -72,19 +69,8 @@ endif()
72
69
73
70
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /cmake" )
74
71
75
- # be compatible with version handling before cmake 3.x
76
- if (POLICY CMP0057 )
77
- cmake_policy (SET CMP0057 NEW )
78
- endif ()
79
- if (POLICY CMP0074 )
80
- cmake_policy (SET CMP0074 NEW )
81
- endif ()
82
- if (POLICY CMP0167 )
83
- cmake_policy (SET CMP0167 NEW )
84
- endif ()
85
72
project (OSRM C CXX )
86
73
87
-
88
74
if (ENABLE_LTO AND (CMAKE_BUILD_TYPE MATCHES Release OR CMAKE_BUILD_TYPE MATCHES MinRelSize OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo ))
89
75
include (CheckIPOSupported )
90
76
check_ipo_supported (RESULT LTO_SUPPORTED OUTPUT error )
@@ -112,14 +98,14 @@ sbeParseJson(packagejson packagejsonraw)
112
98
# This regex is not strict enough, but the correct one is too complicated for cmake matching.
113
99
# https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
114
100
if (packagejson.version MATCHES "^([0-9]+)\. ([0-9]+)\. ([0-9]+)([-+][0-9a-zA-Z.-]+)?$" )
115
- set (OSRM_VERSION_MAJOR ${CMAKE_MATCH_1} )
116
- set (OSRM_VERSION_MINOR ${CMAKE_MATCH_2} )
117
- set (OSRM_VERSION_PATCH ${CMAKE_MATCH_3} )
118
- set (OSRM_VERSION_PRERELEASE_BUILD ${CMAKE_MATCH_4} )
101
+ set (OSRM_VERSION_MAJOR ${CMAKE_MATCH_1} )
102
+ set (OSRM_VERSION_MINOR ${CMAKE_MATCH_2} )
103
+ set (OSRM_VERSION_PATCH ${CMAKE_MATCH_3} )
104
+ set (OSRM_VERSION_PRERELEASE_BUILD ${CMAKE_MATCH_4} )
119
105
120
- set (OSRM_VERSION packagejson.version )
106
+ set (OSRM_VERSION packagejson.version )
121
107
else ()
122
- message (FATAL_ERROR "Version from package.json cannot be parsed, expected semver compatible label, but found ${packagejson.version}" )
108
+ message (FATAL_ERROR "Version from package.json cannot be parsed, expected semver compatible label, but found ${packagejson.version}" )
123
109
endif ()
124
110
125
111
if (MSVC )
@@ -151,12 +137,6 @@ include(CheckCXXCompilerFlag)
151
137
include (FindPackageHandleStandardArgs )
152
138
include (GNUInstallDirs )
153
139
154
- if (CMAKE_SIZEOF_VOID_P EQUAL 8 )
155
- message (STATUS "Building on a 64 bit system" )
156
- else ()
157
- message (FATAL_ERROR "Building on a 32 bit system is not supported" )
158
- endif ()
159
-
160
140
include_directories (BEFORE ${CMAKE_CURRENT_BINARY_DIR} /include/ )
161
141
include_directories (BEFORE ${CMAKE_CURRENT_SOURCE_DIR} /include/ )
162
142
include_directories (SYSTEM ${CMAKE_CURRENT_SOURCE_DIR} /generated/include/ )
@@ -178,7 +158,6 @@ file(GLOB UpdaterGlob src/updater/*.cpp)
178
158
file (GLOB StorageGlob src/storage/*.cpp )
179
159
file (GLOB ServerGlob src/server/*.cpp src/server/**/*.cpp )
180
160
file (GLOB EngineGlob src/engine/*.cpp src/engine/**/*.cpp )
181
- file (GLOB ErrorcodesGlob src/osrm/errorcodes.cpp )
182
161
183
162
add_library (UTIL OBJECT ${UtilGlob} )
184
163
add_library (EXTRACTOR OBJECT ${ExtractorGlob} )
@@ -189,14 +168,11 @@ add_library(CONTRACTOR OBJECT ${ContractorGlob})
189
168
add_library (UPDATER OBJECT ${UpdaterGlob} )
190
169
add_library (STORAGE OBJECT ${StorageGlob} )
191
170
add_library (ENGINE OBJECT ${EngineGlob} )
192
-
193
- if (BUILD_ROUTED )
194
- add_library (SERVER OBJECT ${ServerGlob} )
195
- add_executable (osrm-routed src/tools/routed.cpp $< TARGET_OBJECTS:SERVER> $< TARGET_OBJECTS:UTIL> )
196
- endif ()
171
+ add_library (SERVER OBJECT ${ServerGlob} )
197
172
198
173
set_target_properties (UTIL PROPERTIES LINKER_LANGUAGE CXX )
199
174
175
+ add_executable (osrm-routed src/tools/routed.cpp $< TARGET_OBJECTS:SERVER> $< TARGET_OBJECTS:UTIL> )
200
176
add_executable (osrm-extract src/tools/extract.cpp )
201
177
add_executable (osrm-partition src/tools/partition.cpp )
202
178
add_executable (osrm-customize src/tools/customize.cpp )
@@ -458,9 +434,7 @@ target_link_libraries(osrm-extract osrm_extract ${Boost_PROGRAM_OPTIONS_LIBRARY}
458
434
target_link_libraries (osrm-partition osrm_partition ${Boost_PROGRAM_OPTIONS_LIBRARY} )
459
435
target_link_libraries (osrm-customize osrm_customize ${Boost_PROGRAM_OPTIONS_LIBRARY} )
460
436
target_link_libraries (osrm-contract osrm_contract ${Boost_PROGRAM_OPTIONS_LIBRARY} )
461
- if (BUILD_ROUTED )
462
- target_link_libraries (osrm-routed osrm ${Boost_PROGRAM_OPTIONS_LIBRARY} ${OPTIONAL_SOCKET_LIBS} ${ZLIB_LIBRARY} )
463
- endif ()
437
+ target_link_libraries (osrm-routed osrm ${Boost_PROGRAM_OPTIONS_LIBRARY} ${OPTIONAL_SOCKET_LIBS} ${ZLIB_LIBRARY} )
464
438
465
439
set (EXTRACTOR_LIBRARIES
466
440
${BZIP2_LIBRARIES}
@@ -534,18 +508,13 @@ target_link_libraries(osrm_partition ${PARTITIONER_LIBRARIES})
534
508
target_link_libraries (osrm_customize ${CUSTOMIZER_LIBRARIES} osrm_update osrm_store )
535
509
target_link_libraries (osrm_store ${STORAGE_LIBRARIES} )
536
510
537
- # BUILD_COMPONENTS
538
511
add_executable (osrm-components src/tools/components.cpp $< TARGET_OBJECTS:MICROTAR> $< TARGET_OBJECTS:UTIL> )
539
512
target_link_libraries (osrm-components ${TBB_LIBRARIES} ${BOOST_BASE_LIBRARIES} ${UTIL_LIBRARIES} )
540
513
install (TARGETS osrm-components DESTINATION bin )
541
514
542
- if (BUILD_TOOLS )
543
- message (STATUS "Activating OSRM internal tools" )
544
- add_executable (osrm-io-benchmark src/tools/io-benchmark.cpp $< TARGET_OBJECTS:UTIL> )
545
- target_link_libraries (osrm-io-benchmark ${BOOST_BASE_LIBRARIES} ${TBB_LIBRARIES} )
546
-
547
- install (TARGETS osrm-io-benchmark DESTINATION bin )
548
- endif ()
515
+ add_executable (osrm-io-benchmark src/tools/io-benchmark.cpp $< TARGET_OBJECTS:UTIL> )
516
+ target_link_libraries (osrm-io-benchmark ${BOOST_BASE_LIBRARIES} ${TBB_LIBRARIES} )
517
+ install (TARGETS osrm-io-benchmark DESTINATION bin )
549
518
550
519
if (ENABLE_ASSERTIONS )
551
520
message (STATUS "Enabling assertions" )
@@ -564,47 +533,14 @@ set_property(TARGET osrm-extract PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
564
533
set_property (TARGET osrm-partition PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE )
565
534
set_property (TARGET osrm-contract PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE )
566
535
set_property (TARGET osrm-datastore PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE )
567
- if (BUILD_ROUTED )
568
- set_property (TARGET osrm-routed PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE )
569
- endif ()
536
+ set_property (TARGET osrm-routed PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE )
570
537
571
- file (GLOB FlatbuffersGlob third_party/flatbuffers/include/flatbuffers/*.h )
572
- file (GLOB LibraryGlob include /osrm/*.hpp )
573
- file (GLOB ParametersGlob include /engine/api/*_parameters.hpp )
574
- set (ApiHeader include /engine/api/base_result.hpp )
575
- set (EngineHeader include /engine/status.hpp include /engine/engine_config.hpp include /engine/hint.hpp include /engine/bearing.hpp include /engine/approach.hpp include /engine/phantom_node.hpp )
576
- set (UtilHeader include /util/coordinate.hpp include /util/json_container.hpp include /util/typedefs.hpp include /util/alias.hpp include /util/exception.hpp include /util/bearing.hpp )
577
- set (ExtractorHeader include /extractor/extractor.hpp include /storage/io_config.hpp include /extractor/extractor_config.hpp include /extractor/travel_mode.hpp )
578
- set (PartitionerHeader include /partitioner/partitioner.hpp include /partitioner/partitioner_config.hpp )
579
- set (ContractorHeader include /contractor/contractor.hpp include /contractor/contractor_config.hpp )
580
- set (StorageHeader include /storage/storage.hpp include /storage/io_config.hpp include /storage/storage_config.hpp )
581
- install (FILES ${EngineHeader} DESTINATION include /osrm/engine )
582
- install (FILES ${UtilHeader} DESTINATION include /osrm/util )
583
- install (FILES ${StorageHeader} DESTINATION include /osrm/storage )
584
- install (FILES ${ExtractorHeader} DESTINATION include /osrm/extractor )
585
- install (FILES ${PartitionerHeader} DESTINATION include /osrm/partitioner )
586
- install (FILES ${ContractorHeader} DESTINATION include /osrm/contractor )
587
- install (FILES ${LibraryGlob} DESTINATION include /osrm )
588
- install (FILES ${ParametersGlob} DESTINATION include /osrm/engine/api )
589
- install (FILES ${ApiHeader} DESTINATION include /osrm/engine/api )
590
- install (FILES ${FlatbuffersGlob} DESTINATION include /flatbuffers )
591
538
install (TARGETS osrm-extract DESTINATION bin )
592
539
install (TARGETS osrm-partition DESTINATION bin )
593
540
install (TARGETS osrm-customize DESTINATION bin )
594
541
install (TARGETS osrm-contract DESTINATION bin )
595
542
install (TARGETS osrm-datastore DESTINATION bin )
596
- if (BUILD_ROUTED )
597
- install (TARGETS osrm-routed DESTINATION bin )
598
- endif ()
599
- install (TARGETS osrm DESTINATION lib )
600
- install (TARGETS osrm_extract DESTINATION lib )
601
- install (TARGETS osrm_partition DESTINATION lib )
602
- install (TARGETS osrm_customize DESTINATION lib )
603
- install (TARGETS osrm_update DESTINATION lib )
604
- install (TARGETS osrm_contract DESTINATION lib )
605
- install (TARGETS osrm_store DESTINATION lib )
606
- install (TARGETS osrm_guidance DESTINATION lib )
607
-
543
+ install (TARGETS osrm-routed DESTINATION bin )
608
544
609
545
# Install profiles and support library to /usr/local/share/osrm/profiles by default
610
546
set (DefaultProfilesDir profiles )
@@ -614,9 +550,6 @@ install(DIRECTORY ${DefaultProfilesDir} DESTINATION share/osrm)
614
550
set (DefaultProfilesDir data )
615
551
install (DIRECTORY ${DefaultProfilesDir} DESTINATION share/osrm )
616
552
617
- # Setup exporting variables for pkgconfig and subproject
618
- #
619
-
620
553
if (BUILD_PACKAGE )
621
554
include (CPackConfig )
622
555
include (CPack )
@@ -694,7 +627,6 @@ if (ENABLE_NODE_BINDINGS)
694
627
add_subdirectory (src/nodejs )
695
628
endif ()
696
629
697
-
698
630
if (ENABLE_FUZZING )
699
631
# Requires libosrm being built with sanitizers; make configurable and default to ubsan
700
632
set (FUZZ_SANITIZER "undefined" CACHE STRING "Sanitizer to be used for Fuzz testing" )
@@ -728,4 +660,3 @@ foreach(header ${headers_to_check})
728
660
endforeach ()
729
661
add_library (check-headers STATIC EXCLUDE_FROM_ALL ${sources} )
730
662
set_target_properties (check-headers PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${check_headers_dir} )
731
-
0 commit comments