Technology | Status |
---|---|
Travis CI (Linux) | |
Travis CI (MacOS) | |
Appveyor (MinGW-w64) | |
Coverity Scan | |
Code Quality |
This work is the result of a PhD thesis financed by IGN France
. It is available as an open source project under the GPL v3.0
License. If you want to have this program under a different License you should contact IGN France
.
In order to build this project you need first to check for these dependencies:
Library | Version |
---|---|
boost |
> v1.58.0 |
CGAL |
> v4.10 |
Gdal |
= v2.1.x |
lib3ds |
= v1.3.0 |
tinyXML2 |
> v2.6.0 |
Catch |
> v1.6.0 |
docopt.cpp |
> v0.6.2 |
This project is tested on these three main platforms:
Platform | Image |
---|---|
Ubuntu LTS |
> v16.04 |
Xcode |
> v8.0.0 |
Windows |
= mingw-w64 |
We explain here how to get these listed dependencies and how to build for each platform:
-
Catch: Catch is a header only library available on
Github
. You do not need to install it as a CMake module installs it as an external project. -
docopt.cpp:
docopt.cpp
is a fun argument parser library available onGithub
. You do not need to install it also as a CMake module installs it as an external project.
You can check the project's docker file for an inspiration. We will use APT
the O.S. package manager for most dependencies:
Step | APT |
---|---|
Update | apt update && apt upgrade -y |
boost | This project uses only filesystem and system boost libraries. However, since CGAL uses other libraries it may be wise to get all of them:apt install libboost-all-dev |
CGAL | You should download the release and build it |
Gdal | Gdal = v2.1.x is not available in the official repositories. The easiest way to get a newer version would be through the stable ubuntugis ppa:add-apt-repository ppa:ubuntugis/ppa apt update && apt upgrade apt install libgdal-dev |
lib3ds | apt install lib3ds-dev |
tinyXML2 | apt install libtinyxml-dev |
*
You should know that this will also upgradeQGis
. You can forceAPT
to freezeQGis
for instance, or you can download the source form the official release website and buildGdal
.
You can check the project's travis file for an inspiration. There are two available package managers. brew
generally has the latest updates while port
focuses more on stability. Personally, I prefer the later.
Step | brew |
port |
---|---|---|
Installation | /usr/bin/ruby -e $(curl -fsSL https://raw.githubusercontent.com/ Homebrew/install/master/install) |
You should follow the instructions on port official website |
Update | brew update |
port selfupdate && port upgrade outdated |
boost | brew install boost |
port install boost |
CGAL | brew install cgal |
port install cgal |
Gdal | You can find the latest release in this website | port install [email protected] |
lib3ds | brew install lib3ds |
port install lib3ds13 |
TinyXML2 | brew install tinyxml2 |
port install tinyxml2 |
Step | pacman |
---|---|
Installation | Check the MSYS2 official website. MinGW-w64 is provided with MSYS2 |
Update | pacman --noconfirm -Syu pacman |
boost | pacman --noconfirm -S mingw-w64-x86_64-boost |
CGAL | pacman --noconfirm -S mingw-w64-x86_64-cgal |
Gdal | pacman --noconfirm -S mingw-w64-x86_64-gdal |
lib3ds | You should download and build the library locally. Check out the Appveyor configuration for more details |
TinyXML2 | pacman --noconfirm -S mingw-w64-x86_64-tinyxml2 |