Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ビルドスクリプト

cargo による通常のビルドだけでは不十分な場合があります。たとえば、あなたのクレートが cargo で正常にコンパイルされる前に、コード生成や、コンパイルが必要なネイティブコードなど、何らかの前提条件を必要とする場合です。この問題を解決するために、Cargo が実行できるビルドスクリプトがあります。

パッケージにビルドスクリプトを追加するには、次のように Cargo.toml で指定できます。

[package]
...
build = "build.rs"

それ以外の場合、Cargo はデフォルトでプロジェクトディレクトリ内の build.rs ファイルを探します。

ビルドスクリプトの使い方

ビルドスクリプトは、パッケージ内の他のものをコンパイルする前にコンパイルされ、呼び出される、単なる別の Rust ファイルです。そのため、クレートの前提条件を満たすために使用できます。

Cargo は、こちらで指定されている環境変数を介して、スクリプトに入力を提供します。

スクリプトは stdout 経由で出力を提供します。出力されたすべての行は target/debug/build/<pkg>/output に書き込まれます。さらに、cargo: で始まる行は Cargo によって直接解釈されるため、パッケージのコンパイル用パラメーターを定義するために使用できます。

さらに詳しい仕様と例については、Cargo 仕様を参照してください。