| 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.cppis 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/ppaapt update && apt upgradeapt install libgdal-dev |
| lib3ds | apt install lib3ds-dev |
| tinyXML2 | apt install libtinyxml-dev |
*
You should know that this will also upgradeQGis. You can forceAPTto freezeQGisfor 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 gdal@2.1.3 |
| 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 |