====== 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''.