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
wiki:documentation:devguide:build [2019/02/28 11:23]
marisa [Building on Microsoft Windows with Microsoft Visual C++ 2017]
wiki:documentation:devguide:build [2020/12/21 10:44] (current)
castejon [Building on Microsoft Windows with Microsoft Visual C++ 2017]
Line 7: Line 7:
 The //​**build/​cmake**//​ folder (under the source tree) contains a CMake project for building TerraLib. The //​**build/​cmake**//​ folder (under the source tree) contains a CMake project for building TerraLib.
  
-Until now, TerraLib build has been tested on: +TerraLib ​5.5 build has been tested on: 
-  * Linux Ubuntu ​14.04 and 16.04 +  * Linux Ubuntu ​18.04 
-  * Mac OS X Yosemite, El Capitan and Sierra+  * Mac OS X Sierra
   * Microsoft Windows 10   * Microsoft Windows 10
  
-You should use at least CMake version 3.11 for building TerraLib. Older versions than this may not work properly.+You should use at least CMake version 3.18.1 for building TerraLib. Older versions than this may not work properly.
  
 Follow the build steps below according to your platform. Follow the build steps below according to your platform.
Line 18: Line 18:
 ===== Building on Microsoft Windows with Microsoft Visual C++ 2017 ===== ===== Building on Microsoft Windows with Microsoft Visual C++ 2017 =====
  
-**1.** Microsoft Visual Studio 2017 C++ users can download and unpack the suitable third-party libraries compiled for building 64-bit version of TerraLib with Qt5.10.support. Choose the right version specified by ''​x.y.z''​ at terralib-x.y.z-3rdparty-msvc-2017-win64:​+**1.** Microsoft Visual Studio 2017 C++ users can download and unpack the suitable third-party libraries compiled for building 64-bit version of TerraLib with Qt5.12.support. Choose the right version specified by ''​x.y.z''​ at terralib-x.y.z-3rdparty-msvc-2017-win64:​
  
   *[[http://​www.dpi.inpe.br/​terralib5/​terralib5-3rdparty/​|Choose the right version specified by x.y.z]]   *[[http://​www.dpi.inpe.br/​terralib5/​terralib5-3rdparty/​|Choose the right version specified by x.y.z]]
Line 50: Line 50:
  
   * Click in "Add entry":​   * Click in "Add entry":​
-    * Add new variable named **CMAKE_PREFIX_PATH**((as a example c:​\terralib5\3rdparty;​c:​\terralib5\3rdparty/​lib/​cmake/​terralib-4.2.2;​C:​/Qt/Qt5.10.1/5.10.1/msvc2017_64/lib/cmake/Qt5;​c:​\terralib5\3rdparty\lib\cmake\wtss_cxx-0.4.0;​c:​\Python366)),​ select type as **PATH** and fill its value with the following dependencies paths separated by semicolon (;)+    * Add new variable named **CMAKE_PREFIX_PATH**((as a example c:​\terralib5\3rdparty;​c:​\terralib5\3rdparty/​lib/​cmake/​terralib-4.2.2;​C:​\Qt\5.12.3\msvc2017_64\lib\cmake\Qt5;​c:​\terralib5\3rdparty\lib\cmake\wtss_cxx-0.4.0;​c:​\Python366)),​ select type as **PATH** and fill its value with the following dependencies paths separated by semicolon (;)
  
 ^Dependencies^PATH^ ^Dependencies^PATH^
Line 91: Line 91:
   * Press ''​Open Project''​ to open Visual Studio 2017   * Press ''​Open Project''​ to open Visual Studio 2017
  
-**5.** Inside Visual Studio ​right click over the project ALL_BUILD and build. Before running, set it as ''​StartUp''​ Project and set the local environment of terraview project ((terraview->​Properties->​Configuration Properties->​ Debugging, set the Environment entry as ''​PATH=c:​\terralib5\3rdparty\lib;​c:​\<​Qt5 path>​\bin''​)).+**5.** Inside Visual Studio ​choose "​Release"​ as "​Solution config"​ and select "​x64"​ as platform. Right click over the project ALL_BUILD and build. Before running, set it as ''​StartUp''​ Project and set the local environment of terraview project ((terraview->​Properties->​Configuration Properties->​ Debugging, set the Environment entry as ''​PATH=c:​\terralib5\3rdparty\lib;​c:​\<​Qt5 path>​\bin''​)).
  
 **6.** If TERRALIB_BUILD_EXAMPLES_ENABLED => ON or TERRALIB_BUILD_EXAMPLES_ENABLED => ON: to run and debug one of the terralib_example_* or terralib_unitest_*,​ set it as ''​StartUp''​ Project and make sure the data ([[http://​www.dpi.inpe.br/​terralib5-devel/​data/​data.zip| data.zip]]) used by these examples/​unittest are uncompressed at the default directory specified by TERRALIB_DATA_DIR :    **6.** If TERRALIB_BUILD_EXAMPLES_ENABLED => ON or TERRALIB_BUILD_EXAMPLES_ENABLED => ON: to run and debug one of the terralib_example_* or terralib_unitest_*,​ set it as ''​StartUp''​ Project and make sure the data ([[http://​www.dpi.inpe.br/​terralib5-devel/​data/​data.zip| data.zip]]) used by these examples/​unittest are uncompressed at the default directory specified by TERRALIB_DATA_DIR :   
Line 128: Line 128:
  
   * Click in "Add entry":​   * Click in "Add entry":​
-    * Add new variable named **CMAKE_PREFIX_PATH**((as a example c:​\terralib5\3rdparty;​c:​\terralib5\3rdparty/​lib/​cmake/​terralib-4.2.2;​C:​/Qt/Qt5.10.1/5.10.1/msvc2017_64/lib/cmake/Qt5;C:/Qt/Qt5.10.1/5.10.1/msvc2017_64/lib/cmake/Qt5LinguistTools)),​ select type as **PATH** and fill its value with the following dependencies paths separated by semicolon (;)+    * Add new variable named **CMAKE_PREFIX_PATH**((as a example c:​\terralib5\3rdparty;​c:​\terralib5\3rdparty/​lib/​cmake/​terralib-4.2.2;​C:​\Qt\5.12.3\msvc2017_64\lib\cmake\Qt5;C:\Qt\5.12.3\msvc2017_64\lib\cmake\Qt5LinguistTools)),​ select type as **PATH** and fill its value with the following dependencies paths separated by semicolon (;)
  
 ^Dependencies^PATH^ ^Dependencies^PATH^
 |third-party| ''​c:​\terralib5\3rdparty''​| |third-party| ''​c:​\terralib5\3rdparty''​|
 |Terralib4 | ''​c:​\terralib5\3rdparty\lib\cmake\terralib-4.2.2''​| |Terralib4 | ''​c:​\terralib5\3rdparty\lib\cmake\terralib-4.2.2''​|
-|Qt         | ''​C:​/Qt/Qt5.10.1/5.10.1/msvc2017_64/lib/cmake/Qt5;''​ (or something similar)((This is the folder where the dir **Qt5** containing the **Qt5Config.cmake** file can be find))| +|Qt         | ''​C:​\Qt\5.12.3\msvc2017_64\lib\cmake\Qt5;''​ (or something similar)((This is the folder where the dir **Qt5** containing the **Qt5Config.cmake** file can be find))| 
-|Qt| ''​C:​/Qt/Qt5.10.1/5.10.1/msvc2017_64/lib/cmake/Qt5LinguistTools''​| ​+|Qt| ''​C:​\Qt\5.12.3\msvc2017_64\lib\cmake\Qt5LinguistTools''​| ​
  
   * Click in "​Configure"​ button.   * Click in "​Configure"​ button.
Line 177: Line 177:
   * Rebuild the project called PACKAGE to generate the TerraView installer with TerraPrint plugin.   * Rebuild the project called PACKAGE to generate the TerraView installer with TerraPrint plugin.
  
-  * Install the  c:​\terralib5\_CPack_Packages\win64\NSIS\TerraView-5.4.1-win64.exe to check the TerraPrint plugin ((Plugins|Manage Plugins...|TerraPrint))+  * Install the  c:​\terralib5\_CPack_Packages\win64\NSIS\TerraView-5.5.0-win64.exe to check the TerraPrint plugin ((Plugins|Manage Plugins...|TerraPrint))
  
-===== Building on Linux Ubuntu ​14.04 and 16.04 with GNU G++ =====+===== Building on Linux Ubuntu ​18.04 with GNU G++ =====
  
 **1.** Open a Command Prompt (Shell). **1.** Open a Command Prompt (Shell).
Line 190: Line 190:
 **3.** Create a folder out of the TerraLib source tree to generate the build system, for example: **3.** Create a folder out of the TerraLib source tree to generate the build system, for example:
 <code bash> <code bash>
-$ cd /​home/​user/​mydevel/​terralib +$cd /​home/​user/​mydevel/​terralib 
-$ mkdir build-release +$mkdir build-release 
-$ cd build-release+$cd build-release
 </​code>​ </​code>​
  
-**Note:** for the sake of simplicity create this directory in the same level as the source tree (as showned ​above).+**Note:** for the sake of simplicity create this directory in the same level as the source tree (as shown above).
  
 **4.** For Linux systems you must choose the build configuration:​ **4.** For Linux systems you must choose the build configuration:​
 <code bash> <code bash>
-$ cmake -G "Unix Makefiles"​ -DCMAKE_BUILD_TYPE:​STRING="​Release"​ -DCMAKE_INSTALL_PREFIX:​PATH="/​home/​user/​myinstall/​terralib"​ -DCMAKE_PREFIX_PATH:​PATH="/​home/​user/​mylibs"​ ../​codebase/​build/​cmake+$> cmake -G "Unix Makefiles"​ -DCMAKE_BUILD_TYPE:​STRING="​Release"​ -DCMAKE_INSTALL_PREFIX:​PATH="/​home/​user/​myinstall/​terralib"​ -DCMAKE_PREFIX_PATH:​PATH="/​home/​user/​mylibs"​ ../​codebase/​build/​cmake 
 +:: or inform some paths before as bellow: 
 +$> QT5_BASE_DIR="/​home/​user/​Qt/"​ PATH=/​home/​user/​Qt/​5.12.3/​gcc_64/​bin/:​$PATH ​cmake -G "Unix Makefiles"​ -DCMAKE_BUILD_TYPE:​STRING="​Release"​ -DCMAKE_INSTALL_PREFIX:​PATH="/​home/​user/​myinstall/​terralib"​ -DCMAKE_PREFIX_PATH:​PATH="/​home/​user/​mylibs"​ ../​codebase/​build/​cmake
 </​code>​ </​code>​
  
 **5.** Building (with 4 process in parallel): **5.** Building (with 4 process in parallel):
 <code bash> <code bash>
-$ make -j 4+$make -j 4 
 +:: or inform some paths before as bellow: 
 +$> QT5_BASE_DIR="/​home/​user/​Qt/"​ PATH=/​home/​user/​Qt/​5.12.3/​gcc_64/​bin/:​$PATH make
 </​code>​ </​code>​
  
 **6.** Installing: **6.** Installing:
 <code bash> <code bash>
-$ make install+$make install
 </​code>​ </​code>​
  
 **7.** Uninstalling:​ **7.** Uninstalling:​
 <code bash> <code bash>
-$ make uninstall+$make uninstall
 </​code>​ </​code>​
  
Line 251: Line 255:
 </​code>​ </​code>​
  
-===== Building on Mac OS X El Capitan and Sierra =====+===== Building on Mac OS X  Sierra =====
  
 **1.** Open a Command Prompt (Shell). **1.** Open a Command Prompt (Shell).
Line 271: Line 275:
 **4.** For Mac OS X systems you must choose the build configuration:​ **4.** For Mac OS X systems you must choose the build configuration:​
 <​code>​ <​code>​
-$ cmake -G "Unix Makefiles"​ -DCMAKE_BUILD_TYPE:​STRING="​Release"​ -DCMAKE_INSTALL_PREFIX:​PATH="/​Users/​user/​myinstall/​terralib"​ -DCMAKE_PREFIX_PATH:​PATH="/​Users/​user/​mylibs;/​Users/​user/​mylibs/​terralib5/​lib/​cmake;/​Users/​user/​Qt5.4.1/​5.4/​clang_64/​lib/​cmake"​ ../​codebase/​build/​cmake+$ cmake -G "Unix Makefiles"​ -DCMAKE_BUILD_TYPE:​STRING="​Release"​ -DCMAKE_INSTALL_PREFIX:​PATH="/​Users/​user/​myinstall/​terralib"​ -DCMAKE_PREFIX_PATH:​PATH="/​Users/​user/​mylibs;/​Users/​user/​mylibs/​terralib5/​lib/​cmake;/​Users/​user/​Qt5.12.3/​lib/​cmake"​ ../​codebase/​build/​cmake
 </​code>​ </​code>​
  
Line 292: Line 296:
  
 **Notes:** **Notes:**
-  * You have to specify valid paths for **CMAKE_PREFIX_PATH**. If you have a Qt version installed as a framework in your home directory, you have to tell CMake where to locate its CMake support. For instance, if you have Qt version 5.4.installed, you have to add to **CMAKE_PREFIX_PATH** the following directory:+  * You have to specify valid paths for **CMAKE_PREFIX_PATH**. If you have a Qt version installed as a framework in your home directory, you have to tell CMake where to locate its CMake support. For instance, if you have Qt version 5.12.installed, you have to add to **CMAKE_PREFIX_PATH** the following directory:
 <​code>​ <​code>​
-/​Users/​user/​Qt5.4.1/​5.4/​clang_64/lib/cmake+/​Users/​user/​Qt5.12.3/lib/cmake
 </​code>​ </​code>​
  
Line 309: Line 313:
  
  
-===== Building on Microsoft Windows with Microsoft Visual C++ 2013 =====+===== Building on Microsoft Windows with Microsoft Visual C++ 2013 (not supported anymore)=====
  
-**1.** Microsoft Visual Studio 2013 C++ users can download and unpack the suitable third-party libraries compiled for building 64-bit version of TerraLib with Qt5.4.support. Choose the right version specified by ''​x.y.z''​ at terralib-x.y.z-3rdparty-msvc-2013-win64:​+**1.** Microsoft Visual Studio 2013 C++ users can download and unpack the suitable third-party libraries compiled for building 64-bit version of TerraLib with Qt5.12.support. Choose the right version specified by ''​x.y.z''​ at terralib-x.y.z-3rdparty-msvc-2013-win64:​
  
   *[[http://​www.dpi.inpe.br/​terralib5/​terralib5-3rdparty/​|Choose the right version specified by x.y.z]]   *[[http://​www.dpi.inpe.br/​terralib5/​terralib5-3rdparty/​|Choose the right version specified by x.y.z]]