编译完成后可以执行任务吗?

问题描述 投票:0回答:2

我知道

build.rs
可以在程序编译开始之前执行任务,所以我可以准备任何我想要的东西。

如果编译完成后需要执行一项任务(例如某种清理)怎么办?有什么办法可以做到这样的事情吗?

举一个简单的例子:在编译之前,我想出于某种原因将文件从

foo.txt

 重命名为 
abc.txt
 。然后
after编译终止我想将其重命名回foo.txt

rust compilation rust-cargo toolchain
2个回答
5
投票
不,从 Rust 1.50 开始就没有任何东西了。

RFC #1777 — 添加 Cargo 构建后脚本提出了这一点,但没有被接受。

与此同时,一些板条箱制作了自己的本地 Cargo 第三方命令来模仿这一点。一种风格的文档可以在

cargo-xtask 存储库中找到。 TL;DR 形式:

    创建一个本地二进制包来执行构建以及您需要的任何其他操作。
  1. 添加 Cargo 别名来调用该箱子。
  2. 调用您的自定义命令:
  3. cargo xtask build
另请参阅:

  • 构建后将文件复制到目标目录

0
投票
一个简单的解决方案,如果您有一个

workspace 项目:

    在您的工作区中在您想要为其构建后脚本的项目旁边创建一个新的货物项目 - 比如说
  • thingamabob_post_build
    
    
  • 在新项目中
  • 在您想要构建后脚本的项目上设置依赖项 在新项目中放入
  • build.rs
  • 让它做任何你想做的事情,确保在
  • 其他项目构建完成后
  • 完成
© www.soinside.com 2019 - 2024. All rights reserved.