cmake-ide adalah paket untuk memungkinkan fitur seperti IDE di Emacs untuk proyek CMake. Ini juga mendukung proyek non-cmake selama database kompilasi dihasilkan di luar-band. Ini mencakup pelengkapan autocompetion dan sintaks on-the-fly di Emacs untuk proyek CMake dengan konfigurasi minimal. Ini menggunakan paket lain untuk melakukan pengangkatannya yang berat, dalam kombinasi:
cmake-ide akan mengatur variabel dan fungsi panggilan untuk paket dependen yang diinstal.
Ini bekerja dengan menjalankan CMake di Emacs untuk mendapatkan bendera kompiler yang diperlukan untuk diteruskan ke alat lain. Karena semua dependensi ditentukan dalam skrip CMake, tidak perlu mempertahankan sistem pelacakan ketergantungan paralel untuk Emac. Tanyakan saja CMake.
auto-complete-clang , flycheck dan lainnya untuk proyek cmake secara otomatis. Hampir tidak ada konfigurasi yang diperlukan.cmake-ide-build-dir untuk diatur.cmake-ide-delete-file memungkinkan Anda untuk memiliki kenyamanan yang sama saat menghapus file. Saya tidak tahu cara yang lebih baik untuk melakukan ini. Jelas hanya menghapus file berarti harus menjalankan cmake lagi secara manual untuk mendaftarkan perubahan dalam daftar file yang akan dikompilasi.cmake-ide-build-dir ditetapkan, itu dianggap sebagai direktori build untuk menjalankan CMake. Selain itu, ini akan menyebabkan cmake-ide-compile untuk menyusun proyek di sana. Secara otomatis mendeteksi ninja dan membuat build dan mengatur perintah kompilasi yang sesuai. Perintah untuk digunakan dapat disesuaikan dengan mengatur variabel cmake-compile-command .cmake-ide dapat membuat penggunaan RTAG untuk menemukan definisi, juga menggunakan dentang. Jika (require 'rtags) dipanggil sebelum cmake-ide-setup , itu akan secara otomatis memulai server RTAGS ( rdm ) dan hubungi rc -J untuk mengindeks file proyek untuk konfigurasi 0-konfigasi "Jump to Definition" dan semua yang ditawarkan RTAG lainnya. Ini hanya berfungsi jika rdm dan rc dan di jalur sistem atau jika cmake-ide-rdm-executable dan cmake-ide-rc-executable disesuaikan dengan benar. cmake-ide dapat secara otomatis membuat direktori build untuk Anda-baik di TMP-Directory sistem atau di bawah cmake-ide-build-pool-dir (jika diatur). Secara default, semua direktori build yang dibuat secara otomatis (di mana pun dibuat) akan memiliki nama sementara dan unik, yang akan berubah dengan setiap sesi baru dan karenanya tidak dapat digunakan kembali. Namun, Anda dapat dengan mengatur cmake-ide-build-pool-use-persistent-naming menggunakan skema penamaan yang dapat direproduksi yang didasarkan pada jalur proyek dan tidak akan berubah selama jalur proyek adalah sama. Dengan cara ini, Anda dapat menggunakan kembali direktori build.
Dengan menggunakan cmake-ide-build-pool-dir dan cmake-ide-build-pool-use-persistent-naming , Anda dapat sepenuhnya menghilangkan kebutuhan untuk mengonfigurasi Direktori Builde per proyek dengan variabel lokal direktori (misalnya).
Gunakan .dir-locals.el untuk mengatur variabel cmake-ide-project-dir dan cmake-ide-build-dir (gunakan jalur absolut).
.dir-locals.el: ((nil. (((cmake-ide-build-dir. "/path/to/build/dir") (cmake-ide-project-dir. "/path/to/project/dir"))))))
Jika sebuah file yang disebut compile_commands.json ada di cmake-ide-build-dir , itu akan bekerja sama seperti untuk proyek CMake. Bear (https://github.com/rizsotto/bear) dapat digunakan untuk menghasilkan compile_commands.json dari perintah make.
Instal dari Melpa atau Melpa Stable dengan:
M-x package-install RET cmake-ide.
Tambahkan ini ke .emacs / init.el : Anda:
(require 'rtags) ;; optional, must have rtags installed
(cmake-ide-setup)
Jika cmake-ide-flags-c atau cmake-ide-flags-c++ ditetapkan, mereka akan ditambahkan ke ac-clang-flags dan company-clang-arguments . Variabel -variabel ini harus diatur. Khususnya, mereka harus berisi sistem termasuk jalur (misalnya '("-I/usr/include/c++/4.9.1" "...") . Untuk sistem dengan GCC, Anda bisa mendapatkan informasi ini dengan menjalankan gcc -v -xc++ /dev/null -fsyntax-only (ini adalah caranya auto-complete-clang yang sama) dengan caranya sendiri.
Dan ... itu saja. Ini bekerja dengan memanggil CMake dan parsing file JSON yang dihasilkan dengan bendera kompiler. Atur cmake-ide-build-dir ke tempat proyek Anda sedang dibangun dan Anda tidak perlu menghubungi CMake secara manual lagi (kecuali untuk pertama kalinya untuk menentukan opsi). Paling baik dilakukan dengan variabel lokal direktori.