ビルドスクリプト
cargo による通常のビルドだけでは不十分な場合があります。たとえば、あなたのクレートが cargo で正常にコンパイルされる前に、コード生成や、コンパイルが必要なネイティブコードなど、何らかの前提条件を必要とする場合です。この問題を解決するために、Cargo が実行できるビルドスクリプトがあります。
パッケージにビルドスクリプトを追加するには、次のように Cargo.toml で指定できます。
[package]
...
build = "build.rs"
それ以外の場合、Cargo はデフォルトでプロジェクトディレクトリ内の build.rs ファイルを探します。
ビルドスクリプトの使い方
ビルドスクリプトは、パッケージ内の他のものをコンパイルする前にコンパイルされ、呼び出される、単なる別の Rust ファイルです。そのため、クレートの前提条件を満たすために使用できます。
Cargo は、こちらで指定されている環境変数を介して、スクリプトに入力を提供します。
スクリプトは stdout 経由で出力を提供します。出力されたすべての行は target/debug/build/<pkg>/output に書き込まれます。さらに、cargo: で始まる行は Cargo によって直接解釈されるため、パッケージのコンパイル用パラメーターを定義するために使用できます。
さらに詳しい仕様と例については、Cargo 仕様を参照してください。