2015-08-15 95 views
5

了貨物,我可以設置一個項目的開發設置使用並行代碼生成:如何全局配置貨運配置文件選項?

[profile.dev] 
codegen-units = 8 

the documentation,應該可以投入~/.cargo/config這此設置適用於所有項目。這對我不起作用:似乎.cargo/config文件根本沒有使用。有沒有辦法將這樣的配置應用到項目我編譯?

+0

鏈接到的文檔不會將任何配置文件列爲適用的全局配置;也許這就是問題所在?由於配置文件看起來很像項目特定的,所以似乎這些文件甚至不會被檢查。你嘗試過其他可能的路徑嗎? – Shepmaster

+0

呵呵,我還沒有考慮過配置文件可能不是全局可配置的。我沒有嘗試任何其他路徑。 – thirtythreeforty

回答

3

您可以爲.cargo/config文件中的所有版本或每個目標設置rustflags。

[build] # or [target.$triple] 
rustflags = ["-Ccodegen-units=4"] 

要清楚的是,這將爲您的所有項目(由.cargo/config覆蓋)設置codegen單位,而不管配置文件如何。

要確保它實際設置,您還可以在同一個文件中設置詳細輸出。這將顯示每個rustc命令與貨物調用的標誌。

[term] 
verbose = true 
+0

您的回答*幾乎*回答OP的問題,但您不清楚如何根據要求爲'dev'配置文件設置此選項。 – Shepmaster

+0

@Shepmaster雖然這個問題有點模棱兩可。他聲稱你可以在一個項目中爲每個配置文件設置它,但然後詢問如何爲'每個項目'編譯'啓用它。目前還不清楚他是否想要將所有使用開發人員配置文件編譯的項目或者所有項目都使用代碼生成器。我會澄清,這會影響所有項目,而不管配置文件。 – Zoomulator

2

一種解決方法是創建一個腳本,如果您使用的完整路徑cargo對劇本進行,而不是所謂的cargo

#!/bin/bash 

if [[ $* != *--release* ]]; then 
    # dev build 
    export RUSTFLAGS="-C codegen-units=8" 
fi 

cargo "[email protected]" 

,您可以創建一個別名

alias cargo=/path/to/script 

,只是請致電cargo