cmake-ide是一個包裝,可在CMAKE項目的EMAC上啟用IDE般的功能。只要彙編數據庫生成頻段外,它還支持非策略項目。其中包括自動完成和flly語法檢查,其中包括具有最小配置的CMAKE項目的EMACS中。它使用其他包裝來進行繁重的舉重,結合了:
cmake-ide將為已安裝的相關軟件包設置變量並調用功能。
它通過在Emacs中運行CMAKE來工作,以獲取必要的編譯器標誌以傳遞到其他工具。由於所有依賴項均在CMAKE腳本中指定,因此無需維護Emacs的並行依賴性跟踪系統。只是問Cmake。
auto-complete-clang , flycheck和其他其他變量。幾乎不需要任何配置。cmake-ide-build-dir 。cmake-ide-delete-file可讓您在刪除文件時具有相同的便利性。我無法找到更好的方法。顯然,簡單地刪除文件意味著必須再次手動運行CMAKE才能在要編譯的文件列表中註冊更改。cmake-ide-build-dir ,則被認為是運行CMake的構建目錄。此外,這將導致cmake-ide-compile在此處編譯該項目。它會自動檢測忍者並製作構建並相應地設置編譯命令。可以通過設置cmake-compile-command變量來自定義使用的命令。cmake-ide可以使用clang的RTAG來查找定義。如果(require 'rtags)在cmake-ide-setup之前調用,則它將自動啟動RTAGS服務器( rdm )並調用rc -J ,以索引0-Config的項目文件“跳轉到定義”,其他所有RTAGS都提供。這僅在rdm和rc以及在系統路徑中或cmake-ide-rdm-executable和cmake-ide-rc-executable均可正確定制時起作用。 cmake-ide可以自動為您cmake-ide-build-pool-dir (如果設置)下。默認情況下,所有自動創建的構建目錄(無論在何處創建)都將具有臨時和唯一的名稱,這些名稱將隨著每個新會話而變化,因此不可重複使用。但是,您可以通過設置cmake-ide-build-pool-use-persistent-naming使用可重複的命名方案,該方案基於項目的路徑,只要項目的路徑相同,就不會改變。這樣,您可以重複使用構建目錄。
通過使用cmake-ide-build-pool-dir和cmake-ide-build-pool-use-persistent-naming ,您可以完全消除使用目錄本地變量(例如)為每個項目配置每個項目的構建目錄的需要(例如)。
使用.dir-locals.el設置cmake-ide-project-dir和cmake-ide-build-dir變量(使用絕對路徑)。
.dir-locals.el:((nil。(((((cmake-ide-build-dir)
如果一個稱為compile_commands.json的文件存在於cmake-ide-build-dir中,則它將與CMAKE項目一樣起作用。熊(https://github.com/rizsotto/bear)可用於從make命令中生成compile_commands.json。
從MELPA或MELPA穩定的安裝:
M-x package-install RET cmake-ide.
將其添加到您的.emacs / init.el :
(require 'rtags) ;; optional, must have rtags installed
(cmake-ide-setup)
如果設置了cmake-ide-flags-c或cmake-ide-flags-c++ ,則將它們添加到ac-clang-flags和company-clang-arguments中。這些變量應設置。 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).
而且...就是這樣。它通過調用CMAKE並用編譯器標誌來解析所得的JSON文件來起作用。將cmake-ide-build-dir設置為構建項目的位置,您不必再次手動調用CMake(除了首次指定選項外)。最好使用目錄本地變量完成。