بهطور
پیشفرض،
هنگامی که
هیچ
گزینهای
برای
انتخاب
بسته مشخص
نشده باشد،
بستههای
انتخابشده
به فایل
مانیفست
فعال بستگی
خواهند
داشت (اگر
--manifest-path مشخص
نشده باشد،
بر اساس
دایرکتوری
کاری جاری
تعیین
میشود). اگر
مانیفست
ریشهٔ یک
فضای کاری
(workspace) باشد،
اعضای
پیشفرض
فضای کاری
انتخاب
میشوند،
در غیر این
صورت تنها
بستهای که
توسط
مانیفست
تعریف شده
است انتخاب
خواهد شد.
اعضای
پیشفرض یک
فضای کاری
را میتوان
بهصراحت
با کلید
workspace.default-members در
مانیفست
ریشه تعیین
کرد. اگر این
کلید تنظیم
نشده باشد،
یک فضای
کاری مجازی
شامل همهٔ
اعضای فضای
کاری خواهد
بود (معادل
ارسال --workspace)،
و یک فضای
کاری
غیرمجازی
فقط خودِ
کریت ریشه
را در بر
میگیرد.
-p spec…, --package
spec…
فقط
بستههای
مشخصشده
را بررسی
میکند.
برای آگاهی
از قالب SPEC به
cargo-pkgid(1) مراجعه
کنید. این
پرچم
میتواند
چندین بار
مشخص شود و
از الگوهای
عمومی glob
یونیکس
مانند
*،
? و
[] پشتیبانی
میکند. با
این حال،
برای
جلوگیری از
بسط تصادفی
الگوهای glob
توسط پوسته
پیش از
پردازش
آنها توسط
Cargo، باید در
اطراف هر
الگو از
علامتهای
نقلقول
تکی یا
دوگانه
استفاده
کنید.
--workspace
تمام
اعضای فضای
کاری را
بررسی
میکند.
--all
نام
مستعار
منسوخشده
برای --workspace.
--exclude SPEC…
بستههای
مشخصشده
را مستثنی
میکند.
باید همراه
با پرچم --workspace
استفاده
شود. این
پرچم
میتواند
چندین بار
مشخص شود و
از الگوهای
عمومی glob
یونیکس
مانند *، ? و
[] پشتیبانی
میکند. با
این حال،
برای
جلوگیری از
بسط تصادفی
الگوهای glob
توسط پوسته
پیش از
پردازش
آنها توسط
Cargo، باید در
اطراف هر
الگو از
علامتهای
نقلقول
تکی یا
دوگانه
استفاده
کنید.
هنگامی که
هیچ
گزینهای
برای
انتخاب هدف
مشخص نشود،
cargo check تمام
اهداف
باینری و
کتابخانهای
بستههای
انتخابشده
را بررسی
میکند.
باینریهایی
که دارای
required-features مفقود
باشند
نادیده
گرفته
میشوند.
ارسال
پرچمهای
انتخاب
هدف، تنها
اهداف
مشخصشده
را بررسی
میکند.
توجه
داشته
باشید که
پرچمهای
--bin، --example، --test و
--bench نیز از
الگوهای
عمومی glob
یونیکس
مانند *، ? و
[] پشتیبانی
میکنند. با
این حال،
برای
جلوگیری از
بسط تصادفی
الگوهای glob
توسط پوسته
پیش از
پردازش
آنها توسط
Cargo، باید در
اطراف هر
الگوی glob از
علامتهای
نقلقول
تکی یا
دوگانه
استفاده
کنید.
--lib
کتابخانهٔ
بسته را
بررسی
میکند.
--bin name…
باینری
مشخصشده
را بررسی
میکند. این
پرچم
میتواند
چندین بار
مشخص شود و
از الگوهای
عمومی glob
یونیکس
پشتیبانی
میکند.
--bins
تمام
اهداف
باینری را
بررسی
میکند.
--example name…
نمونهٔ
(example) مشخصشده
را بررسی
میکند. این
پرچم
میتواند
چندین بار
مشخص شود و
از الگوهای
عمومی glob
یونیکس
پشتیبانی
میکند.
--examples
تمام
اهداف
نمونه را
بررسی
میکند.
--test name…
آزمون
یکپارچهسازی
(integration test)
مشخصشده
را بررسی
میکند. این
پرچم
میتواند
چندین بار
مشخص شود و
از الگوهای
عمومی glob
یونیکس
پشتیبانی
میکند.
--tests
تمام
اهدافی را
که پرچم
مانیفست test = true
برای آنها
تنظیم شده
است بررسی
میکند.
بهطور
پیشفرض
این شامل
کتابخانه و
باینریهای
ساختهشده
بهعنوان
آزمونهای
واحد، و
آزمونهای
یکپارچهسازی
است. توجه
داشته
باشید که
این کار
هرگونه
وابستگی
مورد نیاز
را نیز
میسازد،
بنابراین
هدف
کتابخانه
ممکن است دو
بار ساخته
شود (یک بار
بهعنوان
آزمون
واحد، و یک
بار
بهعنوان
وابستگی
برای
باینریها،
آزمونهای
یکپارچهسازی
و غیره).
اهداف را
میتوان با
تنظیم پرچم
test در
تنظیمات
مانیفستِ
آن هدف فعال
یا غیرفعال
کرد.
--bench name…
بنچمارک
مشخصشده
را بررسی
میکند. این
پرچم
میتواند
چندین بار
مشخص شود و
از الگوهای
عمومی glob
یونیکس
پشتیبانی
میکند.
--benches
تمام
اهدافی را
که پرچم
مانیفست bench = true
برای آنها
تنظیم شده
است بررسی
میکند.
بهطور
پیشفرض
این شامل
کتابخانه و
باینریهای
ساختهشده
بهعنوان
بنچمارک،
و اهداف
بنچمارک
است. توجه
داشته
باشید که
این کار
هرگونه
وابستگی
مورد نیاز
را نیز
میسازد،
بنابراین
هدف
کتابخانه
ممکن است دو
بار ساخته
شود (یک بار
بهعنوان
بنچمارک،
و یک بار
بهعنوان
وابستگی
برای
باینریها،
بنچمارکها
و غیره).
اهداف را
میتوان با
تنظیم پرچم
bench در
تنظیمات
مانیفستِ
آن هدف فعال
یا غیرفعال
کرد.
--all-targets
تمام
اهداف را
بررسی
میکند. این
معادل مشخص
کردن
--lib --bins --tests --benches
--examples است.
پرچمهای
ویژگی به
شما اجازه
میدهند
کنترل کنید
کدام
ویژگیها
فعال شوند.
هنگامی که
هیچ
گزینهای
برای
ویژگیها
داده نشود،
ویژگی
default
برای هر
بسته
انتخابشده
فعال
میشود.
برای
جزئیات
بیشتر،
مستندات
ویژگیها
https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options
را ببینید.
-F features, --features features
فهرستی
از
ویژگیها
جداشده با
فاصله یا
کاما جهت
فعالسازی.
ویژگیهای
اعضای فضای
کاری (workspace) را
میتوان با
نحو package-name/feature-name
فعال کرد.
این پرچم را
میتوان
چندین بار
مشخص کرد،
که تمام
ویژگیهای
مشخصشده
را فعال
میکند.
--all-features
فعالسازی
تمام
ویژگیهای
موجود در
همه
بستههای
انتخابشده.
--no-default-features
ویژگی default
بستههای
انتخابشده
را فعال
نکن.
--target triple
بررسی
برای
معماری
مقصد (target)
مشخصشده.
این پرچم را
میتوان
چندین بار
مشخص کرد.
مقدار
پیشفرض،
معماری
میزبان (host)
است. ساختار
کلی
سهگانه به
صورت
<arch><sub>-<vendor>-<sys>-<abi>
است.
مقادیر
ممکن:
•هر مقصد
پشتیبانیشده
در rustc --print target-list.
•"host-tuple"،
که در داخل
با مقصد
سیستم
میزبان
جایگزین
خواهد شد.
این گزینه
بهویژه
زمانی مفید
است که در
حال
کامپایل
متقابل (cross-compiling)
برخی
کریتها
هستید و
نمیخواهید
ماشین
میزبان خود
را به عنوان
یک مقصد
مشخص کنید
(برای
نمونه، یک xtask
در
پروژهای
مشترک که
ممکن است
توسط چندین
میزبان
مختلف
توسعه داده
شود).
این مورد
را همچنین
میتوان با
مقدار
پیکربندی
build.target
https://doc.rust-lang.org/cargo/reference/config.html
مشخص کرد.
توجه
داشته
باشید که
تعیین این
پرچم باعث
میشود Cargo در
حالت
متفاوتی
اجرا شود که
در آن
مصنوعات
مقصد در یک
دایرکتوری
جداگانه
قرار
میگیرند.
برای
جزئیات
بیشتر
مستندات
کَش ساخت
https://doc.rust-lang.org/cargo/reference/build-cache.html
را ببینید.
-r, --release
بررسی
مصنوعات
بهینهسازیشده
با نمایه release.
همچنین
گزینه --profile را
برای
انتخاب یک
نمایه خاص
بر اساس نام
ببینید.
--profile name
--timings
خروجی
دادن
اطلاعات در
مورد مدت
زمانی که هر
کامپایل
طول
میکشد، و
ردگیری
اطلاعات
همزمانی در
طول زمان.
یک فایل
cargo-timing.html در
پایان ساخت
در
دایرکتوری
target/cargo-timings نوشته
خواهد شد. در
صورتی که
بخواهید یک
اجرای قبلی
را بررسی
کنید، یک
گزارش
اضافی با
برچسب
زمانی در
نام فایل آن
نیز نوشته
میشود. این
گزارشها
صرفاً برای
استفاده
انسان
مناسب
هستند و
دادههای
زمانبندی
ماشینخوان
ارائه
نمیدهند.
--target-dir directory
-v, --verbose
استفاده
از خروجی
پرچانه (verbose).
میتواند
دو بار برای
خروجی
“بسیار
پرچانه”
مشخص شود که
شامل
خروجیهای
اضافی
مانند
هشدارهای
وابستگی و
خروجی
اسکریپت
ساخت است.
همچنین
میتواند
با
مقدار
پیکربندی
term.verbose در
https://doc.rust-lang.org/cargo/reference/config.html
مشخص شود.
-q, --quiet
--color when
کنترل
زمان
استفاده از
خروجی رنگی.
مقادیر
معتبر:
•auto
(پیشفرض):
تشخیص
خودکار
اینکه آیا
پشتیبانی
از رنگ در
ترمینال
موجود است
یا خیر.
•always:
همیشه
رنگها را
نمایش
میدهد.
•never: هرگز
رنگها را
نمایش
نمیدهد.
همچنین
میتواند
با مقدار
پیکربندی
term.color در
https://doc.rust-lang.org/cargo/reference/config.html
مشخص شود.
--message-format fmt
قالب
خروجی برای
پیامهای
تشخیصی.
میتواند
چندین بار
مشخص شود و
از مقادیر
جداشده با
کاما تشکیل
میشود.
مقادیر
معتبر:
•human
(پیشفرض):
نمایش در
قالب متنی
خوانا برای
انسان. با short
و json تداخل
دارد.
•short:
انتشار
پیامهای
متنی
کوتاهتر و
خوانا برای
انسان. با human
و json تداخل
دارد.
•json-diagnostic-short:
اطمینان
حاصل
میکند که
فیلد rendered
پیامهای JSON
شامل
رندرینگ
“کوتاه” از
rustc باشد.
نمیتواند
همراه با human
یا short
استفاده
شود.
•json-diagnostic-rendered-ansi:
اطمینان
حاصل
میکند که
فیلد rendered
پیامهای JSON
شامل کدهای
رنگی
تعبیهشدهٔ
ANSI برای رعایت
طرح رنگ
پیشفرض rustc
باشد.
نمیتواند
همراه با human
یا short
استفاده
شود.
•json-render-diagnostics: به
Cargo دستور
میدهد که
پیامهای
تشخیصی rustc را
در
پیامهای JSON
چاپشده
نگنجاند،
بلکه خود Cargo
پیامهای
تشخیصی JSON
دریافتی از
rustc را رندر
کند.
پیامهای
تشخیصی JSON خود
Cargo و دیگر
پیامهای
دریافتی از
rustc همچنان
منتشر
میشوند.
نمیتواند
همراه با human
یا short
استفاده
شود.
--manifest-path path
مسیر
فایل Cargo.toml.
بهطور
پیشفرض، Cargo
فایل Cargo.toml را
در
دایرکتوری
فعلی یا هر
یک از
دایرکتوریهای
والد جستجو
میکند.
--ignore-rust-version
مشخصات
rust-version در
بستهها را
نادیده
میگیرد.
--locked
اطمینان
حاصل
میکند که
دقیقاً از
همان
وابستگیها
و
نسخههایی
استفاده
شود که در
زمان تولید
اولیهٔ
فایل
Cargo.lock
موجود
استفاده
شده بودند.
در صورت
بروز هر یک
از شرایط
زیر، Cargo با
خطا خارج
خواهد شد:
•فایل
قفل وجود
نداشته
باشد.
•Cargo به
دلیل تحلیل
و تفکیک
متفاوت
وابستگیها،
برای تغییر
فایل قفل
تلاش کند.
این گزینه
ممکن است در
محیطهایی
که در آنها
ساختهای
قطعی و
بازتولیدپذیر
مورد نیاز
است، مانند
خطوط لولهٔ
CI، استفاده
شود.
--offline
از
دسترسی Cargo به
شبکه به هر
دلیلی
جلوگیری
میکند.
بدون این
پرچم، اگر Cargo
نیاز به
دسترسی به
شبکه داشته
باشد و شبکه
در دسترس
نباشد، با
خطا متوقف
خواهد شد. با
این پرچم، Cargo
در صورت
امکان تلاش
میکند
بدون شبکه
به کار خود
ادامه دهد.
توجه
داشته
باشید که
این ممکن
است به حل
وابستگیِ
متفاوتی
نسبت به
حالت برخط
منجر شود. Cargo
خود را به
crateهایی که
بهصورت
محلی
بارگیری
شدهاند
محدود
میکند،
حتی اگر
همانطور
که در نسخهٔ
محلی نمایه
(index) مشخص شده
است، نسخهٔ
جدیدتری
وجود داشته
باشد. برای
دانلود
وابستگیها
پیش از
آفلاین
شدن، دستور
cargo-fetch(1) را
ببینید.
همچنین
میتواند
با مقدار
پیکربندی
net.offline در
https://doc.rust-lang.org/cargo/reference/config.html
مشخص شود.
--frozen
معادل
مشخص کردن
هر دو
گزینهٔ --locked و
--offline است.
+toolchain
اگر Cargo با rustup
نصب شده
باشد و
اولین
آرگومان
cargo
با
+ آغاز
شود، به
عنوان نام
زنجیره
ابزار rustup
تفسیر
خواهد شد
(مانند
+stable یا
+nightly). برای
اطلاعات
بیشتر در
مورد
چگونگی
کارکرد
بازنویسیهای
زنجیره
ابزار،
مستندات rustup
را در
https://rust-lang.github.io/rustup/overrides.html
ببینید.
--config KEY=VALUE یا PATH
-C PATH
دایرکتوری
کاری فعلی
را قبل از
اجرای هر
عملیات
مشخصشده
تغییر
میدهد. این
امر بر
مواردی
مانند محل
پیشفرضی
که cargo در آن به
دنبال
مانیفست
پروژه (
Cargo.toml)
میگردد، و
همچنین
دایرکتوریهای
جستجو شده
برای کشف
.cargo/config.toml تأثیر
میگذارد.
این گزینه
باید قبل از
نام دستور
ظاهر شود،
برای مثال
cargo -C
path/to/my-project build.
این گزینه
تنها در
کانال nightly
https://doc.rust-lang.org/book/appendix-07-nightly-rust.html
در دسترس
است و برای
فعالسازی
به پرچم -Z unstable-options
نیاز دارد
(مشاهدهٔ #10098
https://github.com/rust-lang/cargo/issues/10098).
-h, --help
اطلاعات
راهنما را
چاپ
میکند.
-Z flag
پرچمهای
ناپایدار
(فقط ویژهٔ nightly)
برای Cargo. برای
جزئیات،
cargo -Z help
را اجرا
کنید.
-j N, --jobs N
تعداد
کارهای
موازی برای
اجرا.
همچنین
میتواند
با
مقدار
پیکربندی
build.jobs
https://doc.rust-lang.org/cargo/reference/config.html
مشخص شود.
مقدار
پیشفرض،
تعداد CPUهای
منطقی است.
در صورت
منفی بودن،
بیشینهٔ
تعداد
کارهای
موازی را
برابر با
تعداد CPUهای
منطقی
بهعلاوهٔ
مقدار
ارائهشده
تعیین
میکند. اگر
رشتهٔ
default
داده شود،
مقدار را به
پیشفرض
بازمیگرداند.
نباید 0
باشد.
--keep-going
تا جای
ممکن crateهای
موجود در
گراف
وابستگی را
میسازد،
بهجای
آنکه با
شکست ساخت
نخستین crate
فرایند
ساخت را
متوقف کند.
برای مثال
اگر بستهٔ
فعلی به
وابستگیهای
fails و works
وابسته
باشد و ساخت
یکی از
آنها با
خطا مواجه
شود، ممکن
است cargo check -j1
وابستگی
موفق را
بسازد یا
نسازد (بسته
به اینکه Cargo
کدامیک از
دو ساخت را
برای اجرای
اول انتخاب
کرده باشد)،
در حالی که cargo
check -j1 --keep-going قطعاً
هر دو ساخت
را اجرا
میکند،
حتی اگر
موردی که
اول اجرا
میشود
شکست
بخورد.
--future-incompat-report
نمایش
گزارش future-incompat
برای
هرگونه
هشدار
ناسازگاری
در آینده که
در طول
اجرای این
دستور
تولید شده
است.
cargo-report(1) را
ببینید.