Cargo: füge eine Möglichkeit hinzu, ein Standard `--target` zu setzen

Erstellt am 30. Jan. 2016  ·  3Kommentare  ·  Quelle: rust-lang/cargo

Wenn Sie beispielsweise für Ihr Projekt immer mit cargo build --target=thumbv6m-none-eabi kompilieren. Mit dieser Funktion können Sie Ihrer Cargo-Konfigurationsdatei ein Schlüssel-Wert-Paar hinzufügen:

# .cargo/config
[target]
default = "thumbv6m-none-eabi"

Dadurch können Sie einfach cargo build aufrufen, um Ihr Projekt für thumbv6m-none-eabi zu kompilieren. Dies würde sich auch auf cargo doc .

Ursprünglich hier berichtet.

Hilfreichster Kommentar

Dies erscheint mir ziemlich vernünftig, obwohl ich sogar so weit gehen könnte zu sagen, dass es in Cargo.toml sein sollte, da es wahrscheinlich eine projektbezogene Sache ist, _wenn_ es eine Sache ist, damit anzufangen.

Alle 3 Kommentare

Dies erscheint mir ziemlich vernünftig, obwohl ich sogar so weit gehen könnte zu sagen, dass es in Cargo.toml sein sollte, da es wahrscheinlich eine projektbezogene Sache ist, _wenn_ es eine Sache ist, damit anzufangen.

Ein Nachteil (?) beim Erstellen einer Projekteinstellung besteht darin, dass die Einstellung für Abhängigkeiten immer ignoriert wird. Beispiel: Wenn mein Projekt P von Kiste D abhängt und D T als Standardziel festgelegt hat, wird diese Einstellung _immer_ ignoriert, da D immer für das Ziel kompiliert wird, das ich für P wähle.

Ein Vorteil der Verwendung von .cargo/config besteht darin, dass ich, wenn ich mehrere Kisten lokal entwickle, ein Setup wie folgt haben kann:

$ tree .
my-RTOS-project
├── .cargo
│   └── config
├── allocator
│   └── (...)
├── hal
│   └── (...)
├── RusTOS
│   └── (...)
└── scheduler
    └── (...)

Und ich kann von einem Crate-Verzeichnis zum anderen springen und cargo test ausführen. Irgendwann kann ich eine einzelne Zeile in .cargo/config bearbeiten und meine Kisten auf ein anderes Ziel testen.

Aha ja in der Tat! Das fällt etwas in den Zuständigkeitsbereich von https://github.com/rust-lang/cargo/issues/2122, wo das _kein_ Nachteil sein sollte, aber auch dort gibt es noch einige Designarbeiten zu erledigen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen