cmake-ide เป็นแพ็คเกจที่จะเปิดใช้งานคุณสมบัติที่มีลักษณะคล้าย IDE บน EMACS สำหรับโครงการ CMAKE นอกจากนี้ยังรองรับโครงการที่ไม่ใช่ CMAKE ตราบใดที่ฐานข้อมูลการรวบรวมถูกสร้างขึ้นนอกวงดนตรีซึ่งรวมถึงการเติมเงินอัตโนมัติและการตรวจสอบไวยากรณ์แบบออนไทม์ใน EMACS สำหรับโครงการ CMAKE ที่มีการกำหนดค่าน้อยที่สุด มันใช้แพ็คเกจอื่น ๆ เพื่อทำการยกหนักในการรวมกันของ:
cmake-ide จะตั้งค่าตัวแปรและฟังก์ชั่นการโทรสำหรับแพ็คเกจขึ้นอยู่กับที่ติดตั้ง
มันทำงานได้โดยใช้ CMAKE ใน EMACS เพื่อให้ได้ค่าสถานะคอมไพเลอร์ที่จำเป็นเพื่อส่งผ่านไปยังเครื่องมืออื่น ๆ เนื่องจากมีการระบุการพึ่งพาทั้งหมดในสคริปต์ CMake จึงไม่จำเป็นต้องรักษาระบบติดตามการพึ่งพาแบบขนานสำหรับ EMAC แค่ถาม cmake
auto-complete-clang flycheck และอื่น ๆ สำหรับโครงการ CMake โดยอัตโนมัติ การกำหนดค่าแทบจะไม่จำเป็นcmake-ide-build-dircmake-ide-delete-file ช่วยให้คุณมีความสะดวกสบายเหมือนกันเมื่อลบไฟล์ ฉันไม่สามารถหาวิธีที่ดีกว่าในการทำเช่นนี้ได้ เห็นได้ชัดว่าการลบไฟล์หมายถึงการเรียกใช้ CMake อีกครั้งด้วยตนเองเพื่อลงทะเบียนการเปลี่ยนแปลงในรายการไฟล์ที่จะรวบรวมcmake-ide-build-dir จะถือว่าเป็นไดเรกทอรี Build เพื่อเรียกใช้ cmake ในนอกจากนี้จะทำให้ cmake-ide-compile รวบรวมโครงการที่นั่น มันตรวจพบนินจาโดยอัตโนมัติและสร้างและตั้งค่าคำสั่งคอมไพล์ตามนั้น คำสั่งที่จะใช้สามารถปรับแต่งได้โดยการตั้งค่าตัวแปร cmake-compile-commandcmake-ide สามารถใช้การใช้ RTAG สำหรับการค้นหาคำจำกัดความและใช้เสียงดัง ถ้า (require 'rtags) ถูกเรียกก่อน cmake-ide-setup มันจะเริ่มต้น RTAGS Server ( rdm ) โดยอัตโนมัติและโทร rc -J เพื่อจัดทำดัชนีไฟล์โครงการสำหรับ 0-config สิ่งนี้จะใช้งานได้ก็ต่อเมื่อทั้ง rdm และ rc และในเส้นทางของระบบหรือหาก cmake-ide-rdm-executable และ cmake-ide-rc-executable สามารถปรับแต่งได้อย่างถูกต้อง cmake-ide สามารถสร้างไดเรกทอรีบิลด์ให้คุณโดยอัตโนมัติไม่ว่าจะในไดเรกทอรี TMP ของระบบหรือภายใต้ cmake-ide-build-pool-dir (ถ้า SET) โดยค่าเริ่มต้นการสร้างไดเรกทอรีบิลด์ทั้งหมดโดยอัตโนมัติ (ไม่ว่าจะสร้างที่ไหน) จะมีชื่อชั่วคราวและไม่ซ้ำกันซึ่งจะเปลี่ยนไปตามแต่ละเซสชันใหม่และไม่สามารถนำกลับมาใช้ใหม่ได้ อย่างไรก็ตามคุณสามารถตั้งชื่อการตั้งชื่อ cmake-ide-build-pool-use-persistent-naming ใช้รูปแบบการตั้งชื่อที่ทำซ้ำได้ซึ่งขึ้นอยู่กับเส้นทางของโครงการและจะไม่เปลี่ยนแปลงตราบใดที่เส้นทางของโครงการเหมือนกัน ด้วยวิธีนี้คุณสามารถนำไดเรกทอรี Build กลับมาใช้ใหม่ได้
ด้วยการใช้ทั้ง 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. "/path/to/build/dir") (cmake-ide-project-dir. "/path/to/project/dir"))))))))))))))))))))))))))))))))))))))))))))))
หากไฟล์ที่เรียกว่า compile_commands.json มีอยู่ใน cmake-ide-build-dir มันจะทำงานได้เช่นเดียวกับโครงการ CMake Bear (https://github.com/rizsotto/bear) สามารถใช้เพื่อสร้าง compile_commands.json จากคำสั่ง make
ติดตั้งจาก 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 ควรตั้งค่าตัวแปรเหล่านี้ โดยเฉพาะอย่างยิ่งพวกเขาควรมีระบบรวมถึงเส้นทาง (เช่น '("-I/usr/include/c++/4.9.1" "...") สำหรับระบบที่มี GCC คุณสามารถรับข้อมูลนี้ได้โดยใช้ auto-complete-clang gcc -v -xc++ /dev/null -fsyntax-only
และ ... แค่นั้นก็แค่ไหน มันทำงานได้โดยการเรียก CMake และแยกวิเคราะห์ไฟล์ JSON ที่เกิดขึ้นด้วยธงคอมไพเลอร์ ตั้งค่า cmake-ide-build-dir ให้เป็นที่ที่โครงการของคุณถูกสร้างขึ้นและคุณไม่ต้องโทร CMake ด้วยตนเองอีกครั้ง (ยกเว้นเป็นครั้งแรกในการระบุตัวเลือก) ทำได้ดีที่สุดกับตัวแปรท้องถิ่นไดเรกทอรี