Skip to content

Commit 0d7e9da

Browse files
committed
Updates some build and dependency information
1 parent 9ef6710 commit 0d7e9da

File tree

3 files changed

+37
-44
lines changed

3 files changed

+37
-44
lines changed

_libosmium_manual/02_dependencies.md

+22-37
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,15 @@ On Linux systems most of these libraries are available through your package
1717
manager, see the list below for the names of the packages. But make sure to
1818
check the versions. If the packaged version available is not new enough, you'll
1919
have to install from source. Most likely this is the case for Protozero and
20-
Libosmium.
20+
Libosmium itself.
2121

2222
On macOS many of the libraries above will be available through Homebrew.
2323

2424
When building Libosmium tests and examples, CMake will automatically look for
2525
these libraries in the usual places on your system. In addition it will look
26-
for the Libosmium and Protozero libraries in the same directory where the
27-
Libosmium repository is. So if you are building from the Git repository and
28-
want to use the newest Libosmium and Protozero, clone both into the same
29-
directory:
26+
for the Protozero library in the same directory where the Libosmium repository
27+
is. So if you are building from the Git repository and want to use the newest
28+
Libosmium and Protozero, clone both into the same directory:
3029

3130
mkdir work
3231
cd work
@@ -78,13 +77,13 @@ files](https://wiki.openstreetmap.org/wiki/PBF_Format).
7877
* Debian/Ubuntu: `libosmpbf-dev` (The package in Ubuntu 14.04 and older is too old, install from source instead.)
7978
* Homebrew: `osm-pbf`
8079

81-
### Protozero >= 1.5.1 (since libosmium version 2.3.0)
80+
### Protozero >= 1.6.3 (since libosmium version 2.3.0)
8281

8382
The [Protozero header only library](https://github.com/mapbox/protozero) is
8483
needed for reading and writing [OSM PBF
8584
files](https://wiki.openstreetmap.org/wiki/PBF_Format).
8685

87-
You need at least version 1.5.1.
86+
You need at least version 1.6.3.
8887

8988
Up to version 2.13 a copy of this library was included in the libosmium
9089
repository. For newer version you need to install either a packaged version or
@@ -93,7 +92,7 @@ a version from the git repository.
9392
* Debian/Ubuntu: `libprotozero-dev`
9493
* Fedora/CentOS: `protozero-devel`
9594

96-
### Utfcpp
95+
### Utfcpp (until version 2.14.0)
9796

9897
The [utf8-cpp](http://utfcpp.sourceforge.net/) library is needed for the OPL
9998
output format. A copy of this library is included in the libosmium repository
@@ -135,8 +134,8 @@ reading and writing OSM XML files.
135134
### Boost >= 1.55
136135

137136
[Boost](https://www.boost.org/) Iterator is used for Tag filters, and for the
138-
Object Pointer Collection. The CRC32 checksum implementatation from boost is
139-
needed for caclcuation checksums over OSM objects. Libosmium versions before
137+
Object Pointer Collection. The CRC32 checksum implementation from boost is
138+
needed for calculating checksums over OSM objects. Libosmium versions before
140139
2.6.1 also needed Boost for writing PBF files.
141140

142141
You need at least Boost version 1.55.
@@ -151,7 +150,9 @@ You need at least Boost version 1.55.
151150
### Google Sparsehash
152151

153152
Google Sparsehash (https://github.com/sparsehash/sparsehash) is needed for
154-
the `sparse-mem-table` index map, often used as a node location store.
153+
the `sparse-mem-table` index map, sometimes used as a node location store.
154+
This isn't usually needed any more, because there are better implementations
155+
for the node location store available.
155156

156157
* Debian/Ubuntu: `libsparsehash-dev`
157158
* Fedora/CentOS: `sparsehash-devel`
@@ -215,6 +216,14 @@ project OSM coordinates into spatial reference systems other than Web Mercator
215216
* Fedora/CentOS: `proj-devel`, `proj-epsg`
216217
* openSUSE: `libproj-devel`, `proj`
217218

219+
### LZ4 (from 2.16.0)
220+
221+
The [LZ4](https://lz4.github.io/lz4/) library is needed if you want to use
222+
LZ4 compression in PBF files. This is an optional feature available from
223+
libosmium version 2.16.0.
224+
225+
* Debian/Ubuntu: `liblz4-dev`
226+
218227
### Doxygen
219228

220229
The Libosmium API documentation can be built using
@@ -230,32 +239,7 @@ yourself, you need [Graphviz](https://www.graphviz.org/) in addition to Doxygen.
230239

231240
## Installing dependencies on some Linux systems
232241

233-
### Debian Jessie
234-
235-
You can install all dependencies with:
236-
237-
``` sh
238-
apt-get install -q -y \
239-
cmake \
240-
doxygen \
241-
g++ \
242-
git \
243-
graphviz \
244-
libboost-dev \
245-
libbz2-dev \
246-
libexpat1-dev \
247-
libgdal-dev \
248-
libgeos++-dev \
249-
libproj-dev \
250-
libsparsehash-dev \
251-
make \
252-
ruby \
253-
ruby-json \
254-
spatialite-bin \
255-
zlib1g-dev
256-
```
257-
258-
### Ubuntu Trusty (14.04)
242+
### Debian Jessie and newer
259243

260244
You can install all dependencies with:
261245

@@ -271,6 +255,7 @@ apt-get install -q -y \
271255
libexpat1-dev \
272256
libgdal-dev \
273257
libgeos++-dev \
258+
liblz4-dev \
274259
libproj-dev \
275260
libsparsehash-dev \
276261
make \

_libosmium_manual/03_building.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ Osmium. Debian wheezy (stable) and the Ubuntu LTS release 12.04 don't have
7070
compilers current enough. If you are stuck on these systems, use a backported
7171
compiler.
7272

73-
Mac OSX: Osmium also works well on Mac OSX with the exception of the parts that
74-
need the mremap system call that is not available on Mac OSX.
73+
macOS: Osmium also works well on macOS with the exception of the parts that
74+
need the mremap system call that is not available on macOS.
7575

7676
First clone Libosmium from the git repository (or install it in some other way):
7777

_libosmium_manual/05_using.md

+13-5
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ If your code doesn't work with older version of Libosmium, you can tell CMake
6565
the minimum version number:
6666

6767
``` cmake
68-
find_package(Osmium 2.10.2 REQUIRED)
68+
find_package(Osmium 2.15.6 REQUIRED)
6969
```
7070

7171
You can add an optional list of components that should be found also. For
@@ -107,7 +107,9 @@ Also see the [dependencies chapter](#dependencies).
107107

108108
### XML input
109109

110-
For XML input you need the Expat XML parser, for XML output no special XML library is needed. In any case you need threading enabled. If you want to read or write compressed XML files you need ZLib and BZ2lib.
110+
For XML input you need the Expat XML parser, for XML output no special XML
111+
library is needed. In any case you need threading enabled. If you want to read
112+
or write compressed XML files you need ZLib and BZ2lib.
111113

112114
* Dependencies: Expat, Zlib, BZ2lib
113115
* Link with: `libexpat`, enable multithreading
@@ -125,6 +127,9 @@ For version 2.3.0 and above you don't need much:
125127
* Classes: `osmium::io::Reader`, `osmium::io::Writer`
126128
* Include files: `osmium/io/any_input.hpp`, `osmium/io/any_output.hpp`, `osmium/io/pbf_input.hpp`, `osmium/io/pbf_output.hpp`
127129

130+
If you want support for lz4 compression in PBF blobs, you also need the
131+
[LZ4 library](https://lz4.github.io/lz4/).
132+
128133
For versions up to 2.2 you need some more libraries:
129134

130135
* Dependencies: Google Protocol Buffers, OSMPBF, Zlib
@@ -134,16 +139,17 @@ For versions up to 2.2 you need some more libraries:
134139

135140
### GDAL/OGR
136141

137-
The GDAL/OGR library is needed when you want to convert OSM geometries into OGR geometries or report problems building multipolygons into OGR formats.
142+
The GDAL/OGR library is needed when you want to convert OSM geometries into OGR
143+
geometries or report problems building multipolygons into OGR formats.
138144

139145
* Link with: `libgdal`
140146
* Classes: `osmium::geom::OGRFactory`
141147
* Include files: `osmium/geom/ogr.hpp`, `osmium/area/problem_reporter_ogr.hpp`
142148

143149

144-
### Proj.4
150+
### PROJ
145151

146-
The Proj.4 library is only needed when you want to project OSM locations into
152+
The PROJ library is only needed when you want to project OSM locations into
147153
arbitrary coordinate reference systems. If you only want to convert to Web
148154
Mercator, use `osmium::geom::MercatorProjection` instead and you don't need an
149155
extra library.
@@ -152,6 +158,8 @@ extra library.
152158
* Classes: `osmium::geom::Projection`
153159
* Include files: `osmium/geom/projection.hpp`
154160

161+
Note that only PROJ up to version 5 is supported.
162+
155163

156164
## Compiler options
157165

0 commit comments

Comments
 (0)