Usando cmake no linux

1

Eu não gosto de cmake. Agora que isso é dito, aqui está a pergunta:

1) Como faço para ajustar a configuração usando o cmake? Usando make all que é necessário é configurar o --help para obter comandos para configurar a configuração corretamente antes de executar make, como isso é feito com cmake ou é mesmo possível?

2) Usando o make eu posso criar um pacote de instalação para minha distribuição usando, make DESTDIR = / directory / build / install, e os arquivos são instalados em / directory / build então eu facilmente entro em / build e faço o pacote para instalação e remoção do programa mais tarde se necessário, mas com o cmake não vejo como fazer isso e o programa é inamovível.

Suponho que há uma maneira de fazer essas coisas, mas ainda não as encontrei. Obrigado

    
por Widgeteye The Terrible 30.12.2013 / 17:43

1 resposta

2

Suponha que você extraiu algum pacote de origem project-1.0.0.tar.gz que criou um diretório com um nome semelhante. Quando eu uso o cmake, normalmente eu crio um diretório chamado build no qual os arquivos .o etc serão armazenados, para não contaminar o diretório fonte:

/home/user/project-1.0.0> mkdir build
/home/user/project-1.0.0> cd build

A partir desse diretório, eu executo o ccmake (com dois c's), que é a interface do ncurses para a configuração do cmake. Desde que você tenha que especificar onde o CMakeLists.txt principal está, neste exemplo o comando seria

/home/user/project-1.0.0/build> ccmake ..

Isso inicia a interface do usuário que inicialmente não mostrará nada.

Então você precisa pressionar 'c' (configure) para deixar o cmake começar a descobrir as coisas. Quando isso é feito, você deve ver vários nomes de variáveis cmake aparecerem, junto com seus valores. Você provavelmente não precisará alterá-las, eu normalmente preencho a variável CMAKE_BUILD_TYPE e a defino como release (para configurações de compilador mais otimizadas)

Você precisará pressionar 'c' pelo menos mais uma vez (possivelmente mais, dependendo do que o script cmake faz), até que todos os * antes dos valores das variáveis desaparecerem. Então, você pode pressionar 'g' para gerar os makefiles.

Quando os makefiles são criados, tudo provavelmente funciona conforme o esperado. Você pode fazer make , make install , make install DESTDIR=/my/new/dest/dir .

Além da interface do usuário ncurses, existe também uma interface de usuário baseada no Qt.

    
por 30.12.2013 / 18:27

Tags