This package strives to provide clean and easy to understand functions, as well as a transient menu, to build projects of various build systems.
Supported build systems:
- Bazel
- Make
- CMake
- Cargo
- Meson + Ninja
- NPM
build.el provides interactive build commands for each build system. Build commands are prefixed by the name of the build system:
Build system | Prefix |
---|---|
CMake | build-cmake- |
Bazel | build-bazel- |
Make | build-make- |
Cargo | build-cargo- |
Meson+Ninja | build-meson-, build-ninja- |
NPM | build-npm- |
Each build system exposes different amounts of functions, depending on the capability of the build system.
Though in general, where-ever possible, build.el will try to auto-complete possible targets given the context for you.
Make
, only has build-make-run
, which will prompt you for a target that
should be ran, the targets are auto-completed from the Makefile itself.
Bazel
, on the other hand, has build-bazel-run
, build-bazel-test
, and
build-bazel-build
. Running any of the commands will trigger a
completing-read
auto suggestion with matching targets.
CMake
has build-cmake-build
and build-cmake-generate
.
Meson
has build-meson-setup
, compilation is done via build-ninja-build
.
NPM
has build-npm-run
, build-npm-install
and build-npm-uninstall
.
run
, and uninstall
will be autocompleted from the package.json
in the project root.
In general, each build system has it’s own transient menu, these are always
called build-<system>-transient
. Though you will probably want to use
build-menu
, which will try to infer the build system of the current
project and show that instead.
Clone the repository:
git clone https://github.com/27justin/build.el ~/.emacs.d/site-lisp/build.el
Add it to your load path
(add-to-list 'load-path "~/.emacs.d/site-lisp/build.el")
(use-package build)
Done.