2015-06-26 45 views
6

後,假設我有以下目錄結構的遊戲:將文件複製到目標目錄建立

/src 
/resources 
Cargo.toml 

我想cargo build在同一目錄中的文件複製在resources目錄並粘貼可執行文件。

我知道使用自定義構建腳本可以做到這一點,但這似乎是一個值得特殊待遇的常見情況。所以問題是:貨物是否提供了將文件複製到目標目錄的標準方式(僅使用Cargo.toml)?

回答

4

不,它沒有。

您可以使用build scripts移動文件,但這些文件是在您的箱子生成之前運行的,因爲它們的唯一目的是準備環境(例如,編譯C庫和墊片)。

如果您認爲這是一項重要功能,您可以在Cargo issue tracker中打開功能請求。

或者,你可以寫一個makefile或shell腳本,將所有參數轉發給貨,然後手動複製目錄:

#!/bin/bash 

DIR="$(dirname "$0")" 

if cargo "[email protected]"; then 
    [ -d "$DIR/target/debug" ] && cp -r "$DIR/resources" "$DIR/target/debug/resources" 
    [ -d "$DIR/target/release" ] && cp -r "$DIR/resources" "$DIR/target/release/resources" 
fi 

現在你可以運行貨樣

% ./make.sh build 
+2

我打開你提出的問題。這裏是鏈接,如果任何人有興趣:https://github.com/rust-lang/cargo/issues/1759 – aochagavia