summaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/consts.rs
diff options
context:
space:
mode:
authorhar7an <99636919+har7an@users.noreply.github.com>2022-12-17 13:27:18 +0000
committerGitHub <noreply@github.com>2022-12-17 13:27:18 +0000
commitd1f50150f6f7525f93ccb9ed94f75ce6bfb5c60b (patch)
tree4c5ebcf6016f134a21857dbcbbe195bee6664bf9 /zellij-utils/src/consts.rs
parent6e93e8ffce24e28af4bd35bacb48424d9e1d7a26 (diff)
WIP: Use `xtask` as build system (#2012)
* xtask: Implement a new build system xtask is a cargo alias that is used to extend the cargo build system with custom commands. For an introduction to xtask, see here: https://github.com/matklad/cargo-xtask/ The idea is that instead of writing makefiles, xtask requires no additional dependencies except `cargo` and `rustc`, which must be available to build the project anyway. This commit provides a basic implementation of the `build` and `test` subcommands. * xtask/deps: Add 'which' * xtask/test: Handle error when cargo not found * xtask/flags: Add more commands to perform different useful tasks. Includes: - clippy - format - "make" (composite) - "install" (composite) Also add more options to `build` to selectively compile plugins or leave them out entirely. * xtask/main: Return error when cargo not found * xtask/build: Add more subtasks - `wasm_opt_plugins` and - `manpage` that perform other build commands. Add thorough documentation on what each of these does and also handle the new `build` cli flags appropriately. * xtask/clippy: Add job to run clippy * xtask/format: Add job to run rustfmt * xtask/pipeline: Add composite commands that perform multiple atomic xtask commands sequentially in a pipeline sort of fashion. * xtask/deps: Pin dependencies * xtask/main: Integrate new jobs and add documentation. * xtask: Implement 'dist' which performs an 'install' and copies the resulting zellij binary along with some other assets to a `target/dist` folder. * cargo: Update xflags version * xtask: Measure task time, update tty title * xtask: Update various tasks * xtask: wasm-opt plugins in release builds automatically. * xtask/build: Copy debug plugins to assets folder * xtask: Add 'run' subcommand * xtask: Add arbitrary args to test and run * xtask: Rearrange CLI commands in help * xtask: Add deprecation notice * docs: Replace `cargo make` with `xtask` * github: Use `xtask` in workflows. * xtask: Add support for CI commands * xtask: Streamline error handling * github: Use new xtask commands in CI * xtask: Add 'publish' job * xtask/publish: Add retry when publish fails * xtask: Apply rustfmt * xtask: Refine 'make' deprecation warning * xtask: add task to build manpage * contributing: Fix e2e commands * xtask/run: Add missing `--` to pass all arguments following `xtask run` directly to the zellij binary being run. * xtask: Stay in invocation dir and make all tasks that need it change to the project root dir themselves. * xtask/run: Add `--data-dir` flag which will allow very quick iterations when not changing the plugins between builds. * xtask/ci: Install dependencies without asking * utils: Allow including plugins from target folder * utils/assets: Reduce asset map complexity * utils/consts: Update asset map docs * xtask: Fix plugin includes * xtask/test: Build plugins first because the zellij binary needs to include the plugins. * xtask/test: Fix formatting * xtask: Add notice on how to disable it
Diffstat (limited to 'zellij-utils/src/consts.rs')
-rw-r--r--zellij-utils/src/consts.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/zellij-utils/src/consts.rs b/zellij-utils/src/consts.rs
index 0e8a6acc1..5709db891 100644
--- a/zellij-utils/src/consts.rs
+++ b/zellij-utils/src/consts.rs
@@ -45,16 +45,31 @@ mod not_wasm {
use std::path::PathBuf;
// Convenience macro to add plugins to the asset map (see `ASSET_MAP`)
+ //
+ // Plugins are taken from:
+ //
+ // - `zellij-utils/assets/plugins`: When building in release mode OR when the
+ // `plugins_from_target` feature IS NOT set
+ // - `zellij-utils/../target/wasm32-wasi/debug`: When building in debug mode AND the
+ // `plugins_from_target` feature IS set
macro_rules! add_plugin {
($assets:expr, $plugin:literal) => {
$assets.insert(
PathBuf::from("plugins").join($plugin),
+ #[cfg(any(not(feature = "plugins_from_target"), not(debug_assertions)))]
include_bytes!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/assets/plugins/",
$plugin
))
.to_vec(),
+ #[cfg(all(feature = "plugins_from_target", debug_assertions))]
+ include_bytes!(concat!(
+ env!("CARGO_MANIFEST_DIR"),
+ "/../target/wasm32-wasi/debug/",
+ $plugin
+ ))
+ .to_vec(),
);
};
}