Arquivo atualizado para o uso do CMake. Para QMake, verifique as versões anteriores deste documento.
Alguns pacotes necessários para compilar e usar o TerraOGC. Os nomes podem variar de distro para distro. Aqui seguem os do Mandriva:
Obs: a partir da versão 12.3 do OpenSUSE recomenda-se adicionar o repositório App:Geo e instalar o libgeotiff-devel, com os fontes da LibGeoTIFF, e libjpeg8-devel.
# rpmbuild -ta xerces-c-src_2_8_0.tar.gz
/usr/local/
, inclusive o zip.hObtendo e compilando a TerraLib.
Procedimento usando na versão 4.2.2, mas pode ser usada em outras versões posteriores com as devidas adaptações.
Crie uma pasta projetos
e crie a pasta para a TerraLib. Baixe a última TAG estável (nesse caso a 4.2.2). Use o CMake para compilar o projeto.
mkdir terralib422 cd terralib422 svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/build svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/src svn export https://svn.dpi.inpe.br/terralib/tags/v-4-2-2/extensions mkdir cmake && cd cmake cmake ../build/cmake
Após gerar esse código, é necessário mudar alguns parâmetros no arquivo terralib/cmake/CMakeCache.txt
. Alguns caminhos talvez precisem ser adaptados ao seu sistema:
Rodar o cmake de novo:
cmake ../build/cmake
e verificar se há algum erro de compilação. No meu ambiente eu ignorei a GDAL e diversas outras libs não usadas pelo TerraOGC.
Corrigir os seguintes arquivos da TerraLib 4.2.2:
Inserir a tag:
#include <unistd.h>
em src/terralib/kernel/TeConnectionPool.cpp e src/terralib/kernel/yyTemporal.cpp
Trocar o EPSG no arquivo TeProjection.cpp: 4979 → 4326 (Linhas 186 e 1435)
Corrigir a linha do arquivo TePostgreSQL.cpp:
L728:
createTable += "\"" + (*it).rep_.name_ + "\" ";
L1030:
string q = "INSERT INTO "+tableName + " ( \""+ attrs+"\") " + " VALUES ("+values+") ";
L977:
attrs += "\" , \"";
Corrigir o arquivo TePostGIS.cpp: L334:
createTable += "\"" + (*it).rep_.name_ + "\" ";
L1484:
create = "CREATE INDEX sp_idx_" + table + " ON " + table + " USING GIST (" + column + ")";
Esta última observação parece (L1484) ser aplicável ao PostGIS 2+.
Depois é só compilar
make
Obtendo e compilando o TerraOGC. Você pode baixar a versão do TerraOGC compatível com a versão do TerraLib que você usa. Para a última versão usar o trunk
do SVN.
Baixa o TerraOGC
cd projetos svn co https://svn.dpi.inpe.br/terraogc/trunk/ terraogc
Prepara a TerraLib: duas opções, mover ou linkar. Para DEV melhor linkar.
cd terraogc mkdir lib && cd lib ln -s ../../terralib422/cmake/libterramanager.so . ln -s ../../terralib422/cmake/libterralib.so . ln -s ../../terralib422/cmake/libterralib_shp.so .
E ajusta no ~/bashrc:
export LD_LIBRARY_PATH=<your_path>projetos/terraogc/lib
Na produção, mover para lib.
Após isso, rodar o cmake para o TerraOGC. Ele será armazenado na pasta terraogc/bin, para evitar misturar com os demais pacotes de desenvolvimento.
cd terraogc/bin mkdir cmake && cd cmake cmake ../../build/cmake
Editar o terraogc/bin/cmake/CMakeCache.txt
. Aqui são poucos parâmetros para ajuste:
Roda o CMake de novo e compila:
cmake ../../build/cmake make
Após compilado, tudo fica nas subpastas do terraogc/bin/cmake/
. Duas opções, mover ou linkar. Para DEV melhor linkar.
cd terraogc/lib find ../bin/cmake -name "*.so" -exec ln -s {} . \; cd terraogc/bin find cmake -name "*.cgi" -exec ln -s {} . \;
Na produção, copiar ou mover para bin e lib ao invés de linkar.