Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:documentation:devguide:build [2019/12/18 18:43] marisa |
wiki:documentation:devguide:build [2024/12/04 17:22] (current) castejon [Building Plugin TerraPrint with Visual C++ 2017] |
||
---|---|---|---|
Line 2: | Line 2: | ||
Make sure you have all the third-party library dependencies listed in the section **[[[[:wiki:documentation:devguide:dependencies|Dependencies]]** before trying to build TerraLib/TerraView. | Make sure you have all the third-party library dependencies listed in the section **[[[[:wiki:documentation:devguide:dependencies|Dependencies]]** before trying to build TerraLib/TerraView. | ||
- | |||
- | After **[[:wiki:documentation:devguide:cloning|cloning the TerraLib repository]]**, choose the right **[[:wiki:documentation:devguide:branches_and_tags|branch or tag]]** to work on. | ||
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. | ||
TerraLib 5.5 build has been tested on: | TerraLib 5.5 build has been tested on: | ||
- | * Linux Ubuntu 18.04 and 16.04 | + | * Linux Ubuntu 18.04 |
* Mac OS X 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 91: | Line 89: | ||
* 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 98: | Line 96: | ||
===== Adding Plugin TerraPrint as part of TerraView/TerraLib ===== | ===== Adding Plugin TerraPrint as part of TerraView/TerraLib ===== | ||
- | ==== Building Plugin TerraPrint with Visual C++ 2017 ==== | ||
- | TerraPrint is a plugin originally developed externally and its source code is maintained in a separated directory structure. As it depends on TerraLib, firstly it is necessary to built TerraPrint according with the instructions below: | + | ===== Building on Linux Ubuntu ===== |
- | + | ||
- | *Make a new folder to host TerraPrint source code: | + | |
- | <code bash> | + | |
- | $ mkdir C:/TPrint | + | |
- | $cd TPrint | + | |
- | </code> | + | |
- | + | ||
- | * Make a local copy of TerraPrint repository and go to the right branch: | + | |
- | <code bash> | + | |
- | $ GIT_SSL_NO_VERIFY=true git clone -b release-1.4 https://gitlab.dpi.inpe.br/terralib/terraprint.git . | + | |
- | $ git pull | + | |
- | </code> | + | |
- | + | ||
- | *Open the CMake GUI: | + | |
- | * Set the "Where is the source code" edit text to: | + | |
- | <code> | + | |
- | C:/TPrint/build/cmake | + | |
- | </code> | + | |
- | + | ||
- | * Set the "Where to build the binaries" edit text to: | + | |
- | <code> | + | |
- | C:/TPrint_build | + | |
- | </code> | + | |
- | + | ||
- | * Mark the "Grouped" and "Advanced" check box. | + | |
- | + | ||
- | * 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\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^ | + | |
- | |third-party| ''c:\terralib5\3rdparty''| | + | |
- | |Terralib4 | ''c:\terralib5\3rdparty\lib\cmake\terralib-4.2.2''| | + | |
- | |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\5.12.3\msvc2017_64\lib\cmake\Qt5LinguistTools''| | + | |
- | + | ||
- | * Click in "Configure" button. | + | |
- | * Select option "Visual Studio 15 2017 Win64" | + | |
- | * If the output folder (C:/TPrint_build) does not exist, CMake GUI will prompt you for creating it: just confirm the creation. | + | |
- | + | ||
- | * if no problem occurs, set the following variables: | + | |
- | + | ||
- | ^Entry^Variable^Value^ | + | |
- | |CPACK| CPACK_BINARY_NSYS| ON ((package generator (used in release)-disable the others))| | + | |
- | |TERRALIB| TERRALIB_BUILD_AS_BUNDLE| OFF| | + | |
- | |TERRALIB| TERRALIB_BUILD_EXAMPLES_ENABLED| OFF| | + | |
- | |TERRALIB| TERRALIB_BUILD_LAYOUT_TEST_ENABLED| OFF| | + | |
- | |TERRALIB| TERRALIB_MOD_LAYOUT_ENABLED |ON| | + | |
- | |TERRALIB| TERRALIB_MOD_QT_PLUGINS_ENABLED |ON| | + | |
- | |TERRALIB| TERRALIB_TRACK_3RDPARTY_DEPENDENCIES| ON| | + | |
- | |TERRALIB_DIR_VAR_NAME|<remove it because you will use your build version specified in terralib_DIR>| | + | |
- | + | ||
- | * Press ''Configure'' again. | + | |
- | * Some entries might be filled automatically by cmake with the wrong values. | + | |
- | Check under ''Ungrouged Entries'' which terralib is set ((in my case an old one were set C:/Program Files/terralib5.2.2/lib/cmake/terralib-5.2.2)): | + | |
- | and set the one you just built before: | + | |
- | + | ||
- | |terralib_DIR|''c:\terralib5\build'' |building dir used by terralib/terraview| | + | |
- | + | ||
- | * Press ''Configure'' again. | + | |
- | * Press ''Generate'': this will generate a solution file for Visual Studio 2017 under the folder ''C:/TPrint_build'' ((The location set in "Where to build the binaries")). | + | |
- | * Press ''Open Project'' to open Visual C++ interface using ''C:/TPrint_build\terralib_layout.sln'' ((or Open the solution file located at ''C:/TPrint_build\terralib_layout.sln'' - TerraPrint is internally defined by terralib_layout_DIR)) | + | |
- | + | ||
- | * On Visual Studio C++ 2017 interface, build ''ALL_BUILD'' on ''debug'' version first (some problems must be solved here) and afterwards the ''release'' version. | + | |
- | * Close Visual Studio | + | |
- | + | ||
- | * Go back to **Terralib/TerraView** CMAKE and set the path to the plugin just built: | + | |
- | + | ||
- | + | ||
- | |terralib_layout_DIR| ''C:/TPrint_build''| informe where is Directory containing a CMake configuration file for TerraPrint| | + | |
- | + | ||
- | * Press ''Configure'' and ''Generate'' to generate the solution including the plugin as part of package. | + | |
- | * Press ''Open Project'' to open Visual C++ | + | |
- | + | ||
- | * On Visual Studio C++ 2017 interface, build ''ALL_BUILD'' to build TerraView with TerraPrint as its plugin | + | |
- | * Rebuild the project called PACKAGE to generate the TerraView installer with TerraPrint plugin. | + | |
- | + | ||
- | * 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 18.04 and 16.04 with GNU G++ ===== | + | |
**1.** Open a Command Prompt (Shell). | **1.** Open a Command Prompt (Shell). | ||
Line 190: | Line 108: | ||
**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> | ||
Line 199: | Line 117: | ||
**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 173: | ||
</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 309: | Line 231: | ||
- | ===== 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.12.3 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.3 support. Choose the right version specified by ''x.y.z'' at terralib-x.y.z-3rdparty-msvc-2013-win64: |