TerraLib and TerraView Wiki Page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
wiki:documentation:devguide:dependencies [2017/05/15 11:42]
marisa [Microsoft Windows with Visual C++ 2013]
wiki:documentation:devguide:dependencies [2020/10/16 19:28]
marisa [Mac OS X]
Line 6: Line 6:
  
 Below we show the list of third-party libraries dependencies and its versions((if you want to build the 3rd-party dependencies for TerraLib from source, first take a look at the section //​**[[:​wiki:​documentation:​devguide:​dependencies#​automatic_build_of_third-party_dependencies_with_bash_scripts|Automatic Build of Third-party Dependencies with Shell Scripts]]**//​ and read the right tip for automatically building the dependencies in your platform.)):​ Below we show the list of third-party libraries dependencies and its versions((if you want to build the 3rd-party dependencies for TerraLib from source, first take a look at the section //​**[[:​wiki:​documentation:​devguide:​dependencies#​automatic_build_of_third-party_dependencies_with_bash_scripts|Automatic Build of Third-party Dependencies with Shell Scripts]]**//​ and read the right tip for automatically building the dependencies in your platform.)):​
-  * **CMake** (Mandatory):​ The TerraLib build system relies on CMake. Please, download and install [[https://​cmake.org/​download|CMake version ​2.8.12]] (preferable version 3.X).+  * **CMake** (Mandatory):​ The TerraLib build system relies on CMake. Please, download and install [[https://​cmake.org/​download|CMake version ​3.11]].
  
-  * **Boost** (Mandatory):​ TerraLib is built on top of Boost libraries. You will need to have them installed in order to build TerraLib. Make sure to have at least version 1.54.0 installed. If you prefer to install from source, download it from: [[http://​www.boost.org]].+  * **Boost** (Mandatory):​ TerraLib is built on top of Boost libraries. You will need to have them installed in order to build TerraLib. Make sure to have at least version 1.65 installed. If you prefer to install from source, download it from: [[http://​www.boost.org]].
  
-  * **GEOS** (Mandatory):​ GEOS is available from [[http://​trac.osgeo.org/​geos]]. Make sure to have at least version 3.4.installed.+  * **GEOS** (Mandatory):​ GEOS is available from [[http://​trac.osgeo.org/​geos]]. Make sure to have at least version 3.7.installed.
  
-  * **Proj4** (Mandatory):​ Proj4 is available from [[http://​trac.osgeo.org/​proj]]. Make sure to have at least version ​4.8.installed.+  * **Proj4** (Mandatory):​ Proj4 is available from [[http://​trac.osgeo.org/​proj]]. Make sure to have at least version ​6.1.installed.
  
-  * **Qt** (Optional): Make sure you have an installed Qt version 5.4.1 or later. Linux users may use any package manager to perform an easy installation. Mac OS X can use package managers such as [[http://​brew.sh|Homebrew]] or [[http://​www.macports.org|MacPorts]] in order to have an easy installation. If you prefer to install from source, download it from: [[http://​qt-project.org/​downloads]].+  * **Qt** (Optional): Make sure you have an installed Qt version 5.12.3. Linux users may use any package manager to perform an easy installation. Mac OS X can use package managers such as [[http://​brew.sh|Homebrew]] or [[http://​www.macports.org|MacPorts]] in order to have an easy installation. If you prefer to install from source, download it from: [[http://​qt-project.org/​downloads]].
  
   * **QtPropertyBrowser** (Optional if Qt is not used): QtPropertyBrowser is a free and open source Qt component. We have been using a especial port of QtPropertyBrowser that you can find inside of our [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​ | third-party packages]] sources.\\ You can extract the qtpropertybrowser.tar.gz files using:   * **QtPropertyBrowser** (Optional if Qt is not used): QtPropertyBrowser is a free and open source Qt component. We have been using a especial port of QtPropertyBrowser that you can find inside of our [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​ | third-party packages]] sources.\\ You can extract the qtpropertybrowser.tar.gz files using:
Line 32: Line 32:
   * **Qwt** (Optional if Qt is not used): Qwt is available from [[http://​qwt.sourceforge.net]]. Make sure to have at least version 6.1.0 installed.   * **Qwt** (Optional if Qt is not used): Qwt is available from [[http://​qwt.sourceforge.net]]. Make sure to have at least version 6.1.0 installed.
  
-  * **GDAL** (Optional): GDAL is available from [[http://​www.gdal.org]]. Make sure to have at least version ​2.0.installed.+  * **GDAL** (Optional): GDAL is available from [[http://​www.gdal.org]]. Make sure to have at least version ​3.0.installed.
  
-  * **PostgreSQL libpq** (Optional): libpq is available with PostgreSQL source from [[http://​www.postgresql.org]]. Make sure to have at least libpq for PostgreSQL version 9.1.installed.+  * **PostgreSQL libpq** (Optional): libpq is available with PostgreSQL source from [[http://​www.postgresql.org]]. Make sure to have at least libpq for PostgreSQL version 9.4.installed.
  
   * **Microsoft ADO .Net** (Optional): This is available only for Microsoft Windows and it is installed in general under a folder such as:   * **Microsoft ADO .Net** (Optional): This is available only for Microsoft Windows and it is installed in general under a folder such as:
Line 42: Line 42:
 </​code>​ </​code>​
  
-  * **Xerces-c** (Optional): Apache Xerces-C++ is available from [[http://​xerces.apache.org/​xerces-c]]. Make sure to have at least version 3.1.installed.+  * **Xerces-c** (Optional): Apache Xerces-C++ is available from [[http://​xerces.apache.org/​xerces-c]]. Make sure to have at least version 3.1.installed.
  
   * **Apache log4cxx** (Optional): Apache log4cxx is available from [[http://​logging.apache.org/​log4cxx]]. Make sure to have at least version 0.10.0 installed.   * **Apache log4cxx** (Optional): Apache log4cxx is available from [[http://​logging.apache.org/​log4cxx]]. Make sure to have at least version 0.10.0 installed.
Line 52: Line 52:
   * **Google Test and Google Mock** (Optional): Google Test and Google Mock are available from https://​github.com/​google/​googletest. Any recent version may be used.   * **Google Test and Google Mock** (Optional): Google Test and Google Mock are available from https://​github.com/​google/​googletest. Any recent version may be used.
  
-===== Third party dependencies binaries for Microsot Visual C++ for Windows =====+  * **Python** (Optional): Python is available from https://​www.python.org/​downloads. Use ''​python-3.6.6-amd64.exe''​.
  
-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. In that folder you will find:  +===== Third party dependencies binaries for Microsoft Visual C++ for Windows =====
-  * **terralib-3rdparty-msvc2013-win64.zip:​** all the third-party libraries ​for building a 64-bit version of Terralib with Qt 5.4.1 support.+
  
-Microsoft Windows users that have downloaded the auxiliary package (in the TerraLib site) must install Qt 5.4.1.+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 [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​bin|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)===== ===== Automatic Build of Third-party Dependencies with Shell Scripts (Linux/​MacOS/​Windows)=====
Line 63: Line 70:
 We have prepared some special shell scripts for building and installing the dependencies on specific platforms. Check the [[http://​www.dpi.inpe.br/​terralib5/​wiki/​doku.php?​id=wiki:​documentation:​devguide:​src_organization |source code structure]] and find the shell script files under //​**install**// ​ folder. We have prepared some special shell scripts for building and installing the dependencies on specific platforms. Check the [[http://​www.dpi.inpe.br/​terralib5/​wiki/​doku.php?​id=wiki:​documentation:​devguide:​src_organization |source code structure]] and find the shell script files under //​**install**// ​ folder.
  
-====  Linux Ubuntu ​14.04 and 16.04 ====+====  Linux Ubuntu ​18.04 and 16.04 ====
  
 The Linux Ubuntu bash script can be found in TerraLib source tree under //​**install**//​ folder. The Linux Ubuntu bash script can be found in TerraLib source tree under //​**install**//​ folder.
  
-Follow ​the steps:+Follow ​these steps if you are working on **'​develop'​** branch:
   * Download the third-party libraries package used by the development team:    * Download the third-party libraries package used by the development team: 
-    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-linux-ubuntu-14.04.tar.gz|terralib-3rdparty-linux-ubuntu-14.04.tar.gz]].+    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-linux-ubuntu-18.04.tar.gz|terralib-3rdparty-linux-ubuntu-18.04.tar.gz]].
     * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-linux-ubuntu-16.04.tar.gz|terralib-3rdparty-linux-ubuntu-16.04.tar.gz]].     * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-linux-ubuntu-16.04.tar.gz|terralib-3rdparty-linux-ubuntu-16.04.tar.gz]].
  
   * Copy one of the scripts (from your local codebase folder) to the same folder you have downloaded the 3rdparty package:   * Copy one of the scripts (from your local codebase folder) to the same folder you have downloaded the 3rdparty package:
-    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.2/​install/​install-3rdparty-linux-ubuntu-14.04.sh|install-3rdparty-linux-ubuntu-14.04.sh]]** +    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​develop/​install/​install-3rdparty-linux-generic.sh|install-3rdparty-linux-generic.sh]]** (use this script if terralib version is >=  5.5.2
-    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.2/​install/​install-3rdparty-linux-ubuntu-16.04.sh|install-3rdparty-linux-ubuntu-16.04.sh]]**+    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​develop/​install/​install-3rdparty-linux-ubuntu-18.04.sh|install-3rdparty-linux-ubuntu-18.04.sh]]** 
 +    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​develop/​install/​install-3rdparty-linux-ubuntu-16.04.sh|install-3rdparty-linux-ubuntu-16.04.sh]]**
  
-  ​* Open the shell command line and call the script **install-3rdparty-linux-ubuntu-14.04.sh** (or the Ubuntu 16.04 one) setting the target to install all the stuffs from these third-party libraries and tools:+Follow these steps if you are working on **'​release-5.y'​** branch: 
 +  * Download the source code of all third-party libraries from the correct subdirectory named 5.y: 
 +    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src|choose 5.y dir]] and download terralib-3rdparty-linux-ubuntu-18.04.tar.gz. 
 +    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src|choose 5.y dir]] and download terralib-3rdparty-linux-ubuntu-16.04.tar.gz. 
 + 
 +Copy one of the scripts (from your local codebase folder) to the same folder you have downloaded the 3rdparty package: 
 +    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.5/​install/​install-3rdparty-linux-generic.sh|install-3rdparty-linux-generic.sh]]** (use this script if terralib version is >=  5.5.2) 
 +    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.5/​install/​install-3rdparty-linux-ubuntu-18.04.sh|install-3rdparty-linux-ubuntu-18.04.sh]]** 
 +    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.4/​install/​install-3rdparty-linux-ubuntu-16.04.sh|install-3rdparty-linux-ubuntu-16.04.sh]]** 
 + 
 +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:
 <code bash> <code bash>
-$ TERRALIB_DEPENDENCIES_DIR="/​home/​user/​mylibs"​ ./​install-3rdparty-linux-ubuntu-14.04.sh+$ TERRALIB_DEPENDENCIES_DIR="/​home/​user/​mylibs"​ ./​install-3rdparty-linux-generic.sh (use this script if terralib version is >=  5.5.2) 
 +$ TERRALIB_DEPENDENCIES_DIR="/​home/​user/​mylibs"​ ./​install-3rdparty-linux-ubuntu-18.04.sh
 </​code>​ </​code>​
  
Line 87: Line 106:
 The Mac OS X bash script can be found in TerraLib source tree under //​**install**//​ folder. The Mac OS X bash script can be found in TerraLib source tree under //​**install**//​ folder.
  
-Follow ​the steps+Follow ​these steps if you are working on **'​develop'​** branch:
-  ​Download the third-party libraries package used by the development team: +
-    ​[[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-macosx-el-capitan.tar.gz|terralib-3rdparty-macosx-el-capitan.tar.gz]].+
     * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-macos-sierra.tar.gz|terralib-3rdparty-macos-sierra.tar.gz]].     * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-macos-sierra.tar.gz|terralib-3rdparty-macos-sierra.tar.gz]].
  
-  * Copy one of the scripts ​((from your local codebase folder)) to the same folder you have downloaded the 3rdparty package: +  * Copy the script ​((from your local codebase folder)) to the same folder you have downloaded the 3rdparty package:
-    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.2/​install/​install-3rdparty-macosx-el-capitan.sh|install-3rdparty-macosx-el-capitan.sh]]**.  +
-    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.2/​install/​install-3rdparty-macos-sierra.sh|install-3rdparty-macos-sierra.sh]]**.  ​+
  
-  ​Open the shell command line.+    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​develop/​install/​install-3rdparty-macos-sierra.sh|install-3rdparty-macos-sierra.sh]]**.
  
-  ​* Make sure your Qt and CMake environment can be found in your PATH:+Follow these steps if you are working on **'​release-5.y'​** branch: 
 +  * Download the source code of all third-party libraries from the correct subdirectory named 5.y: 
 +    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src|choose 5.y dir]] and download terralib-3rdparty-macos-sierra.tar.gz. 
 +  
 +  * Copy the script ((from your local codebase folder)) to the same folder you have downloaded the 3rdparty package: 
 + 
 +    * **[[https://​gitlab.dpi.inpe.br/​terralib/​terralib/​blob/​release-5.5/​install/​install-3rdparty-macos-sierra.sh|install-3rdparty-macos-sierra.sh]]**. ​    
 + 
 +Open the shell command line. 
 + 
 +Make sure your Qt and CMake environment can be found in your PATH:
 <code bash> <code bash>
-$ export PATH=$PATH:/​Users/​user/​Qt5.4.1/​5.4/​clang_64/​bin:/​Applications/​CMake.app/​Contents/​bin+$ 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
 </​code>​ </​code>​
  
-  * In the shell command line, call the script //​**install-3rdparty-macosx-el-capitan.sh**// ​(or the Sierra one) setting the target to install all the stuffs from these third-party libraries and tools:+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:
 <code bash> <code bash>
-$ TERRALIB_DEPENDENCIES_DIR="/​Users/​user/​mylibs"​ ./​install-3rdparty-macosx-el-capitan.sh+$ TERRALIB_DEPENDENCIES_DIR="/​Users/​user/​mylibs"​ ./​install-3rdparty-macos-sierra.sh
 </​code>​ </​code>​
  
 **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. **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:
 +
 +  * **develop** branch: Download the source code of all third-party libraries used by the development team:
 +    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-msvc17.zip|terralib-3rdparty-msvc17.zip]]
 +
 +  * **release-5.5** branch: Download the source code of all third-party libraries from the correct subdirectory named 5.5:
 +    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src|choose 5.5 dir]] and download terralib-3rdparty-msvc17.zip
 +  ​
 +  * Unpack it in a folder like  //​**C:/​my_win3rdparty**//​. The tree structure will be:
 +<code bash>
 +C:/​my_win3rdparty/​terralib-3rdparty-msvc17/​
 +C:/​my_win3rdparty/​build_all.bat
 +C:/​my_win3rdparty/​build_all_x64.bat
 +</​code> ​
 +
 +  * Open build_all_x64.bat and make sure TERRALIB_X64=1.
 +  * Open build_all.bat file and change the two variables to reflect your environment,​ if necessary:
 +<code bash>
 +:: 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
 +</​code> ​
 +
 +  * Check if the other variables are reflecting your environment and change it when necessary
 +<code bash>
 +:: 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)
 +</​code> ​
 +
 +  * Make sure your Qt and CMake environment can be found in your PATH (it is not necessary)
 +
 +  * Disable the hibernation option on ''​Control Panel\Power Options''​
 +  ​
 +  * Run the //​**C:/​my_win3rdparty/​build_all_x64.bat**//​
 +
 +  * Check the dependencies generated at TERRALIB_DEPENDENCIES_DIR/​lib
 +
 +**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 [[:​wiki:​documentation:​devguide:​build|Build Instructions]] section.
 ==== Microsoft Windows with Visual C++ 2013 ==== ==== 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. The Microsoft Windows with Visual C++ 2013 shell script can be found in TerraLib source tree under //​**install**//​ folder.
  
-Follow the steps: +Follow the steps according with the branch you are working on: 
-  * Download the source code of all third-party libraries used by the development team:+ 
 +  * **develop** branch: ​Download the source code of all third-party libraries used by the development team:
     * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-msvc12.zip|terralib-3rdparty-msvc12.zip]].     * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src/​terralib-3rdparty-msvc12.zip|terralib-3rdparty-msvc12.zip]].
  
 +  * **release-5.y** branch: Download the source code of all third-party libraries from the correct subdirectory named 5.y:
 +    * [[http://​www.dpi.inpe.br/​terralib5-devel/​3rdparty/​src|choose 5.y dir]] and download terralib-3rdparty-msvc12.zip.
 +  ​
   * Unpack it in a folder like  //​**C:/​my_win3rdparty**//​. The tree structure will be:   * Unpack it in a folder like  //​**C:/​my_win3rdparty**//​. The tree structure will be:
 <code bash> <code bash>