cmake-ide ist ein Paket, mit dem IDE-ähnliche Funktionen bei EMACs für CMake-Projekte ermöglicht werden können. Es unterstützt auch Nicht-Cmake-Projekte, solange eine Kompilierungsdatenbank außerhalb des Bandes generiert wird. Dies beinhaltet die Autoperation und die Überprüfung der Syntax-Syntax-Überprüfung in EMACs für CMake-Projekte mit minimaler Konfiguration. Es verwendet andere Pakete, um sein schweres Heben in einer Kombination aus:
cmake-ide setzt Variablen und Anruffunktionen für die installierten abhängigen Pakete.
Es wird von CMake in EMACs ausgeführt, um die erforderlichen Compiler -Flags zu erhalten, die an die anderen Werkzeuge weitergegeben werden. Da alle Abhängigkeiten in den CMake -Skripten angegeben sind, müssen kein paralleles Abhängigkeits -Tracking -System für EMACs aufrechterhalten werden. Fragen Sie einfach CMake.
auto-complete-clang , flycheck und andere für ein CMake-Projekt automatisch. Kaum eine erforderliche Konfiguration.cmake-ide-build-dir muss festgelegt werden.cmake-ide-delete-file können Sie beim Löschen von Dateien den gleichen Komfort haben. Ich kann keinen besseren Weg finden, dies zu tun. Offensichtlich bedeutet das, die Datei zu löschen, CMake erneut manuell ausführen, um die Änderung der zu kompilierten Dateien zu registrieren.cmake-ide-build-dir festgelegt ist, gilt es als das Build-Verzeichnis, in dem CMake ausgeführt wird. Zusätzlich wird dies dazu führen, dass cmake-ide-compile das Projekt dort kompiliert. Es erkennt Ninja automatisch und erstellt Builds und setzt den Kompilierbefehl entsprechend. Der zu verwendende Befehl kann angepasst werden, indem die Variable cmake-compile-command eingestellt wird.cmake-ide kann RTAGs zum Finden von Definitionen und auch mit Clang verwenden. Wenn (require 'rtags) vor cmake-ide-setup aufgerufen wird, startet er automatisch den RTAGS-Server ( rdm ) und ruft rc -J auf, um die Projektdateien für 0-config "zu Definition zu springen" und alles andere RTAGS-Angebote. Dies funktioniert nur, wenn sowohl rdm als auch rc und im Systempfad oder wenn cmake-ide-rdm-executable und cmake-ide-rc-executable korrekt angepasst werden. cmake-ide kann automatisch Build-Verzeichnisse für Sie erstellen-entweder im TMP-Verzeichnis des Systems oder unter cmake-ide-build-pool-dir (falls festgelegt). Standardmäßig werden alle automatisch erstellten Build -Verzeichnisse (unabhängig davon, wo erstellt) vorübergehende und eindeutige Namen haben, die sich mit jeder neuen Sitzung ändern und daher nicht wiederverwendbar sind. Wenn Sie jedoch cmake-ide-build-pool-use-persistent-naming einstellen, verwenden Sie ein reproduzierbares Benennungsschema, das auf dem Pfad des Projekts basiert und sich nicht ändert, solange der Pfad des Projekts der gleiche ist. Auf diese Weise können Sie das Build -Verzeichnis wiederverwenden.
Durch die Verwendung cmake-ide-build-pool-dir und cmake-ide-build-pool-use-persistent-naming können Sie (z.
Verwenden Sie .dir-locals.el um die Variablen cmake-ide-project-dir und cmake-ide-build-dir Variablen festzulegen (verwenden Sie absolute Pfade).
.dir-locals.el: ((nil. ((cmake-ide-build-dir. "/path/to/build/dir") (cmake-ide-project-dir. "/path/to/project/dir")))))))))))))))))))))
Wenn eine Datei namens compile_commands.json in cmake-ide-build-dir existiert, funktioniert sie genauso gut wie CMake-Projekte. Bear (https://github.com/rizsotto/bear) kann verwendet werden, um eine compile_commands.json aus einem Befehl make zu generieren.
Installieren Sie von melpa oder melpa stabil mit:
M-x package-install RET cmake-ide.
Fügen Sie dies zu Ihrem .emacs / init.el hinzu:
(require 'rtags) ;; optional, must have rtags installed
(cmake-ide-setup)
Wenn cmake-ide-flags-c oder cmake-ide-flags-c++ eingestellt sind, werden sie zu ac-clang-flags und company-clang-arguments hinzugefügt. Diese Variablen sollten festgelegt werden. Insbesondere sollten sie das System enthalten, einschließlich Pfade (z '("-I/usr/include/c++/4.9.1" "...") . Für ein System mit GCC können Sie diese Informationen erhalten, indem Sie gcc -v -xc++ /dev/null -fsyntax-only ausführen (es ist die gleiche Voraussetzung für auto-complete-clang clang-zu-ordnungsgemäß, wie es sich an die Clang selbst handelt.
Und ... das war's. Es funktioniert, indem es CMake aufgerufen und die resultierende JSON -Datei mit Compiler -Flags analysiert. Setzen Sie cmake-ide-build-dir auf den Ort, an dem Ihr Projekt erstellt wird, und Sie müssen CMake nicht manuell anrufen (außer zum ersten Mal, um Optionen anzugeben). Am besten mit Verzeichnis lokalen Variablen gemacht.