Emacs CMake project mode
This minor-mode integrates the CMake build process into the Emacs ecosystem.
Emacs build tools for C/C++ generally assume a Makefile exists for the project but this isn't necessarily the case for projects managed by CMake which can generate many different types of project file. Integrates the CMake build process with the existing Emacs tools.
This mode is not for editing the
CMakeLists.txt themselves; that
is left to the major-mode [
Copy this file somewhere on your Emacs load path.
Either auto-load the mode in your init file by adding the line:
(autoload 'cmake-project-mode "cmake-project")
Or simply require the library:
M-x cmake-project-mode in any buffer you wish to use the
mode in. Alternatively, start the mode automatically for any C/C++
file whose directory includes a
(defun maybe-cmake-project-hook () (if (file-exists-p "CMakeLists.txt") (cmake-project-mode))) (add-hook 'c-mode-hook 'maybe-cmake-project-hook) (add-hook 'c++-mode-hook 'maybe-cmake-project-hook)
The compile command
This mode makes the [compile command],
M-x compile, build the
project by default via CMake in a
bin subdirectory of the project
source root directory.
This mode integrates with [Flymake] so that, when
enabled, the entire project is built whenever the buffer is saved and
any errors are higlighted in the buffer. This is different from
Flymake's typical behaviour which builds only the file for the buffer
in question. CMake doesn't provide a way to build one file at a time
(or at least we don't know of a way) so we must build everything.
 http://www.cmake.org/CMakeDocs/cmake-mode.el  http://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation.html  http://www.gnu.org/software/emacs/manual/html_node/flymake/index.html