Instalar programa em diretório específico com o CMake

1. Instalar programa em diretório específico com o CMake

Rodrigo
rudregues

(usa Manjaro Linux)

Enviado em 30/09/2013 - 12:48h

Então galera, a forma "clássica" de compilar programas para Linux é:
$ ./configure
$ make
# make install

Se eu quiser que fique tudo instalado num diretório específico uso o ./configure --prefix=PATH

Entretanto, o programa que to tentando instalar por compilação(qgis) usa cmake... tendo esta estrutura:

$ ccmake ..
$ make
# make install

Quando rodo ccmake .. existe um parâmetro chamado CMAKE_INSTALL_PREFIX, ele é equivalente ao --prefix=PATH do ./configure?
Não sei se entendi direito, mas esse post http://stackoverflow.com/questions/6241922/how-to-use-cmake-install-prefix fala sobre isso.

Ou será que pra instalar tudo no diretório PATH o parâmetro é outro?


  


2. Re: Instalar programa em diretório específico com o CMake

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 30/09/2013 - 13:01h

tu chegou a verificar algo na manpage do cmake ?



3. Re: Instalar programa em diretório específico com o CMake

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 30/09/2013 - 13:34h

rudregues escreveu:

Então galera, a forma "clássica" de compilar programas para Linux é:
$ ./configure
$ make
# make install

Se eu quiser que fique tudo instalado num diretório específico uso o ./configure --prefix=PATH

Entretanto, o programa que to tentando instalar por compilação(qgis) usa cmake... tendo esta estrutura:

$ ccmake ..
$ make
# make install

Quando rodo ccmake .. existe um parâmetro chamado CMAKE_INSTALL_PREFIX, ele é equivalente ao --prefix=PATH do ./configure?
Não sei se entendi direito, mas esse post http://stackoverflow.com/questions/6241922/how-to-use-cmake-install-prefix fala sobre isso.

Ou será que pra instalar tudo no diretório PATH o parâmetro é outro?


# make install DESTDIR=/diretorio 



4. Re: Instalar programa em diretório específico com o CMake

Rodrigo
rudregues

(usa Manjaro Linux)

Enviado em 30/09/2013 - 13:35h

danniel-lara escreveu:

tu chegou a verificar algo na manpage do cmake ?

CMAKE_INSTALL_PREFIX: Install directory used by install.
If "make install" is invoked or INSTALL is built, this directory is pre-pended onto all install directories. This variable defaults to /usr/local on UNIX and c:/Program Files on Windows.
http://www.cmake.org/cmake/help/v2.8.8/cmake.html#variable%3aCMAKE_INSTALL_PREFIX

É isso que diz, mas não sei o que significa realmente... na verdade eu nem uso o cmake, pois nunca utilizo makefiles pra nada (só programo o básico em C, nada de C++), então nunca precisei usar o cmake. Mas só dá pra compilar o qgis usando cmake ou editando uma makefile (que deve ser mais difícil ainda).


5. Re: Instalar programa em diretório específico com o CMake

Willian
ThePinkShark

(usa Slackware)

Enviado em 30/09/2013 - 13:41h

O que foi dito acima é válido:

make isntall DESTDIR=/diretorio

Entretanto o cmake possui um metodo de configuração próprio o ccmake. Algo importante o cmake requer um diretório a parte para a compilação, evite compilar no mesmo diretório. A sequencia seria mais ou menos esta:

tar -xf batatinha.com.casca
cd batatinha
mkdir build-batatinha
cd build-batatinha
cmake ../
ccmake .
make
make install


6. Re: Instalar programa em diretório específico com o CMake

Rodrigo
rudregues

(usa Manjaro Linux)

Enviado em 30/09/2013 - 13:42h

lcavalheiro escreveu:
# make install DESTDIR=/diretorio 


Esqueci de falar uma coisa muito importante. Esse programa tem uma versão 1.8 instalada pelo próprio sistema, quando digo que quero instalar outra versão, 2.0.1 no caso, é com tudo dela dentro de um diretório e de forma que não seja prejudicial pra versão 1.8.

No caso então, bastaria eu seguir esse roteiro abaixo?
$ ccmake ..
$ make
# make install DESTDIR=/diretorio



7. Re: Instalar programa em diretório específico com o CMake

Willian
ThePinkShark

(usa Slackware)

Enviado em 30/09/2013 - 13:48h

o DESTDIR serve para canalizar a isntalação para um diretório especifico mas ele não altera a árvore de dependências, logo o programa instalado usando DESTDIR tem grande chances de não funcionar. DESTDIR é normalmente utilizado para verificação de estrutura de diretórios do comando make isntall e para criação de pacotes.
O ccmake é o equivalente do ./configure e as configurações de destino são feitas por ele da mesmma forma (a não ser pelo fator "gráfico" do ccmake).


8. Re: Instalar programa em diretório específico com o CMake

Rodrigo
rudregues

(usa Manjaro Linux)

Enviado em 30/09/2013 - 14:13h

ThePinkShark escreveu:

o DESTDIR serve para canalizar a isntalação para um diretório especifico mas ele não altera a árvore de dependências, logo o programa instalado usando DESTDIR tem grande chances de não funcionar. DESTDIR é normalmente utilizado para verificação de estrutura de diretórios do comando make isntall e para criação de pacotes.
O ccmake é o equivalente do ./configure e as configurações de destino são feitas por ele da mesmma forma (a não ser pelo fator "gráfico" do ccmake).

Vamos supor então que a versão 1.8 precisa do QT3, pacote GDAL3.5 e PROJ4.X pra funcionar e eles já estão instalados.
1) Se a versão 2.0.1 tiver essas dependências ela funcionará com certeza né?
2) Se ela tiver QT3, pacote GDAL3.5 e PROJ4.X e, ainda, php2.0 ao contrário da outra, basta então eu instalar o php2.0 que ela funcionará e sem atrapalhar a versão 1.8?

Outra dúvida. Mas então tanto faz eu usar o DESTDIR apenas ou então usar o ccmake apenas para escolher o diretório de instalação?



9. Re: Instalar programa em diretório específico com o CMake

Willian
ThePinkShark

(usa Slackware)

Enviado em 30/09/2013 - 14:22h

Na maioria dos programas a busca por dependências é feita de forma dinâmica pelo próprio script de configuração (isso inclui o cmake), logo se as dependências forem supridas ele irá compilar de forma correta independente de outros pacotes utilizarem a mesma dependência ou de compilações anteriores.

Bom, quanto ao DESTDIR, foi como eu disse acima, ele não respeita a árvore de dependências pois o proposito dele é canalizar o make install para um lugar diferente. É realmente recomendado utilizar o DESTDIR somente para criação de pacotes ou para processo de debug.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts