Cargo: tambahkan cara untuk menyetel `--target` . default

Dibuat pada 30 Jan 2016  ·  3Komentar  ·  Sumber: rust-lang/cargo

Misalnya, jika untuk proyek Anda, Anda selalu melakukan kompilasi silang menggunakan cargo build --target=thumbv6m-none-eabi . Fitur ini memungkinkan Anda menambahkan pasangan nilai kunci ke file konfigurasi kargo Anda:

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

Itu akan membuat Anda cukup memanggil cargo build untuk mengkompilasi silang proyek Anda untuk thumbv6m-none-eabi . Ini juga akan meluas ke cargo doc .

Awalnya dilaporkan di sini .

Komentar yang paling membantu

Ini tampaknya cukup masuk akal bagi saya, meskipun saya mungkin mengatakan bahwa itu harus di Cargo.toml karena kemungkinan itu adalah hal per-proyek _jika_ itu adalah hal untuk memulai.

Semua 3 komentar

Ini tampaknya cukup masuk akal bagi saya, meskipun saya mungkin mengatakan bahwa itu harus di Cargo.toml karena kemungkinan itu adalah hal per-proyek _jika_ itu adalah hal untuk memulai.

Satu kelemahan (?) dari menjadikannya sebagai pengaturan proyek adalah bahwa pengaturan akan selalu diabaikan untuk dependensi. Contoh: Jika proyek saya P tergantung pada peti D dan D telah menetapkan T sebagai target default, pengaturan itu akan _selalu_ diabaikan karena D akan selalu dikompilasi untuk target yang saya pilih untuk P.

Salah satu keuntungan menggunakan .cargo/config adalah jika saya mengembangkan beberapa peti secara lokal, maka saya dapat memiliki pengaturan seperti ini:

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

Dan saya dapat melompat dari satu direktori peti ke yang lain dan menjalankan cargo test . Pada titik tertentu saya dapat mengedit satu baris di .cargo/config dan mulai menguji peti saya untuk target yang berbeda.

Ah iya memang! Itu agak berada di bawah lingkup https://github.com/rust-lang/cargo/issues/2122 di mana _tidak boleh_ menjadi kerugian, tetapi masih ada beberapa pekerjaan desain yang harus dilakukan di sana juga.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat