cmake-ide -это пакет, позволяющий использовать функции IDE на EMACS для проектов CMAKE. Он также поддерживает проекты, не связанные с CMAKE, если база данных компиляции генерируется вне полости. Это включает в себя автозаполнение и проверку синтаксиса на лете в EMAC для проектов CMAKE с минимальной конфигурацией. Он использует другие пакеты, чтобы сделать свою тяжелую работу, в комбинации:
cmake-ide установит переменные и функции вызова для установленных зависимых пакетов.
Он работает путем запуска Cmake в Emacs, чтобы получить необходимые флаги компилятора для перехода к другим инструментам. Поскольку все зависимости указаны в сценариях CMAKE, нет необходимости поддерживать систему отслеживания параллельных зависимостей для EMACS. Просто спросите Cmake.
auto-complete-clang , flycheck и других для автомального проекта Cmake. Вряд ли любая конфигурация необходима.cmake-ide-build-dir .cmake-ide-delete-file позволяет вам иметь такое же удобство при удалении файлов. Я не могу найти лучший способ сделать это. Очевидно, просто удаление файла означает необходимость снова запускать CMAKE вручную, чтобы он зарегистрировал изменение в списке файлов, которые будут скомпилированы.cmake-ide-build-dir установлен, он считается каталогом сборки для запуска Cmake. Кроме того, это приведет к cmake-ide-compile там проекта. Он автоматически обнаруживает ниндзя и делает сборки и устанавливает команду компиляции соответственно. Команда для использования может быть настроена, установив переменную cmake-compile-command .cmake-ide может сделать использование RTAG для поиска определений, а также с использованием Clang. Если (require 'rtags) вызовут до cmake-ide-setup , он автоматически запустит сервер RTAGS ( rdm ) и вызовет rc -J , чтобы индексировать файлы проекта для 0-конфигрового «прыжков в определение» и все остальное, что предлагает RTAGS. Это работает только в том случае, если как rdm , так и rc и в системном пути или если cmake-ide-rdm-executable и cmake-ide-rc-executable настроены правильно. cmake-ide может автоматически создавать для вас каталоги сборки-либо в TMP-ректорости, либо в рамках 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: ((ноль. ((cmake-iide-build-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 вы можете получить эту информацию, используя gcc -v -xc++ /dev/null -fsyntax-only то же самое предварительное для auto-complete-clang для работы, как это работает сама, как работает сама сама.
И ... вот и все. Он работает, вызывая Cmake и анализируя полученный файл JSON с помощью флагов компилятора. Установите cmake-ide-build-dir , где строится ваш проект, и вам не придется снова позвонить Cmake вручную (за исключением первого раза, чтобы указать параметры). Лучше всего сделать с помощью локальных переменных каталогов.