Commit Graph

532 Commits

Author SHA1 Message Date
Torben Hørup
b120c971a0
Make osrm-routed optional (#6144)
* Make osrm-routed optional

* Updated changelog

* require boost 1.60

* Update CMakeLists.txt

* Update CHANGELOG.md

Co-authored-by: Michael Bell <michael@mjjbell.com>
2021-10-08 17:06:55 +01:00
Michael Bell
eb3bf5cfe3 Upgrade Ubuntu CI builds to use 20.04
Moves Linux CI builds to the latest Ubuntu LTS.
- Bumps the GCC matrix to versions {7,8,9,10,11}, making 9 the default
for testing non-standard builds.
- Bump Node matrix to {12,14,16,LTS,latest} now that 10 is EOL.
- Fixes to CI builds due to library changes on newer distro.
2021-09-30 22:51:12 +01:00
Michael Bell
56a427f839 Upgrade Boost to 1.70, fix inefficient connection handling
A request to osrm-routed can be assigned to a thread which
is currently busy processing another request, even when there
are other threads/cores available. This unnecessarily delays
the response, and can make requests appear to hang when
awaiting CPU intensive requests to finish.

The issue looks like a bug in Boost.Asio multithreaded
networking stack.

osrm-routed server implementation is
heavily influenced by the HTTP server 3 example in the
Boost.Asio docs. By upgrading to Boost 1.70 and updating the
server connections to match the example provided in the 1.70
release, the problem is resolved.

The diff of the changes to the Boost.Asio stack are
vast, so it's difficult to identify the exact cause. However
the implementation change is to push the strand of execution
into the socket (and timer) objects, which suggests it could
fix the type of threading issue we are observing.
2021-09-30 22:51:12 +01:00
Michael Bell
d413d0639d Fix Boost link flags in pkg-config file.
In newer versions of cmake, FindBoost uses Imported Targets for library
component variables, rather than file paths to the Boost libraries.

cmake uses these targets when linking (e.g. target_link_library) and
knows how to correctly substitute the values. However, the OSRM
pkg-config file that we generate doesn't do this, and ends up writing
the actual target symbols, hence the errors trying to link Boost::<component>.

To fix this for newer cmake versions, we create an intermediate configure step
that references the linker files for the imported targets. This is followed
by a generate step that performs the correct substitution.
See this thread for more details: https://cmake.org/pipermail/cmake/2018-December/068812.html

This is backwards compatible to the existing min cmake version (3.1).
However, building using cmake 3.1 fails with a package.json parsing error,
so this commit also bumps the min version to 3.2.
2021-09-03 23:49:32 +01:00
Michael Bell
eb0c089574 Replace Travis with Github Actions for CI builds
Replace Travis for continuous integration with Github Actions.
The Github Actions pipeline is functionally equivalent, with
all the same build permutations supported.
Whilst the Github Actions offering is broadly equivalent to
Travis, a few changes have been made as part of the migration.

- The 'core' and 'optional' Travis stages have been consolidated
into one build matrix. This is due to the current inability in
Github Actions to share build steps between jobs, so this avoids
having to duplicate the steps.
Optional stage jobs will now run in parallel with core jobs,
but they still remain optional in the sense that they don't fail
the build.

- A number of existing Github Action plugins are used to replace
functionality provided by Travis or other tools:
Node setup, caching, Codecov, publishing release artifacts.

- Linux builds are updated to build on Ubuntu 18.04.
MacOS builds are updated to run on 10.15. Similar to the
Travis Xenial upgrade attempt, some changes are required due
to underlying platform and compiler upgrades. This means some
Node 10 toolchains will no longer be supported.

Whilst there is opportunity to upgrade some dependencies and
make the CI steps more idiomatic, I've left this for future changes
and just focussed on functional replication.
2021-09-03 18:35:01 +02:00
Denis Chaplygin
2d0b2ca987
Removed STXXL support. 2020-08-20 11:54:02 +03:00
Denis Chapligin
8b40c594be
Merge pull request #5784 from OgreTransporter/bugfix-cmaketbb-5782
Bugfix TBB linking #5782
2020-08-19 12:39:00 +03:00
Denis Chapligin
b9ebe0c369
Merge pull request #5628 from wangyoucao577/feature/disable-debug-log-compile-time-control
Control release mode debug logging output by ENABLE_DEBUG_LOGGING option
2020-08-11 10:27:27 +03:00
Jay Zhang
106082f6f8 feat: add ENABLE_DEBUG_LOGGING option to control debug logging output 2020-07-29 06:00:47 +00:00
Denis Chaplygin
ae6326719a
Removed CONSTEXPR requirement for a boost, as we need at least c++14 for rest of the code. 2020-07-23 11:27:58 +03:00
Denis Chaplygin
0503a2fcd3
Appveyor build now uses dependency files hosted at Wolt. 2020-07-23 11:27:57 +03:00
Transporter
9c3eeffe2c Bugfix TBB linking #5782
The query if(WIN32 AND CMAKE_BUILD_TYPE MATCHES Debug) only works if you call CMake explicitly with the build configuration Debug. But if you generate Debug and Release all libraries are linked to the release version.
2020-07-16 19:14:48 +02:00
Julien Desgats
46ab931c64 fix: install the osrm_guidance library
In the case of a shared object compilation, the resulting binaries need
that library. It was not installed along the others, leading to failures
when running osrm-extract.

Fixes #5603
2019-11-15 10:32:27 +00:00
Denis Chaplygin
a196e67e1a Vendored flatbuffers headers should be installed with the libosrm 2019-08-26 11:08:56 +03:00
Denis Chaplygin
1a259ccca0 base_result is a part of public API now, so it needs to be installed 2019-08-26 11:08:56 +03:00
Denis Chaplygin
7ddda105a3 Added flatbuffers support to the PluginBase::Error
This changes BREAKS osrm.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
3f34c8d88c Flatbuffers library added to the list of third party libraries. 2019-08-26 11:08:56 +03:00
Daniel Patterson
a6cf2eee7e Use faster method for calculating distances.
fix cmakelist
2018-04-27 05:21:08 +02:00
Michael Krasnyk
05a5918909
Update CMakeLists.txt file 2018-04-19 22:13:06 +03:00
Patrick Niklaus
f407afa694 Move .osrm file to tar format 2018-03-26 11:02:04 +00:00
Patrick Niklaus
5d1b4ce71d Port .osrm.icd file over to tar 2018-03-26 11:02:03 +00:00
Patrick Niklaus
6d96a9a2e3 Serialize mldgr using the new tar writer 2018-03-26 11:02:03 +00:00
Patrick Niklaus
86bfe1ede1 First step towards reading/writing tar 2018-03-26 11:02:03 +00:00
Daniel Patterson
e34f2db4db Get OSRM_VERSION_* fields from package.json so we don't have to change things in two places.
No longer need to update CMakeLists.txt version field manually.
2018-03-01 12:05:00 +11:00
Mateusz Loskot
faff2c774d [msvc] Fix quoting of OSRM_PROJECT_DIR as preprocessor define
It looks MSVC still special handling, no quotoing as well as
additional quoting like add_definitions(-DFOO="\\"foo\\"")
as per https://cmake.org/pipermail/cmake/2007-June/014611.html
does not seem to handle CMake variables correctly.

This Visual C++ specific fix is based on this solution
https://cmake.org/pipermail/cmake/2006-September/011292.html
2018-02-14 13:54:54 +01:00
Patrick Niklaus
1aed13500d Remove GCC 4.9 support. Minimum is now 5.0. 2018-02-09 17:51:58 +01:00
Patrick Niklaus
f6db8ff3b0 Disabel missing initialization warning on GCC 4.9 2018-02-09 17:51:58 +01:00
Patrick Niklaus
bee3bdb576 Don't throw errors on -Wmaybe-uninitialized because of false-positives 2018-02-09 17:51:58 +01:00
Patrick Niklaus
f65958fc14 Disable error on -unused-local-typedef for clang since it has false positives 2018-02-09 17:51:58 +01:00
Patrick Niklaus
f48dd665ad Fix error due to GLIBC workaround warning 2018-02-09 17:51:58 +01:00
Patrick Niklaus
fa553659de Turn all warnings to errors for GCC and Clang 2018-02-09 17:51:58 +01:00
Patrick Niklaus
19651c3d91 Remove unused shapefile/gdal dependencies 2018-02-06 11:51:33 +01:00
Patrick Niklaus
71cfb03738 Remove broken check-conditionals tool 2018-02-06 11:51:33 +01:00
Michael Krasnyk
9e93f198ae Add CRC checksums to EBG and turns data 2018-02-02 11:33:38 -05:00
Michael Krasnyk
10de243556 Move guidance turn generation out of EBGF 2018-02-02 11:33:38 -05:00
Michael Krasnyk
988b6e3311 Split intersection analysis and guidance code
Intersection analysis occupy in osrm::extractor::intersection namespace
and guidance code osrm::guidance
2018-02-02 11:33:38 -05:00
Michael Krasnyk
36877e4de5 Move guidance pre-processing code into GUIDANCE library 2018-02-02 11:33:38 -05:00
Mateusz Loskot
c6d12e064c Add basic facades for Customizer and Partitioner run methods 2018-02-02 15:52:30 +01:00
Mateusz Loskot
8114104a43 Rename namespace partition to partitioner
Rename module partition to partitioner.
This cultivates naming used in existing modules like extractor,
customizer, etc. - noun vs verb (word partition is both though).
2018-02-02 11:07:18 +01:00
Michael Krasnyk
a9d94d35a2 [skip ci] Bump OSRM version to 5.16 2018-01-22 17:24:07 +01:00
Daniel Patterson
02a2d25a3f
Reset versions/changelog for next release - 5.14 work happens on the 5.14 release branch. 2017-11-22 12:37:34 -08:00
Daniel Patterson
ac7705e9a0 Ensure .pc installation to the same heirarchy as the actual libraries (usually /usr/local/lib) 2017-11-01 19:40:31 +00:00
Patrick Niklaus
a68db86dc8 [skip ci] Bump OSRM version to 5.14 2017-10-31 16:17:07 +00:00
Michael Krasnyk
e781e06a17 Use -O0 optimization level for coverage builds 2017-10-12 14:27:55 +01:00
Daniel Patterson
7d9b17fd41 Build against libstdc++-4.9 and supress one libstdc++ symbol so that we can run inside
old environments (CentOS, AWS Linux, AWS Lambda, etc)
2017-10-05 17:13:40 +01:00
Michael Krasnyk
fc3f96abcb Use pkg-config to find lua in non-standard locations 2017-09-26 09:03:57 +02:00
Michael Krasnyk
f4f65f62ee Remove Lua 5.1 support 2017-09-14 20:00:05 +02:00
Mateusz Loskot
dbcf4cab16 Replace GCC/clang option -std=C++1y with -std=C++14 2017-09-13 13:01:23 +02:00
Lev Dragunov
6951eadc18 CI fix 2017-08-31 11:11:05 +02:00
Daniel Patterson
bdee13dea8 We should be using the module-relative @loader_path. @executable_path is relative to the main node process binary 2017-08-25 15:30:49 -07:00
Patrick Niklaus
303a8fae32 Refactor cell weights and durations to own file and allow for multiple metrics 2017-08-21 13:00:12 +02:00
Daniel Patterson
f4dc93ae66
[skip ci] Reset master versions for next release 2017-08-17 15:06:48 -07:00
Mateusz Loskot
d796c66990 Prefer implicit expansion of CMake variables
Unify CMAKE_CXX_COMPILER_ID tests without quoting/bracketing
the variable to use implicit expansion.
Replace STREQUAL with MATCHES to avoid policy warning about
attempt to expand "MSVC" variable, where it literal is intended.
2017-08-10 12:26:48 +02:00
Mateusz Loskot
71e0c7a3cf Add define WIN32_LEAN_AND_MEAN for Visual C++
Helps to avoid compiler C2011 errors due to WinSock types redefinition
from dual #include of winsock.h and winsock2.h
2017-08-08 15:50:47 +02:00
Daniel J. Hofmann
46f75c3d92 [skip ci] Bumps version to 5.11 2017-08-08 11:37:20 +02:00
Michael Krasnyk
95c7832c3e Don't use STXXL library by default 2017-07-24 13:05:22 +02:00
Michael Krasnyk
336ec4741c Update TBB mason version to 2017_U7 2017-07-20 13:49:18 +00:00
Pepijn Schoen
0b5c7a97a7 Addressed comments 2017-07-20 12:01:05 +02:00
Pepijn Schoen
d9e8caf369 Use GetPath with file names over accessing member variables 2017-07-20 12:01:05 +02:00
Pepijn Schoen
1b31099f73 superclass extractor_config with io_config 2017-07-20 12:01:05 +02:00
Pepijn Schoen
fe00a8a0ca superclass storage_config with io_config 2017-07-20 12:01:05 +02:00
Mateusz Loskot
cfa2a63323 Set OSRM_BUILD_DIR based on CMake build dir
For typical local workflow, CMake can auto-configure most
of the environment, for convenience.
2017-07-19 12:57:04 +00:00
Daniel J. Hofmann
7d63301039 Only enables -fopenmp in case the user wants stxxl 2017-07-17 19:19:10 +02:00
Daniel Patterson
ee8ffcf57b Include osrm-customize when doing 'make install' 2017-07-12 22:11:42 +00:00
Patrick Niklaus
8508834e50 Bump version to 5.10 2017-07-11 08:25:57 +00:00
Michael Krasnyk
924a8a7e38 Remove STXXL from OSM parsing and enable in CMake by default 2017-07-11 08:23:26 +00:00
Michael Krasnyk
a3257ff651 Added STXXL configuration 2017-07-11 08:23:26 +00:00
Patrick Niklaus
6d78c11fd2 [skip ci] Bump OSRM version to 5.9 2017-07-03 22:44:56 +00:00
Daniel Patterson
3d77714c36 Make most command-line tools return useful error codes on well-known exceptions. 2017-06-08 15:03:24 +00:00
karenzshea
f268163ea0 remove shapefile dependency from build 2017-06-02 10:00:07 +02:00
karenzshea
6f41e3faf1 fixes to get compiling 2017-06-02 10:00:07 +02:00
karenzshea
aed2c0124a rapidjson steppin in 2017-06-02 10:00:07 +02:00
FILLAU Jean-Maxime
f65299d665 Rename side API
Side -> Approach
 - DEFAULT -> CURB
 - BOTH -> UNRESTRICTED
 - remove OPPOSITE param

Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
8e70c87e64 New "sides" setting in base parameters for phantom nodes.
- Adding sides parameter into base parameters, it can take the values SIDE, OPPOSITE or DEFAULT.
 - Adding url parser for "sides" parameter, url values are "s" for SIDE, "o" for OPPOSITE and "d" for DEFAULT, example : "sides=s;s".
 - Checking parameters, if "sides" parameter is used, the number of parameter is the same as number of location.
 - Create a phantom to start at side driving or Opposite side driving.

Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
Karen Shea
799a677e7a Conditional turn restriction support (#3841)
* optionally include condition and via node coords in InputRestrictionContainer

* only write conditionals to disk, custom serialization for restrictions

* conditional turn lookup, reuse timezone validation from
extract-conditionals

* adapt updater to use coordinates/osm ids, remove internal to external map

* add utc time now parameter to contraction

* only compile timezone code where libshp is found, adapt test running

* slight refactor, more tests

* catch invalid via nodes in restriction parsing, set default cucumber
origin to guinée

* add another run to test mld routed paths

* cosmetic review changes

* Simplify Timezoner for windows build

* Split declaration and parsing parts for opening hours

* adjust conditional tests to run without shapefiles

* always include parse conditionals option

* Adjust travis timeout

* Added dummy TZ shapefile with test timezone polygons

* [skip ci] update changelog
2017-05-11 12:13:52 +02:00
Patrick Niklaus
c446b017ef Switch from macro based StrongTypedef to template version 2017-04-24 16:04:41 +00:00
Patrick Niklaus
5bbc675c6b Bump osrm version to 5.8 2017-04-13 21:19:09 +00:00
Daniel J. Hofmann
70b3962c35 NodeJS Binding Tests
Does not run the nodejs tests in sanitized builds. We'd have to

    export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libasan.so.2'

the asan lib. But it seems like our Clang from mason does not like the
system's libasan. Also we'd need a suppression file for v8 and node.
2017-04-04 16:57:44 +00:00
Daniel J. Hofmann
2351b5a084 Merges node-osrm into repository
Build with

    cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=On -DENABLE_MASON=On
2017-03-21 20:10:39 +00:00
Daniel J. Hofmann
3cae315a76 Silences Clang warnings about unused arguments 2017-03-14 00:44:51 +00:00
Patrick Niklaus
907f933a54 Add update functionality to osrm-customize
All speed file flags are compatible with osrm-contract.
2017-03-13 23:04:45 +00:00
Patrick Niklaus
20e028c47b Split updater code from contract into own module 2017-03-10 14:43:02 +00:00
Daniel J. Hofmann
e43a8ca528 Changes version to 5.7.0 for master already 2017-03-09 16:11:43 +00:00
Mateusz Łoskot
e13ba8ba11 Add basic facades for Extractor and Contractor run methods.
Based on idea suggested in comments to #3776, simplifies
use of extractor and contractor as libraries.
2017-03-08 22:48:03 +00:00
Michael Krasnyk
3f6ae245f6 Added osrm-customizer tool 2017-03-08 16:08:00 +00:00
Mateusz Łoskot
aa1c4eb262 Allow build with Osmium from external location.
If OSMIUM_INCLUDE_DIR is specified in CMake command line,
use Osmium from that location, instead of /third_party.
2017-03-08 10:27:09 +00:00
Mateusz Łoskot
a725fb4655 Add MSVC flag /bigobj to CMAKE_CXX_FLAGS
Fix fatal error C1128: number of sections exceeded object file format limit
while compiling src/extractor/scripting_environment_lua.cpp
2017-03-07 19:28:53 +01:00
Michael Krasnyk
65669f23a1 Allow arguments list in add_dependency_includes 2017-03-06 16:16:17 +00:00
Michael Krasnyk
172b1ff9d1 Enable building osrm-extract-conditionals on travis 2017-03-06 16:16:17 +00:00
Daniel J. Hofmann
4fa3a5c362 Disables LTO for mason+gcc
See https://github.com/Project-OSRM/node-osrm/pull/301
2017-03-01 16:47:46 +00:00
Daniel J. Hofmann
075f69acc2 Installs osrm-partition tool and library 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
739ad73ae9 Be -fpermissive with gcc49: required for tbb::parallel_do_feeder compilation bug 2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
d56db500d3 Initial Skeleton for Recursive Bisection via Inertial Flow 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
b2b5e2bb4d Updates TBB to latest stable version for 5.6 release 2017-02-20 13:55:04 +00:00
Patrick Niklaus
73b1a46d15 Change stxxl version to package with mason.ini 2017-02-16 16:08:07 +00:00
Patrick Niklaus
7ecf3410bf Bundle mason.cmake and mason.sh 2017-02-16 16:08:07 +00:00
Daniel J. Hofmann
2a5ebf84bc Installs profiles to /usr/local/share/osrm/profiles by default, resolves #3670 2017-02-08 12:02:20 +01:00
Michael Krasnyk
337ecefa45 Added osrm-extract-conditionals tool 2017-01-24 10:31:59 +01:00
Daniel J. Hofmann
5c93609142 Updates Boost to 1.63 for Mason Build 2017-01-23 17:59:29 +01:00
Daniel J. Hofmann
a5d0707dd0 Removes the -DBUILD_COMPONENTS option; on by default now.
Quick follow up for https://github.com/Project-OSRM/osrm-backend/pull/3570:
there is no reason not to build the `osrm-components` tool by defualt.

Backwards compatible. Users still specifying the option will see:

> Manually-specified variables were not used by the project:
>   BUILD_COMPONENTS
2017-01-23 12:15:03 +01:00