cmake-ide é um pacote para ativar os recursos do IDE em EMACs para projetos de CMake. Ele também suporta projetos que não sejam de cápsulas, desde que um banco de dados de compilação seja gerado fora da banda. Ele usa outros pacotes para fazer seu levantamento pesado, em uma combinação de:
cmake-ide definirá variáveis e chama funções para os pacotes dependentes instalados.
Ele funciona executando o CMake no EMACS para obter os sinalizadores do compilador necessário para passar para as outras ferramentas. Como todas as dependências são especificadas nos scripts CMake, não há necessidade de manter um sistema de rastreamento de dependência paralelo para o EMACS. Basta perguntar ao cmake.
auto-complete-clang , flycheck e outros para um projeto CMake automaticamente. Dificilmente qualquer configuração necessária.cmake-ide-build-dir para ser definido.cmake-ide-delete-file permite que você tenha a mesma conveniência ao excluir arquivos. Não consigo descobrir uma maneira melhor de fazer isso. Obviamente, simplesmente excluindo o arquivo significa ter que executar o CMake novamente manualmente para registrar a alteração na lista de arquivos a serem compilados.cmake-ide-build-dir estiver definido, é considerado o diretório de compilação para executar o cmake. Além disso, isso fará com que cmake-ide-compile compile o projeto lá. Ele detecta automaticamente o ninja e faz compra e define o comando de compilação de acordo. O comando a ser usado pode ser personalizado definindo a variável cmake-compile-command .cmake-ide pode usar o RTAGS para encontrar definições, também usando o CLANG. Se (require 'rtags) for chamado antes cmake-ide-setup , ele iniciará automaticamente o servidor RTAGS ( rdm ) e ligará para rc -J para indexar os arquivos do projeto para o 0-Config "Salt to Definition" e tudo o mais oferece. Isso só funciona se rdm e rc e no caminho do sistema ou se cmake-ide-rdm-executable e cmake-ide-rc-executable forem personalizados corretamente. cmake-ide pode criar automaticamente diretórios de construção para você-no diretório TMP do sistema ou sob cmake-ide-build-pool-dir (se definido). Por padrão, todos os diretórios de construção criados automaticamente (independentemente de onde criados) terão nomes temporários e exclusivos, que mudarão a cada nova sessão e, portanto, não serão reutilizáveis. Você pode, no entanto, definir cmake-ide-build-pool-use-persistent-naming usar um esquema de nomeação reproduzível que se baseia no caminho do projeto e não mudará desde que o caminho do projeto seja o mesmo. Dessa forma, você pode reutilizar o diretório de construção.
Usando cmake-ide-build-pool-dir e cmake-ide-build-pool-use-persistent-naming , você pode acabar com a necessidade de configurar um diretório de construção por projeto com variáveis locais de diretório (por exemplo).
Use .dir-locals.el para definir as variáveis cmake-ide-project-dir e cmake-ide-build-dir (use caminhos absolutos).
.dir-cocals.el: ((nulo ((cmake-build-Dir. "/path/to/build/dir") (cmake-vide-project-dir. "/path/to/project/dir"))))))))))))))))))))))))))))
Se um arquivo chamado compile_commands.json existir no cmake-ide-build-dir , ele funcionará tão bem quanto para projetos de CMake. Bear (https://github.com/rizsotto/bear) pode ser usado para gerar um compile_commands.json a partir de um comando make.
Instale de Melpa ou Melpa estável com:
M-x package-install RET cmake-ide.
Adicione isso ao seu .emacs / init.el :
(require 'rtags) ;; optional, must have rtags installed
(cmake-ide-setup)
Se for definido cmake-ide-flags-c ou cmake-ide-flags-c++ , eles serão adicionados a ac-clang-flags e company-clang-arguments . Essas variáveis devem ser definidas. Particularly, they should contain the system include paths (eg '("-I/usr/include/c++/4.9.1" "...") . For a system with gcc, you can get this information by running gcc -v -xc++ /dev/null -fsyntax-only (it's the same prerequisite for auto-complete-clang to work, since that's how clang itself works).
E ... é isso. Funciona chamando o cmake e analisando o arquivo JSON resultante com sinalizadores do compilador. Defina cmake-ide-build-dir como onde seu projeto está sendo construído e você não precisará ligar para o cmake manualmente novamente (exceto pela primeira vez para especificar opções). Melhor feito com variáveis locais de diretório.