Commit Graph

437 Commits

Author SHA1 Message Date
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
Daniel J. Hofmann
f2c3b9859e Rewrites the osrm-components tool to dump GeoJSON, resolves #2176 #1738 #1602
http://bl.ocks.org/d/9d6265b064c0f29a71503e0f6527769d
2017-01-20 17:50:06 +01:00
Michael Krasnyk
a48cf58468 Move IPC tools functionality into osrm-datastore 2017-01-20 12:40:37 +01:00
Michael Krasnyk
75e0b5a5c4 Fix Lua static library linking 2017-01-19 17:06:00 +01:00
Mathias Gug
9fa7e6c74f Add BUILD_PACKAGE option. 2017-01-11 03:09:04 +01:00
Mathias Gug
84b8d3cfb9 Support rpm packages. 2017-01-11 03:09:04 +01:00
Daniel Patterson
f7e8581a1b Replace fingerprint with semver-based scheme. (#3467) 2017-01-06 13:45:08 -08:00
Daniel J. Hofmann
c01ea2ea3e Disables link-time optimization unless -DENABLE_LTO=ON is passed.
This disables the `-flto` LTO flag by default since we're seeing
segfaults in compiler lto plugins, binutils and linker errors again and
again for various clang / gcc / binutils combinations.

Pass `-DNEBALE_LTO` to `cmake` in order to re-enable LTO.

LTO situation in short:
- LTO does not work at all for gcc<4.9
- With gcc>=4.9 the "slim" LTO format is getting used dumping IR
- Older binutils need LTO plugins which know how to read this IR
- Recent binutils handle this format all by themselves
- LLVM is more or less the same with some Clang versions segfaulting

If you need the performance benefit of LTO, make sure your compiler and
binutils are up to date and see for yourself if LTO builds work for you.

References:
- https://gcc.gnu.org/wiki/LinkTimeOptimizationFAQ
- https://github.com/Project-OSRM/osrm-backend/pull/3481#issuecomment-270618997
- https://github.com/Project-OSRM/osrm-backend/issues/3501
- https://github.com/Project-OSRM/osrm-backend/issues/3441

(and a ton of other LTO tickets if you search for them)
2017-01-06 16:49:49 +01:00
Michael Krasnyk
f429e08851 Enforce Boost>=1.62 for MSVC
Reference:
https://github.com/Project-OSRM/osrm-backend/issues/3088#issuecomment-256485167
2016-12-15 12:47:50 +01:00
Daniel J. Hofmann
de062d4ca3 Explain Workaround for Broken Setups to Users 2016-12-15 12:47:50 +01:00
Daniel J. Hofmann
d83ab9d905 Enforces Boost>=1.54 requirement with CMake 2016-12-15 12:47:50 +01:00
Daniel J. Hofmann
4618b502ac Enforces GCC>=4.9 and Clang>=3.4 requirement with CMake 2016-12-15 12:47:50 +01:00
Michael Krasnyk
84b618ed1a Add headers consistency check 2016-12-15 10:58:17 +01:00
karenzshea
d5904d5756 increase template depth on clang and gcc builds 2016-12-15 10:55:16 +01:00
Daniel J. Hofmann
0f59b78c02 Rewrite lua bindings using sol interface 2016-12-15 10:55:16 +01:00
Daniel Patterson
3dfbf42e61 Don't mark all lanes as designated when there are blank lane specifiers in the tag. 2016-12-15 10:55:16 +01:00
Daniel Patterson
468d8c0031 Refactor logging, improve error handling workflow, clang-format. (#3385) 2016-12-06 12:30:46 -08:00
Daniel Patterson
928a6f0c7d Variant got re-packaged, need to update search paths. (#3392) 2016-12-01 16:59:29 -08:00
Patrick Niklaus
20c8ac0272
Bump osrm version to 5.5 2016-12-01 22:12:28 +00:00
Patrick Niklaus
c99c8bccbc Make the binutil detection work the same for clang and gcc
This uses the cmake internal find_program that will utilize the PATH at
configuration time. This way we don't need to pass CXXFLAGS to clang.
2016-12-01 21:55:17 +01:00
Patrick Niklaus
735191255d No need to set ccache explicitly if its in the path 2016-12-01 21:55:17 +01:00
Dane Springmeyer
43566bfd14 support -flto with clang++ 2016-12-01 21:55:17 +01:00
Patrick Niklaus
4489c8dfc2
Expose LibOSRM find_package style variable to work as subproject 2016-11-29 15:38:51 +00:00
Patrick Niklaus
ee63e39ff5
Add $ORIGIN and @executable_path to RPATH 2016-11-29 15:37:11 +00:00
Patrick Niklaus
dd811539a3 Remove overriding c++ compiler from cmake on mason build 2016-11-19 17:02:31 +01:00
Patrick Niklaus
a764fd1f29 Don't expose all OSRM flags only the ones needed by external code 2016-11-19 17:02:31 +01:00
Dane Springmeyer
fa1a0a1325 Ensure pkg-config reports OSRM_LIB_LINKER_FLAGS 2016-11-12 14:35:32 +01:00
Patrick Niklaus
12ded539aa Merge pull request #3235 from Project-OSRM/mason-improvements
Mason improvements
2016-11-10 16:58:18 +01:00
Michael Krasnyk
2501882adb Remove duplicated linking of boost and tbb libraries 2016-11-09 12:44:49 +01:00
Dane Springmeyer
b8898ef410 mason improvements 2016-11-08 15:29:49 -08:00
Michael Krasnyk
9d24a4422a FindOsmium invoke is required for MSVC build dependencies
The commit is aprtial revert of
87d09f7 | * make adjustments based on PR review from @themarex
because osmium requires ws2_32
2016-11-02 18:40:17 +00:00
Dane Springmeyer
9435254661 Merge pull request #3119 from Project-OSRM/masonize
Masonize
2016-10-28 13:39:37 -07:00
Michael Krasnyk
b5c77de923 Fix msvc linking of boost libraries 2016-10-28 12:42:36 -07:00
Dane Springmeyer
6067fdf27f tell mason.cmake where the mason command is 2016-10-28 12:34:34 -07:00
Dane Springmeyer
87d09f78e6 make adjustments based on PR review from @themarex 2016-10-28 12:18:13 -07:00
Dane Springmeyer
83b7d75121 Add support for building against mason-provided deps 2016-10-27 23:26:33 -07:00
Dane Springmeyer
4598599f52 # This is a combination of 4 commits.
# The first commit's message is:
Add support for building against mason-provided deps

# This is the 2nd commit message:

back to just one travis job: linux/release

# This is the 3rd commit message:

remove pkg-config debugging [skip ci]

# This is the 4th commit message:

use clang++ 3.8.1 for mason builds since 3.8 is what we have been using
2016-10-27 23:26:33 -07:00
Daniel Patterson
da77edfc83 Explicitly set minimum OSX version, and detect SDK path.
This fixes situations where XCode is installed with a newer SDK than the current OS. (#3198)
2016-10-27 16:29:27 -06:00
Dane Springmeyer
293856981f add -l to rt and gcov 2016-10-24 17:09:03 -07:00
Dane Springmeyer
502d9e10c2 cmake fixes:
- Builds up ENGINE_LIBRARY_LISTING correctly to pass to pkg-config
    - Previous behavior had major flaw and would result in paths in libosrm.pc like: "-L-L"
      when the data was "-L/path -lfoo" or just "-lpthread" with no -L/path. It only worked correctly for static libraries
  - Refactors to call find_package for boost in one place (helps prepare for upcoming mason PR)
2016-10-20 12:09:27 -07:00
Patrick Niklaus
983ad3513a Enabled address sanitizer 2016-10-19 18:30:06 +02:00
Daniel Patterson
b72dc8c0cf Enable use of other build types than Debug and Release, and properly default to Release. 2016-10-14 12:37:01 +02:00
Daniel J. Hofmann
dbd108df8c Reworks how we search for Lua in CMake and constrain to Lua 5.1 5.2
At the moment we have a FindLua52.cmake module that is happy with
Lua52 but also Lua51 and even Lua53. Let's instead pull in the official
one from CMake (since it's not yet in CMake 2.8 which we support).

https://github.com/Kitware/CMake/blob/master/Modules/FindLua.cmake

BSD licenced.

Requires Lua 5.1 or Lua 5.2, since seeing memory issues on 5.3:

https://github.com/Project-OSRM/osrm-backend/issues/2926
2016-10-05 13:23:48 +02:00
Daniel J. Hofmann
94ca782816 Bumps version to 5.4.0 2016-10-04 10:46:56 +02:00
Daniel J. Hofmann
b821a1dd98 Disables ld.gold on binutils < 2.26, resolves #2984 2016-10-03 15:41:40 +02:00
Daniel J. Hofmann
6290aeea93 Fixes Tile Unit Test Compilation 2016-09-30 16:58:50 +02:00
karenzshea
eafe3fa928 remove luajit support 2016-09-28 11:12:11 +02:00
Daniel J. Hofmann
d1f555dcef Removes unused JSON logger.
References:
- https://github.com/Project-OSRM/osrm-backend/pull/2769
2016-09-28 10:01:56 +02:00
Daniel Patterson
fa5714ab82 Unset FORTIFY_SOURCE before setting to avoid warnings for compilers where FORTIFY_SOURCE is predefined. (#2946) 2016-09-27 21:32:22 -07:00
Daniel J. Hofmann
8b144f22c9 Exposes osrm::exception for client usage, resolves #2813 2016-09-01 09:12:35 +02:00
Michael Krasnyk
41b54cf25d
Don't use gold gc-sections for binutils < 2.25
Issue 2785: check gold binutils version and don't use gc-sections for versions prior 2.25
due to https://sourceware.org/bugzilla/show_bug.cgi?id=17639

readelf --debug-dump=frames build/libosrm_extract.so
Contents of the .eh_frame section:
...
readelf: Warning: Invalid length 0xfff01dd8 in FDE at 0x000020
2016-08-25 23:51:25 +02:00
Patrick Niklaus
5ee15ee339
Use webkit code snippet to detect GNU gold 2016-08-25 22:45:49 +02:00
Patrick Niklaus
01b0bce2d5
Use gold linker by default if available 2016-08-25 22:45:49 +02:00
Sandra Thieme
9957254a5a Use c++1y instead of c++14 2016-08-23 13:01:07 +02:00
Daniel J. Hofmann
3a0eed2ee5
Make sanitizer used for Fuzz testing configurable via FUZZ_SANITIZER 2016-08-19 13:59:59 +02:00
Daniel J. Hofmann
2557bdcf39
Basic Fuzz Testing.
[100%] Fuzzing libosrm
    /tmp/osrm-backend/build/fuzz/driver -max_len=4096 corpus  > fuzz-0.log 2>&1
    /tmp/osrm-backend/build/fuzz/driver -max_len=4096 corpus  > fuzz-1.log 2>&1
    /tmp/osrm-backend/build/fuzz/driver -max_len=4096 corpus  > fuzz-2.log 2>&1
    /tmp/osrm-backend/build/fuzz/driver -max_len=4096 corpus  > fuzz-3.log 2>&1

References:
- http://llvm.org/docs/LibFuzzer.html
- http://llvm.org/releases/3.8.0/docs/LibFuzzer.html
- https://github.com/Project-OSRM/osrm-backend/issues/1678
2016-08-19 13:59:59 +02:00
Dane Springmeyer
71d64e8cd9
Default to c++14 / drop g++-4.8 from testing matrix 2016-07-25 19:30:43 +02:00
Patrick Niklaus
dc77d02e8a
Change OSRM version to 5.3.0 2016-06-28 10:35:45 +02:00
Daniel J. Hofmann
61ba985bc9
Prevent linker from discarding TBB symbols we need, fixes #2557
We build `osrm_contract` (the library) linking in libtbb. We then
build `osrm-contract` (the binary) linking in `osrm_contract` (the
library).

Because we're only using TBB's `parallel_invoke` in the code for the
binary, it seems like the linker discards some symbols in the library.

Therefore we have to link libtbb for the binary again. Even worse, the
order now matters: if we first link in `osrm_contract` and then libtbb,
we're still hitting the issue re. discarded symbols.

Therefore we first link in all dependencies (libtbb, libboost*), and
only then `osrm_contract`.

Strictly speaking, we probably have to do this for all of our binary
targets, or we will hit similar issues in the future.
2016-06-24 12:06:28 +02:00
Patrick Niklaus
a28125ee9a Merge pull request #2577 from noblige/noblige/compile-armv7
option to disable LTO
2016-06-24 12:04:02 +02:00
Aleksei Potov
05dc415aba option to disable LTO 2016-06-23 09:44:02 -07:00
Daniel Patterson
6dedd9cb72 Fix segfault when route includes very short segments. 2016-06-22 14:48:57 -07:00
Daniel J. Hofmann
256d39b572 Sync OSRM version in CMakeLists, fixes #2576 2016-06-22 17:03:31 +02:00
Michael Krasnyk
57c9525e5c
Added i686 Travis build 2016-06-20 22:45:40 +02:00
Dane Springmeyer
6ecc123d15
Fix various issues with pkg-config 2016-06-04 12:08:54 +02:00
Daniel J. Hofmann
87f00d2c4c Restrict CMake version to 2.8.11+ for target_include_directories 2016-06-02 16:07:29 +02:00
Dane Springmeyer
4de64a92cb fix zlib linking order 2016-05-25 09:32:27 -04:00
Patrick Niklaus
edf9e0c1ed
[skip ci] Update changelog and OSRM version 2016-05-20 18:52:00 +02:00
Dane Springmeyer
fe39d0fd10 disable BOOST_TEST_DYN_LINK if Boost_USE_STATIC_LIBS 2016-05-20 00:03:37 -04:00
Moritz Kobitzsch
ba074b0116
initial version of intersection classification 2016-05-19 16:43:46 +02:00
Daniel J. Hofmann
0f2bb5dde5
Disable builing components tool by default until GDAL 2 compatibility #1738 lands 2016-05-12 00:25:18 +02:00
Daniel J. Hofmann
98937b187f
We require Visual Studio 2015+
References:
- https://github.com/Project-OSRM/osrm-backend/issues/2341#issuecomment-216231618
2016-05-02 17:50:54 +02:00
Patrick Niklaus
578eda7d28
[skip ci] Add release docs 2016-04-29 14:00:10 +02:00
Patrick Niklaus
cc35d15b2d
More folds and reorder some build instructions 2016-04-25 00:19:48 +02:00
Patrick Niklaus
b6a793a1e2 Fix COVERAGE=ON and add SANITIZE=ON/OFF 2016-04-12 15:43:29 +02:00
Patrick Niklaus
6643e7f499 Integrate converage reporting 2016-04-08 20:37:51 +02:00
Patrick Niklaus
dea12779cf basename -> filename, fixes #2027 2016-04-08 01:50:25 +02:00
Daniel J. Hofmann
a516245c94 Modularize benchmarks subproject 2016-04-06 18:36:08 +02:00
Daniel J. Hofmann
b1ed268d0e Start modularizing the CMake buildsystem
The main reason for modularizing the unit tests was to split off
libboost_unit_test_framework from the osrm toolchain binaries.

Now only the unit test binaries link against it, unblocking
binary distribution without unit test library dependencies.

I started this on v4 a couple of weeks ago and hit a -llua5 issue on
Travis. By now v5 diverged quite a bit (especially in the code that I
have to stare at for debugging the issues).

https://github.com/Project-OSRM/osrm-backend/pull/2073

Let's bring this to v5+ only.

This is blocking:

- https://github.com/Project-OSRM/osrm-backend/issues/2065
- https://github.com/Project-OSRM/osrm-backend/issues/2197#issuecomment-204864938
2016-04-06 18:36:06 +02:00
Patrick Niklaus
c540c85cf8 Remove tests from default target until we get proper switchting in place 2016-04-05 22:59:14 +02:00
Patrick Niklaus
b17491ebe5 Bump osrm version 2016-04-05 22:59:14 +02:00
Patrick Niklaus
7174baa91e Move osrm-components to BUILD_COMPONENTS flag 2016-04-05 22:59:14 +02:00
Patrick Niklaus
a964bec0f8 Add route fixture test 2016-04-05 22:59:14 +02:00
Patrick Niklaus
d51eefa1c4 Make tests build by default 2016-04-05 22:59:14 +02:00
Daniel J. Hofmann
099a805260 Initial unit tests setup for typed libosrm services 2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
9d893d6d4d Library tests build system integration 2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
c3e7e96dce Adds round trip tests for RFC 4648 Test Vectors and equality checks 2016-04-05 22:58:32 +02:00
Patrick Niklaus
59163cb2fc Install storage_config.hpp 2016-04-05 22:58:32 +02:00
Patrick Niklaus
cb8bfa027e Only allow to specify the common base path 2016-04-05 22:58:32 +02:00
Patrick Niklaus
29cf9e05db Only install necessary headers 2016-04-05 22:58:32 +02:00
Patrick Niklaus
0b3289ea37 Remove the encoder/decoder dependecy from Hint 2016-04-05 22:58:32 +02:00
Patrick Niklaus
a8fc95d4e4 Move bearing to public namespace 2016-04-05 22:58:32 +02:00
Patrick Niklaus
b08b360f38 Big Restructuring / Cleanup 2016-04-05 22:58:32 +02:00
Moritz Kobitzsch
f1aa03c360 handle segregated roads (merge for turn analysis) 2016-04-05 22:58:32 +02:00
Moritz Kobitzsch
ef1e0e14ec advanced guidance on 5.0 2016-04-05 22:58:32 +02:00
Daniel J. Hofmann
715ee66b03 Install _all_ transitively from public headers included header 2016-04-05 22:58:32 +02:00