Open Source Routing Machine - C++ backend
Go to file
Dennis Luxen 2ce0d60db1 Squashed 'third_party/libosmium/' changes from 6522da5..f074d94
f074d94 Use shorter path names in Doxygen doc.
5117d5a Make Doxygen-generated HTML docs work better on small screens.
41607ac Appveyor config: Use lowercase command names everywhere. Filter 7z output.
9e77a39 Remove debug output.
3416c4b Revert "Comment out test to see if there are dependencies between tests."
fa49dde Comment out test to see if there are dependencies between tests.
5add75d Fix typo in appveyor conf: nul.
53b3778 Use different file names for tests.
1091c0b Fix Windows munmap() to return the same as the posix one.
14fdc4e Revert "CMake: Remove unneeded build type setting."
0270087 Workaround for MSVC.
56c2120 Another try...
8e96a6f Trying to fix test on Windows...
11a64c2 CMake workaround: Set CMAKE_CONFIGURATION_TYPES before project(). As per http://www.cmake.org/pipermail/cmake/2012-January/048856.html
3847e7a CMake: Remove unneeded build type setting.
a1bcaf1 CMake: Make CMAKE_CONFIGURATION_TYPES a cache variable.
ddab3e3 Create test file in test_typed_mmap in current dir instead of tmp.
ce1d3bd Build "RelWithDebInfo" on appveyor instead of "Release".
b6db34f Add README showing source of FindGem.cmake.
2c86c55 Better error message and some comments in CMake for sparsetable check.
b16a5a3 Fix ctest on Windows.
2203bc8 Fix FindGem.cmake.
5d1f81d Another try to fix travis build.
ddd3f5e Hopefully fix problem where travis doesn't find osm-testdata.
0e673ea More debug output to find travis problem.
eb01107 Updated data-tests README.
8a971c8 Remove special case of the multipolygon test in travis/appveyor config.
dce792c CMake: Check dependencies of multipolygon test and run as CMake script.
b967677 Add tests for thread pool.
400e9b3 Bugfix: Handle exception in one pool threads properly.
a1ba489 More detailed error reporting from zlib.
95cf621 Disable SparseMemTable if sparsetable size_type is smaller than 8.
7b601b5 Add missing overload to cast_with_assert() function.
60a7d86 Giving up on trying to remove LNK4221 warning.
35ed5df Try another way to get rid of MSV warning...
f9c7d92 Disable a warning about changed behaviour on MSVC.
c3c6b2d CTest: Only output failed tests.
9c99996 Try setting option in a different way for getting rid of LNK4221 on MSVC.
4ac563c Another ssize_t fix for Windows.
11db84f Fix mmap for windows. Convert macro to function.
95d8f75 Fix test on Windows (which doesn't have ssize_t).
df51aa4 Do not write huge files in one system call.
9c4f772 Change mmap() implementation for Windows.
5be817c Rewrote function to work on Windows without warnings.
ea84f73 Fix warnings on Windows.
572d692 Fixed the static_cast_with_assert function and added tests.
89ef86b Use SparseMemArray instead of SparseMemTable in examples.

git-subtree-dir: third_party/libosmium
git-subtree-split: f074d949a5585a81578d682035f2163de971beb3
2015-03-04 12:50:42 +01:00
benchmarks Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
cmake Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
doc Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
examples Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
include Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
test Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
.gitignore Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
.travis.yml Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
.ycm_extra_conf.py Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
appveyor.yml Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
CMakeLists.txt Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
CONTRIBUTING.md Squashed 'third_party/libosmium/' content from commit 910f8f1 2015-01-13 16:54:25 +01:00
LICENSE.txt Squashed 'third_party/libosmium/' content from commit 910f8f1 2015-01-13 16:54:25 +01:00
Makefile Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
osmium.imp Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
README.md Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00

Libosmium

http://osmcode.org/libosmium

A fast and flexible C++ library for working with OpenStreetMap data.

Build Status Build status

Libosmium is developed on Linux, but also works on OSX and Windows (with some limitations).

There are a few applications that use the Osmium library in the examples directory. See the osmium-contrib repository for more example code.

Prerequisites

Because Libosmium uses many C++11 features you need a modern compiler and standard C++ library. Osmium needs at least GCC 4.8 or clang (LLVM) 3.4. (Some parts may work with older versions.)

Different parts of Libosmium (and the applications built on top of it) need different libraries. You DO NOT NEED to install all of them, just install those you need for your programs.

For details see the list of dependencies.

Directories

  • benchmarks: Some benchmarks checking different parts of Libosmium.

  • cmake: CMake configuration scripts.

  • doc: Config for documentation.

  • examples: Osmium example applications.

  • include: C/C++ include files. All of Libosmium is in those header files which are needed for building Osmium applications.

  • test: Tests (see below).

Building

Osmium is a header-only library, so there is nothing to build for the library itself.

But there are some tests and examples that can be build. Libosmium uses cmake:

mkdir build
cd build
cmake ..
make

This will build the examples and tests. Call ctest to run the tests.

For more see the Libosmium Wiki.

Testing

See the Libosmium Wiki for instructions.

Osmium on 32bit Machines

Osmium works well on 64 bit machines, but on 32 bit machines there are some problems. Be aware that not everything will work on 32 bit architectures. This is mostly due to the 64 bit needed for node IDs. Also Osmium hasn't been tested well on 32 bit systems. Here are some issues you might run into:

  • Google Sparsehash does not work on 32 bit machines in our use case.
  • The mmap system call is called with a size_t argument, so it can't give you more than 4GByte of memory on 32 bit systems. This might be a problem.

Please report any issues you have and we might be able to solve them.

Switching from the old Osmium

If you have been using the old version of Osmium at https://github.com/joto/osmium you might want to read about the changes needed.

License

Libosmium is available under the Boost Software License. See LICENSE.txt.

Authors

Libosmium was mainly written and is maintained by Jochen Topf (jochen@topf.org). See the git commit log for other authors.