#build-script #cargo-build #post #cargo-command #execute #cargo-check #run

build cargo-post

A cargo wrapper that executes a post build script after a successful build

8 个版本

0.1.7 2023年4月30日
0.1.6 2020年12月17日
0.1.5 2020年7月19日
0.1.4 2020年6月7日
0.1.2 2019年3月21日

#97 in 构建工具

每月 39 次下载

MIT/Apache

15KB
220

cargo-post

A cargo wrapper that executes a post build script after a successful build.

安装

cargo install cargo-post

用法

执行 cargo CMD [ARGS] 并随后运行 post_build.rs

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.

示例

构建包并随后运行 post_build.rs

cargo post build

以发布模式构建包并随后运行 post_build.rs

cargo post build --release

使用 cargo-xbuild 构建

cargo post xbuild

检查包而不执行 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.

后构建脚本格式

后构建脚本类似于 cargo 构建脚本,但它们具有不同的环境变量集

  • CRATE_BUILD_COMMAND: 用于构建(不包括 post)的完整 cargo 命令
    • 示例:当使用 cargo post build --release 编译 crate 时,环境变量具有以下值:cargo build --release
  • CRATE_MANIFEST_DIR:存放 Cargo.toml 的目录。
  • CRATE_MANIFEST_PATH:crate 的 Cargo.toml 的路径。
  • CRATE_PROFILEdebugrelease,取决于构建命令中是否传递了 --release
  • CRATE_TARGET:传递给 --target 的完整内容,如果没有传递 --target,则为空字符串。
  • CRATE_TARGET_TRIPLE:传递给 --target 的目标三元组,如果没有传递 --target,则为空字符串。
    • 示例:使用 cargo post xbuild --target /some/path/to/your/target-x86_64.json,此环境变量的值为 target-x86_64
  • CRATE_TARGET_DIR:crate 的 target 目录的路径。
  • CRATE_OUT_DIR:cargo 放置编译的二进制文件的目录的路径。此路径通过将 CRATE_TARGET_TRIPLECRATE_PROFILE 添加到 CRATE_TARGET_DIR 来构造。

依赖项

可以在您的 Cargo.toml 中的 [package.metadata.cargo-post.dependencies] 表中指定构建后脚本的依赖项。

许可证

许可证为以下之一

任选其一。

除非您明确说明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,作为作品的一部分包含在内,将如上双许可,无需附加条款或条件。

依赖项

~1.2–2.1MB
~45K SLoC