2015-08-15 8 views
5

Mit Cargo, kann ich ein Projekt der Entwicklungseinstellungen parallel Codegenerierung zu verwenden:Wie kann ich eine Cargo-Profiloption global konfigurieren?

[profile.dev] 
codegen-units = 8 

Nach the documentation, sollte es möglich sein, dies in ~/.cargo/config setzen diese Einstellung für alle Projekte gelten. Dies funktioniert bei mir nicht: Es scheint, dass die Datei .cargo/config überhaupt nicht verwendet wird. Gibt es eine Möglichkeit, eine solche Konfiguration auf alle Projekt, das ich kompiliere anwenden?

+0

Die Dokumentation, mit der Sie verknüpft sind, listet keines der Profile als gültige globale Konfiguration auf; Vielleicht ist das das Problem? Da Profile ziemlich projektspezifisch erscheinen, scheint es wahrscheinlich, dass diese Dateien nicht einmal überprüft werden. Hast du einen der anderen möglichen Wege ausprobiert? – Shepmaster

+0

Ohh, ich hatte nicht daran gedacht, dass Profile nicht global konfigurierbar sein könnten. Ich habe keine anderen Wege ausprobiert. – thirtythreeforty

Antwort

3

Sie können in Ihrer Datei .cargo/config Rustflags für alle Builds oder Ziele festlegen.

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

Um klar zu sein, das die codegen-Einheiten für alle Ihre Projekte gesetzt wird (dieses .cargo/config abgedeckt), unabhängig von Profil.

Um sicherzustellen, dass es tatsächlich festgelegt ist, können Sie auch eine ausführliche Ausgabe in derselben Datei festlegen. Dies zeigt jeden rustc-Befehl mit Flaggen an, die fracht aufrufen.

[term] 
verbose = true 
+0

Ihre Antwort * fast * beantwortet OPs Frage, aber es ist unklar, wie Sie diese Option für das 'dev' Profil, wie angefordert, einstellen würden. – Shepmaster

+0

@Shempmaster Die Frage ist ein wenig mehrdeutig. Er gibt an, dass Sie es pro Profil in einem Projekt festlegen können, fragt dann aber, wie Sie es für "jedes Projekt, das Sie kompilieren" aktivieren. Es ist unklar, ob er Codegen-Einheiten für alle Projekte verwenden möchte, die mit dem Entwicklerprofil kompiliert werden, oder nur für alle Projekte. Ich werde klarstellen, dass dies alle Projekte unabhängig vom Profil betrifft. – Zoomulator

2

Eine Abhilfe ist, ein Skript zu erstellen, um anstelle von cargo

#!/bin/bash 

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

cargo "[email protected]" 

Wenn Sie den vollständigen Pfad zum cargo auf dem Skript aufgerufen werden, können Sie ein Alias ​​

alias cargo=/path/to/script 

erstellen und einfach Anruf cargo.

Verwandte Themen