2015-08-15 85 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