Table of Contents

TerraLib Developer's Guide - Third Party Dependencies

The file named DEPENDENCIES in the root of TerraLib source tree contains the up-to-date list of third-party libraries and tools that you must install before building TerraLib from source.

If you want to build yourself TerraLib/TerraView then you need to install some third-party libraries.

Below we show the list of third-party libraries dependencies and its versions1):

$ tar xzvf qtpropertybrowser.tar.gz

Then, run qmake specifying the installation directory:

$ qmake "TERRALIB_DIR=install_dir"

Finally, run make and make install:

$ make
$ make install
C:\Program Files (x86)\Common Files\System\ado
C:\Program Files (x86)\Common Files\System\Ole DB

Third party dependencies binaries for Microsoft Visual C++ for Windows

For Microsoft Visual C++ users we have prepared a zip file containing all the third-party libraries in a binary format. You can download this package from http://www.dpi.inpe.br/terralib5-devel/3rdparty/bin.

To work with 'develop' branch take the zip from the root dir. To work with 'release-5.y' branch go to the correct subdirectory named 5.y and take the zip.

In that folder you will find all the third-party libraries for building a 64-bit version of Terralib with Qt5.12.3 support.

Microsoft Windows users that have downloaded one of the file 3rdparty zip must install the same version of Qt used to generate it, i.e., Qt5.13.3.

Also, the same lib Python version used to generate the zip must be installed in your environment. In this example python-3.6.6-amd64.exe.

Automatic Build of Third-party Dependencies with Shell Scripts (Linux/MacOS/Windows)

We have prepared some special shell scripts for building and installing the dependencies on specific platforms. Check the source code structure and find the shell script files under install folder.

Linux Ubuntu 18.04 with Qt 5.12.7

The Linux Ubuntu bash script can be found in TerraLib source tree under install folder.

Follow these steps if you are working on 'develop' branch:

Follow these steps if you are working on 'release-5.y' branch:

Copy the scripts (from your local codebase folder) to the same folder you have downloaded the 3rdparty package:

Open the shell command line and call the script install-3rdparty-linux-generic.sh setting the target to install all the stuffs from these third-party libraries and tools:

:: Compile 3rdparty for terralib version >= 5.5.2 and generate them in TERRALIB_DEPENDENCIES_DIR using the script "install-3rdparty-linux-generic.sh"
$> TERRALIB_DEPENDENCIES_DIR="/home/user/mylibs" PATH=/home/user/Qt/5.12.3/gcc_64/bin/:$PATH ./install-3rdparty-linux-generic.sh
:: Sometimes it is necessary to add QT5_BASE_DIR variable before, in this case use the command below
$> QT5_BASE_DIR="/home/user/Qt/" TERRALIB_DEPENDENCIES_DIR="/home/user/mylibs" PATH=/home/user/Qt/5.12.3/gcc_64/bin/:$PATH ./install-3rdparty-linux-generic.sh

Warning: Don't choose as target location a system folder such as /usr or /usr/local. Try some user specific folder. The best suggestion is to replace the folder named user by your user name.

You might need to install the right version of some stuffs in order to get the 3rdparty generated. For example, if you get this error msg,“Cannot find a C++ compiler supporting C++11 on this system”:

Others stuffs needed on Ubuntu because of cmake:

Others stuffs needed on Ubuntu in order to generate terralib 3rdparty:

Linux Ubuntu 18.04 and 16.04 (terralib version <= 5.5.1)

The Linux Ubuntu bash script can be found in TerraLib source tree under install folder.

Follow these steps if you are working on 'develop' branch:

Follow these steps if you are working on 'release-5.y' branch:

Copy one of the scripts (from your local codebase folder) to the same folder you have downloaded the 3rdparty package:

Open the shell command line and call the script install-3rdparty-linux-ubuntu-18.04.sh (or the Ubuntu 16.04 one) setting the target to install all the stuffs from these third-party libraries and tools:

:: For terralib version < 5.5.2 use:
$> TERRALIB_DEPENDENCIES_DIR="/home/user/mylibs" ./install-3rdparty-linux-ubuntu-18.04.sh
$> TERRALIB_DEPENDENCIES_DIR="/home/user/mylibs" ./install-3rdparty-linux-ubuntu-16.04.sh

Warning: Don't choose as target location a system folder such as /usr or /usr/local. Try some user specific folder. The best suggestion is to replace the folder named user by your user name.

Mac OS X

The Mac OS X bash script can be found in TerraLib source tree under install folder.

Follow these steps if you are working on 'develop' branch:

Follow these steps if you are working on 'release-5.y' branch:

Open the shell command line.

Make sure your Qt and CMake environment can be found in your PATH:

$ export PATH=$PATH:/usr/local/Cellar/autoconf/2.69/bin:/Users/user/Qt5.12.3/5.12.3/clang_64/bin:/Applications/CMake.app/Contents/bin
or
$ export PATH=$PATH:/Users/user/Qt5.12.3/5.4/clang_64/bin:/Applications/CMake.app/Contents/bin

In the shell command line, call the script install-3rdparty-macos-sierra.sh setting the target to install all the stuffs from these third-party libraries and tools:

$ TERRALIB_DEPENDENCIES_DIR="/Users/user/mylibs" ./install-3rdparty-macos-sierra.sh

Warning: Don't choose as target location a system folder such as /usr or /usr/local. Try some user specific folder. The best suggestion is to replace the folder named *user* by your user name.

Microsoft Windows with Visual C++ 2017

The Microsoft Windows with Visual C++ 2017 shell script can be found in TerraLib source tree under install folder.

Follow the steps according with the branch you are working on:

C:/my_win3rdparty/terralib-3rdparty-msvc17/
C:/my_win3rdparty/build_all.bat
C:/my_win3rdparty/build_all_x64.bat
:: Where to install the third-parties (this folder will be referenced by CMAKE when building terralib5)
set TERRALIB_DEPENDENCIES_DIR=C:\terralib5-3rdparty-msvc-2017-win64
:: Where is the TerraLib5 codebase (git clone)
set TERRALIB5_CODEBASE_PATH=C:\MyDevel\terralib5
:: Where is cmake.exe
set "CMAKE_FILEPATH=%PROGRAMFILES%\CMake\bin"
:: Where is qmake.exe
set "QMAKE_FILEPATH=C:\Qt\5.12.3\msvc2017_64\bin"
:: Where is vcvars (visual studio 64 bits setting environment file (vcvars64.bat))
set "VCVARS_FILEPATH=%PROGRAMFILES(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build"
:: Calling the script on TerraLib5 - is pointing to the batch file that will be called from here ( %TERRALIB5_CODEBASE_PATH%\install\install-3rdparty-msvc17.bat)

Warning:If you need to re-run the build_all.bat, remove the C:/my_win3rdparty/ and unzip the terralib-3rdparty-msvc17.zip file again because the script is not prepared to overwrite files generated under this folder and will crash.

Now that you have prepared the working environment, please, read the Build Instructions section.

Microsoft Windows with Visual C++ 2013

The Microsoft Windows with Visual C++ 2013 shell script can be found in TerraLib source tree under install folder.

Follow the steps according with the branch you are working on:

C:/my_win3rdparty/terralib-3rdparty-msvc12/
C:/my_win3rdparty/build_all.bat
C:/my_win3rdparty/build_all_x64.bat
:: Where to install the third-parties (this folder will be referenced by CMAKE when building terralib5)
set TERRALIB_DEPENDENCIES_DIR=C:\MyDevel\my-3rds
:: Where is the TerraLib5 codebase (git clone)
set TERRALIB5_CODEBASE_PATH=C:\MyDevel\terralib5
:: Where is cmake.exe
:: Where is qmake.exe
:: Where is win32.mak file of the system.
:: Where is the visual studio 64 bits setting environment file (vcvars64.bat)
:: Calling the script on TerraLib5 - is pointing to the batch file that will be called from here (%TERRALIB5_CODEBASE_PATH%\install\install-3rdparty.bat)

Warning:If you need to re-run the build_all.bat, remove the C:/my_win3rdparty/ and unzip the terralib-3rdparty-msvc12.zip file again because the script is not prepared to overwrite files generated under this folder and will crash.


Now that you have prepared the working environment, please, read the Build Instructions section.

1) if you want to build the 3rd-party dependencies for TerraLib from source, first take a look at the section Automatic Build of Third-party Dependencies with Shell Scripts and read the right tip for automatically building the dependencies in your platform.
2) , 3) from your local codebase folder