cmake-ide es un paquete para habilitar características similares a IDE en EMAC para proyectos CMake. También es compatible con proyectos que no sean de fabricación siempre que se genere una base de datos de compilación fuera de banda. Esto incluye la comprobación de sintaxis de autocompleto y sintaxis en la marcha para proyectos CMAKE con una configuración mínima. Utiliza otros paquetes para hacer su trabajo pesado, en una combinación de:
cmake-ide establecerá variables y funciones de llamadas para los paquetes dependientes instalados.
Funciona ejecutando Cmake en emacs para obtener los indicadores del compilador necesarios para pasar a las otras herramientas. Dado que todas las dependencias se especifican en los scripts CMake, no es necesario mantener un sistema de seguimiento de dependencia paralelo para EMAC. Solo pregúntale a Cmake.
auto-complete-clang , flycheck y otras para un proyecto CMAKE automágicamente. Casi ninguna configuración necesaria.cmake-ide-build-dir .cmake-ide-delete-file le permite tener la misma comodidad al eliminar los archivos. No puedo entender una mejor manera de hacer esto. Obviamente, simplemente eliminar el archivo significa tener que ejecutar CMake nuevamente manualmente para que registre el cambio en la lista de archivos a compilar.cmake-ide-build-dir , se considera que es el directorio de compilación para ejecutar CMake. Además, esto hará que cmake-ide-compile compile el proyecto allí. Detecta automáticamente ninja y hace compilaciones y establece el comando de compilación en consecuencia. El comando para usar se puede personalizar configurando la variable cmake-compile-command .cmake-ide puede utilizar los RTAG para encontrar definiciones, también utilizando Clang. Si (require 'rtags) se llama antes de cmake-ide-setup , iniciará automáticamente el servidor RTAGS ( rdm ) y llamará rc -J para indexar los archivos del proyecto para 0-config "saltar a la definición" y todo lo demás ofrece RTAGS. Esto solo funciona si tanto rdm como rc y en la ruta del sistema o si cmake-ide-rdm-executable y cmake-ide-rc-executable se personalizan correctamente. cmake-ide puede crear automáticamente directorios de compilación para usted, ya sea en el directorio TMP del sistema o en cmake-ide-build-pool-dir (si se establece). De manera predeterminada, todos los directorios de compilación creados automáticamente (sin importar dónde se creen) tendrán nombres temporales y únicos, que cambiarán con cada nueva sesión y, por lo tanto, no son reutilizables. Sin embargo, puede establecer cmake-ide-build-pool-use-persistent-naming utilice un esquema de nomenclatura reproducible que se basa en la ruta del proyecto y no cambiará siempre que el camino del proyecto sea el mismo. De esta manera, puede reutilizar el directorio de compilación.
Mediante el uso cmake-ide-build-pool-dir y cmake-ide-build-pool-use-persistent-naming , puede eliminar completamente la necesidad de configurar un directorio de compilación por proyecto con variables locales del directorio (por ejemplo).
Use .dir-locals.el para establecer las variables cmake-ide-project-dir y cmake-ide-build-dir (use rutas absolutas).
.Dir-Locals.el: ((nil. (((CMake-IDE-Build-Dir. "/Path/To/Build/Dir") (CMake-IDE-Project-Dir. "/Path/To/Project/Dir")))))))
Si un archivo llamado compile_commands.json existe en cmake-ide-build-dir , funcionará tan bien como para proyectos CMake. Bear (https://github.com/rizsotto/bear) se puede utilizar para generar un compile_commands.json desde un comando make.
Instalar desde Melpa o Melpa Stable con:
M-x package-install RET cmake-ide.
Agregue esto a su .emacs / init.el :
(require 'rtags) ;; optional, must have rtags installed
(cmake-ide-setup)
Si se establecen cmake-ide-flags-c o cmake-ide-flags-c++ , se agregarán a ac-clang-flags y company-clang-arguments . Estas variables deben establecerse. Particularmente, deben contener el sistema incluye rutas (por ejemplo '("-I/usr/include/c++/4.9.1" "...") . Para un sistema con GCC, puede obtener esta información ejecutando gcc -v -xc++ /dev/null -fsyntax-only (es el mismo prequisito para que auto-complete-clang funcione, ya que es la forma en que funciona en sí).
Y ... eso es todo. Funciona llamando a Cmake y analizando el archivo JSON resultante con banderas del compilador. Establezca cmake-ide-build-dir en donde se está construyendo su proyecto y no tendrá que llamar a CMake manualmente nuevamente (excepto por primera vez para especificar opciones). Mejor hecho con variables locales del directorio.