====== Tutorial de Build das Bibliotecas de Terceiros para Windows ======
**Resumo:** Este tutorial apresenta como as bibliotecas de terceiros (ou dependências) podem ser construídas para o ambiente de desenvolvimento do Microsoft Visual C++ 2013.
===== zlib =====
* **Site:** http://www.zlib.net.
* **Versão:** 1.2.8.
* **Dependências:** N/A.
* **Requerido por:** LibTIFF, libpng, HDF4, Curl.
* **Modos de compilação:** CMake, Makefile e Solution.
__**Build Windows 32-bit**__
Entrar no command prompt do Visual Studio 2013 modo 32-bit:
cd \msvc2010-libs\zlib
mkdir build-32 && cd build-32
cmake .. -G"Visual Studio 10" -DCMAKE_INSTALL_PREFIX="C:\msvc2010-libs\zlib-win32"
msbuild /P:Configuration=Debug INSTALL.vcxproj
msbuild /P:Configuration=Release INSTALL.vcxproj
__**Build Windows 64-bit**__
Entrar no command prompt do Visual Studio 2013 modo 64-bit:
cd \msvc2010-libs\zlib
mkdir build-64 && cd build-64
cmake .. -G "Visual Studio 10 Win64" -DCMAKE_INSTALL_PREFIX="C:\msvc2010-libs\zlib-win64"
msbuild /P:Configuration=Debug INSTALL.vcxproj
msbuild /P:Configuration=Release INSTALL.vcxproj
__**Observações**__
* Dica: http://stackoverflow.com/questions/10507893/libzip-with-visual-studio-2010
===== iconv =====
* **Dependências:** N/A.
* **Requerido por:** SpatiaLite, LibXML2, Freexl
* **Modos de compilação:** Solution.
Entrar no command prompt do Visual Studio 2013 modo 64-bits:
cd iconv
msbuild /m /p:Configuration=Debug myIconv.sln
msbuild /m /p:Configuration=Release myIconv.sln
__**Observações**__
* Dica: A biblioteca foi alterada para funcionamento no windows.
* Para a libiconv foi criado um projeto do visual studio.
===== freexl =====
* **Dependências:** iconv.
* **Requerido por:** GDAL, SpatiaLite
* **Modos de compilação:** NMake Makefile.
Entrar no command prompt do Visual Studio 2013 modo 64-bits:
cd freexl-1.0.1
nmake /f makefile.vc
:: limpa para a construção em Debug
nmake /f makefile.vc clean
:: Construção em Debug
nmake /f makefile.vc DEBUG=1
__**Observações**__
* As duas configurações da biblioteca freexl são construídas no mesmo diretório. Isso siginifica que precisamos limpar o diretório para construí-la no modo debug.
* Alterações foram feitas no arquivo nmake.opt para refletir o ambiente de build.
===== proj4 =====
* **Dependências:** N/A.
* **Requerido por:** GDAL, GeoTiff, SpatiaLite
* **Modos de compilação:** NMake Makefile, CMake.
Entrar no command prompt do Visual Studio 2013 modo 64-bits:
cd proj-4.9.1
:: Passa o parâmetro de local de instalação
nmake /f makefile.vc install-all INSTDIR=%TERRALIB_DEPENDENCIES_DIR%
:: limpa para a construção em Debug
nmake /f makefile.vc clean
:: Construção em Debug
nmake /f makefile.vc DEBUG=1
__**Observações**__
* Arquivo **nmake.opt** foi alterado.
===== geos =====
* Versão 3.4.2
==== Dependências ====
* N/A
==== Modos de compilação ====
* cmake
* makefile
* nmake.opt
==== Observações ====
- Foi usado o projeto Makefile para NMake para compilar.
===== libpng =====
* Versão 1.5.17
==== Dependências ====
* zlib
==== Modos de compilação ====
* cmake
* makefile
==== Observações ====
- Usamos o CMake para gerar o projeto do Visual Studio.
===== libjpeg =====
* Versão 9a
==== Dependências ====
* zlib
==== Modos de compilação ====
* cmake
* makefile
==== Observações ====
- Precisamos alterar o projeto original para NMake para ajustar a configuração Debug.
===== libtiff =====
* Versão 4.0.3
==== Dependências ====
* zlib
* jpeg
==== Modos de compilação ====
* makefile
* nmake.opt
==== Observações ====
- Usamos o Makefile para NMake para compilar.
===== geotiff =====
* Versão 1.4.0
==== Dependências ====
* zlib
* libtiff
* proj
==== Modos de compilação ====
* cmake
* makefile
==== Observações ====
- Usamos o projeto Makefile para NMake para compilar.
===== szip =====
* Versão 2.1
==== Dependências ====
* N/A
==== Modos de compilação ====
* cmake
* Solution - Visual Studio 2008
==== Observações ====
- Não compilamos no Windows.
===== OpenSSL =====
* Versão x
==== Dependências ====
* zlib
==== Modos de compilação ====
* cmake
* makefile
==== Observações ====
- Para geração dos Makefiles e configurações das bibliotecas é necessário ter instalado o Perl. Assim é possível usar as rotinas para gerar os Makefiles.
- Para não exigir a instalação do Perl, geramos as duas configurações (debug, release) e renomeamos os arquivos gerados com a extensão **.in
** .
- Assim, no script renomeamos os arquivos para sua forma original e usamos o NMake para compilar.
- Toda a explicação de como gerar os arquivos de Makefile estão descritos no arquivo INSTALL.W64 .
- Em todo o ambiente das third-parties existe um arquivo **.obj**. Esse arquivo não pode ser removido, porque ele faz parte da compilação completa da biblioteca.
- Caso o arquivo seja removido o ambiente de compilação falhará e será necessário regerar as configurações. E para fazer todo o processo é preciso o Perl.
===== curl =====
* Versão 7.42.1
==== Dependências ====
* OpenSSL
* zlib
==== Modos de compilação ====
* cmake
==== Observações ====
- Usamos o projeto Makefile para NMake para compilar.
===== icu =====
* Versão 52
==== Dependências ====
* N/A
==== Modos de compilação ====
* Solution
==== Observações ====
- Usamos o projeto do Visual Studio fornecido pela biblioteca.
===== xerces-c =====
* Versão 3.1.1
==== Dependências ====
* icu
* curl
==== Modos de compilação ====
* Solution - Visual Studio 2010
==== Observações ====
- Na pasta **projects/Win32/VC10/xerces-all** existe um arquivo de solution
- Para usar a CURL e a ICU, foi preciso alterar alguns arquivos do projeto do Visual Studio.
- Esse novo projeto está na subpasta VC12 da pasta de projetos para Windows.
- Para suporte as mensagens pela ICU, precisamos executar dois programas gerados na compilação da ICU.
- Esses programas geram uma lib que deve ser linkada com a Xerces.
- Antes de começar a compilação, precisamos gerar essa lib com as definições do Xerces.
===== libxml2 =====
* Versão 2.9.1
==== Dependências ====
* icu, sem python
==== Modos de compilação ====
* Solution - Visual Studio 2010
==== Observações ====
- Na pasta **win32/VC10** a solution **libxml2.sln**
===== libxlst =====
* Versão 1.1.28
==== Dependências ====
* libxml2
==== Modos de compilação ====
* makefile
==== Observações ====
- Na pasta **libxslt-1.1.28/win32** o arquivo **Makefile.msvc**
===== Boost =====
* Versão 1.58.00
==== Dependências ====
* icu
* iconv
* bzip2
==== Modos de compilação ====
* N/A
==== Observações ====
- Possui mecânismo de compilação próprio acionado pela execução do arquivo **bootstrap.bat**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== PostgreSQL =====
* Versão 9.4.1
==== Dependências ====
* libxml2
* libxslt
* e2fs (uuid)
==== Modos de compilação ====
* makefile
==== Observações ====
- Na pasta **src** o arquivo **win32.mak**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== hdf4 =====
* Versão 4.2.9
==== Dependências ====
* szlib
* zlib
* jpeg
* netcdf
==== Modos de compilação ====
* cmake
==== Observações ====
- Arquivos **.bat** para build na pasta **windows**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== sqlite =====
* Versão 3.8.10.1
==== Dependências ====
* N/A
==== Modos de compilação ====
* makefile
==== Observações ====
- Na pasta **tea/win** o arquivo **makefile.vc**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== SpatiaLite =====
* Versão 4.2.0
==== Dependências ====
* iconv
* freexl
* sqlite3
* proj
* geos
==== Modos de compilação ====
* makefile
* nmake.opt
==== Observações ====
- Na pasta **tea/win** o arquivo **makefile.vc**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== GDAL =====
* Versão 1.11.2
==== Dependências ====
* freexl
* pg_config
* png
* jpeg
* libtiff
* geotiff
* curl
* xerces
* geos
* sqlite3
* spatialite
* hdf4
* xml2-config
==== Modos de compilação ====
* makefile
* nmake.opt
==== Observações ====
- Na pasta **tea/win** o arquivo **makefile.vc**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== GDAL =====
* Versão 2.0.1
==== Dependências ====
* freexl
* pg_config
* png
* jpeg
* libtiff
* geotiff
* curl
* xerces
* geos
* sqlite3
* spatialite
* hdf4
* xml2-config
==== Modos de compilação ====
* makefile
* nmake.opt
==== Observações ====
- Na pasta **tea/win** o arquivo **makefile.vc**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== cppunit =====
* Versão 1.12.1
==== Dependências ====
* N/A
==== Modos de compilação ====
* Solution
==== Observações ====
- N/A
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== qtpropertybrowser =====
* Versão 2.6
==== Dependências ====
* QT 5
==== Modos de compilação ====
* qmake
==== Observações ====
- O comando **qmake** tem de ser feito na pasta **buildlib**, logo após **nmake /f Makefile.Debug** ou **nmake /f Makefile.Release**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== Lua =====
* Versão 5.2
==== Dependências ====
* N/A
==== Modos de compilação ====
* N/A
==== Observações ====
- N/A
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== QScintilla =====
* Versão 2.8
==== Dependências ====
* QT 5
==== Modos de compilação ====
* makefile
* qmake
==== Observações ====
- O comando **qmake** tem de ser feito na pasta **buildlib**, logo após **nmake /f Makefile.Debug** ou **nmake /f Makefile.Release**
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== QWT =====
* Versão 6.1.2
==== Dependências ====
* QT 5
==== Modos de compilação ====
* makefile
* qmake
==== Observações ====
- N/A
==== Passos para compilação ====
- Passo 1
- Passo 2
- Passo n
===== Usando o Script BAT para Compilação das Bibliotecas =====
Baixe o pacote de bibliotecas utilizada pela equipe de desenvolvimento da TerraLib para Windows versão 64-bit: [[http://www.dpi.inpe.br/terralib5-devel/3rdparty/terralib-3rdparty-win64.zip|terralib-3rdparty-win64.zip]].
Descompacte o pacote obtido acima numa pasta: ''C:\TerraLib5\Dependencies''.