Crates.io | cargo-post |
lib.rs | cargo-post |
version | 0.1.7 |
source | src |
created_at | 2019-03-21 13:18:28.870775 |
updated_at | 2023-04-30 09:46:15.09511 |
description | A `cargo` wrapper that executes a post build script after a successful build. |
homepage | |
repository | https://github.com/phil-opp/cargo-post |
max_upload_size | |
id | 122899 |
size | 33,436 |
A cargo
wrapper that executes a post build script after a successful build.
cargo install cargo-post
Execute cargo CMD [ARGS]
and run post_build.rs
afterwards:
cargo post CMD [ARGS]
The post_build.rs
is only run if CMD
is a build command like build
or xbuild
.
In workspaces, you might have to pass a --package
argument to cargo build
to specify the package for which the post build script should be run.
Build the crate and run post_build.rs
afterwards:
cargo post build
Build the crate in release mode and run post_build.rs
afterwards:
cargo post build --release
Builds the crate using cargo-xbuild:
cargo post xbuild
Check the crate without executing post_build:
cargo post check
The build script is not executed because cargo check
is not a build command. The same behavior occurs for cargo post doc
or cargo post update
.
Post-build scripts are similar to cargo build scripts, but they get a different set of environment variables:
CRATE_BUILD_COMMAND
: The full cargo command that was used for building without post
cargo post build --release
, the environment variable has the value cargo build --release
.CRATE_MANIFEST_DIR
: The directory where the Cargo.toml
of the crates lives.CRATE_MANIFEST_PATH
: The path to the Cargo.toml
of the crates.CRATE_PROFILE
: debug
or release
, depending on whether --release
was passed in the build command.CRATE_TARGET
: The full content of what was passed as --target
or the empty string if no --target
was passed.CRATE_TARGET_TRIPLE
: The target triple of the passed --target
or the empty string if no --target
was passed.
cargo post xbuild --target /some/path/to/your/target-x86_64.json
this environment variable has the value target-x86_64
.CRATE_TARGET_DIR
: The path to the target
directory of your crate.CRATE_OUT_DIR
: The path to the directory where cargo puts the compiled binaries. This path is constructed by appending CRATE_TARGET_TRIPLE
and CRATE_PROFILE
to CRATE_TARGET_DIR
.Dependencies for post build scripts can be specified in a [package.metadata.cargo-post.dependencies]
table in your Cargo.toml
.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.