2.6 KiB
CMake layer
Description
This layer adds support CMake scripts.
Features:
- Support for CMake configure/build (with limited support for other build systems),
automatic generation of
compile_commands.json
(compile flags), on-the-fly configuration of flycheck, company-clang and RTags (if installed) with cmake-ide . - Run selected test using
Helm
interface viahelm-ctest
.
Install
Layer
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add cmake
to the existing dotspacemacs-configuration-layers
list in this
file.
CMake-ide configuration
To enable CMake projects support set the layer variable cmake-enable-cmake-ide-support
to t
in the dotfile:
(setq-default dotspacemacs-configuration-layers
'((cmake :variables cmake-enable-cmake-ide-support t)))
cmake-ide
plugin has several useful configuration options.
To configure project you need to create .dir-locals.el
file. In case of using
make as CMake backend you can use helm-make
to select required build target.
Here is a sample configuration. This configuration forces cmake-ide
to use the
local directory and pass that directory to helm-make
. Such config allows to
build your project with SPC c c
key binding.
Additionally it's possible to configure helm-ctest
in the same way via defining helm-ctest-dir
.
Trailing slash is required.
((nil .
((cmake-ide-project-dir . "~/Project")
(cmake-ide-build-dir . "~/Project/build")
(cmake-ide-cmake-opts . "-DCMAKE_BUILD_TYPE=Debug")
(helm-make-build-dir . "build")
(helm-make-arguments . "-j7")
(helm-ctest-dir . "~/Project/build/")
)))
Key Bindings
Key Binding | Description |
---|---|
SPC m p c |
Run CMake and set compiler flags for auto-completion and flycheck |
SPC m p C |
Run CMake if compilation database JSON file is not found |
SPC m p d |
Remove file connected to current buffer and kill buffer, then run CMake |
SPC m p t |
Run CTest |