| DUNE-BUILD(1) | Dune Manual | DUNE-BUILD(1) |
نام (NAME)
dune-build - ساخت هدفهای مشخصشده، یا هدفهای پیشفرض در صورت مشخص نشدن هیچ هدفی
خلاصه دستور (SYNOPSIS)
dune build [OPTION]… [TARGET]…
توضیحات (DESCRIPTION)
هدفهایی که با @ شروع میشوند، به عنوان نام مستعار (alias) تفسیر میشوند.
گزینهها (OPTIONS)
- --action-stderr-on-success=VAL
- مشابه --action-stdout-on-success اما برای خطای استاندارد به جای خروجی استاندارد. یک مقدار پیشفرض مناسب برای مخازن بزرگ تکمخزنی (monorepo)، گزینهٔ --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty است. این کار تضمین میکند که یک ساخت موفق، خروجی خالی و «تمیز» داشته باشد.
- --action-stdout-on-success=VAL
- تعیین نحوهٔ برخورد با خروجی استاندارد کنشها در هنگام موفقیت آنها. مقادیر ممکن عبارتند از: print برای چاپ مستقیم آن در خروجی Dune، swallow برای نادیده گرفتن کامل آن، و must-be-empty برای الزام به اینکه کنش نباید چیزی چاپ کرده باشد. با انتخاب must-be-empty، اگر کنشی چیزی در خروجی استاندارد خود چاپ کند، Dune آن را ناموفق تلقی خواهد کرد. پیشفرض print است.
- --alias=ALIAS
- ساخت ALIAS تنها در دایرکتوری والد آن. معادل با هدف ساخت @@ALIAS است. مثال: --alias dir/foo نام مستعار foo را تنها در dir/ میسازد. قابل تکرار است.
- --alias-rec=ALIAS
- ساخت نام مستعار ALIAS در دایرکتوری والد آن و تمام زیردایرکتوریها. معادل با هدف ساخت @ALIAS است. مثال: --alias-rec dir/foo نام مستعار foo را در dir/ و تمام زیردایرکتوریهای آن میسازد. قابل تکرار است.
- --build-info
- نمایش اطلاعات ساخت.
- --display-separate-messages
- جداسازی پیامهای خطا با یک خط خالی.
- --error-reporting=VAL (absent=deterministic)
- کنترل زمان گزارش خطاهای ساخت. مقدار early خطاها را به محض کشف گزارش میکند. مقدار deterministic خطاها را در پایان ساخت با ترتیبی معین گزارش میکند. مقدار twice هر خطا را دو بار گزارش میکند: یک بار به محض کشف خطا و بار دیگر در پایان ساخت با ترتیبی معین.
- -f, --force
- اجبار به اجرای مجدد کنشهای مرتبط با نامهای مستعار، حتی اگر وابستگیهای آنها تغییر نکرده باشد.
- --file-watcher=VAL (absent=automatic)
- سازوکار تشخیص تغییرات در کد مبدأ. مقدار Automatic برای اینکه dune یک برنامهٔ خارجی را برای تشخیص تغییرات اجرا کند. مقدار Manual برای اینکه تغییر فایلها به صورت دستی به dune اطلاع داده شود.
- --passive-watch-mode
- مشابه [--watch]، اما فرایند ساخت تنها زمانی آغاز میشود که از بیرون توسط یک RPC دستور داده شود.
- --sandbox=VAL (absent DUNE_SANDBOX env)
- تنظیم حالت ایزولهسازی (sandboxing). برخی کنشها نیازمند حالت ایزولهسازی خاصی هستند، بنابراین این تنظیم را نادیده خواهند گرفت. مقادیر مجاز عبارتند از: none، symlink، copy، hardlink.
- --stop-on-first-error
- متوقف کردن ساخت به محض مواجهه با اولین خطا.
- -w, --watch
- به جای پایان دادن به ساخت پس از اتمام، به طور مداوم منتظر تغییرات فایل بماند.
- --wait-for-filesystem-clock
- ابزار Dune برای بهبود کارایی افزایشی، خلاصهٔ (digest) محتوای فایلها را محاسبه میکند. این خلاصهها خودشان در حافظهٔ نهان نگهداری میشوند. در برخی موارد، Dune برای اطمینان از صحت عملکرد نیاز دارد برخی از ورودیهای حافظهٔ نهان خلاصهها را دور بریزد. این گزینه باعث میشود Dune منتظر بماند تا ساعت سیستمفایل جلو برود تا نیازی به دور ریختن چیزی نباشد. شما احتمالاً نیازی به این گزینه ندارید؛ این گزینه بیشتر برای توسعهدهندگان Dune به منظور بازتولیدپذیرتر کردن آزمونهای حافظهٔ نهان خلاصهها مفید است.
گزینههای عمومی (COMMON OPTIONS)
این گزینهها بین تمامی دستورها مشترک هستند.
- --always-show-command-line
- همیشه خط فرمان کامل برنامههای اجراشده توسط dune نمایش داده شود.
- --auto-promote
- ارتقای خودکار فایلها (promote). این کار مشابه اجرای dune promote پس از ساخت است.
- --build-dir=FILE (absent DUNE_BUILD_DIR env)
- دایرکتوری ساخت مشخصشده. در صورت مشخص نشدن _build خواهد بود
- --cache=VAL (absent DUNE_CACHE env)
- فعال یا غیرفعال کردن حافظهٔ نهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). مقدار پیشفرض `enabled-except-user-rules' است.
- --cache-check-probability=VAL (absent DUNE_CACHE_CHECK_PROBABILITY env)
- بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعد بهطور تصادفی انتخابشده و مقایسهٔ نتایج آنها با موارد ذخیرهشده در حافظهٔ نهان Dune. نکته: با افزایش احتمال این بررسیها، فرایند ساخت کندتر میشود. احتمال پیشفرض صفر است، یعنی هیچ قاعدهای بررسی نمیشود.
- --cache-storage-mode=VAL (absent DUNE_CACHE_STORAGE_MODE env)
- حالت ذخیرهسازی حافظهٔ نهان Dune (یکی از مقادیر auto، hardlink یا copy). پیشفرض `hardlink' است.
- --config-file=FILE
- بارگذاری این فایل پیکربندی به جای فایل پیشفرض.
- --debug-backtraces
- چاپ همیشگی ردگیری پشتهٔ (backtrace) استثناها.
- --debug-dependency-path
- در صورت بروز خطا، مسیر وابستگی از هدفهای روی خط فرمان تا قاعدهای که شکست خورده چاپ شود.
- --debug-package-logs (absent DUNE_DEBUG_PACKAGE_LOGS env)
- چاپ همیشگی گزارشهای استاندارد هنگام ساخت بستهها
- --default-target=TARGET (absent=@@default)
- تنظیم هدف پیشفرضی که در صورت مشخص نشدن هیچ هدفی برای dune build استفاده میشود.
- --diff-command=VAL (absent DUNE_DIFF_COMMAND env)
- دستور شل برای مقایسهٔ تفاضلی (diff) فایلها. برای غیرفعال کردن چاپ تفاضل از - استفاده کنید.
- --disable-promotion (absent DUNE_DISABLE_PROMOTION env)
- غیرفعال کردن تمام قواعد ارتقا
- --display=MODE
- کنترل حالت نمایش Dune. برای جزئیات بیشتر dune-config(5) را ببینید. مقادیر معتبر برای این گزینه عبارتند از progress، verbose، short، quiet یا tui.
- --dump-gc-stats=FILE
- تخلیهٔ آمار زبالهروب (garbage collector) در یک فایل پس از اتمام ساخت.
- --help[=FMT] (default=auto)
- نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از auto، pager، groff یا plain باشد. با auto، هرگاه متغیر محیطی TERM برابر dumb یا تعریفنشده باشد، قالب به صورت pager یا plain خواهد بود.
- --ignore-promoted-rules
- نادیده گرفتن قواعد دارای (mode promote)، به استثنای مواردی که دارای (only ...) هستند. متغیر %{ignoring_promoted_rules} در فایلهای dune مشخص میکند که این گزینه مشخص شده است یا خیر.
- --instrument-with=BACKENDS (absent DUNE_INSTRUMENT_WITH env)
- فعالسازی ابزار دقیق (instrumentation) توسط BACKENDS. آرگومان BACKENDS فهرستی از نامهای کتابخانههاست که با کاما از هم جدا شدهاند و هر یک باید یک پسبخش ابزار دقیق را اعلان کرده باشند.
- -j JOBS (absent DUNE_JOBS env)
- اجرای حداکثر JOBS دستور به صورت همزمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هستهها (پیشفرض) باشد.
- --no-buffer
- عدم ذخیرهٔ خروجی دستورهای اجراشده توسط dune در میانگیر (buffer). به طور پیشفرض dune خروجی زیردستورها را میانگیری میکند تا از تداخل آنها هنگام اجرای موازی چندین دستور جلوگیری شود. با این حال، این موضوع میتواند در هنگام اشکالزدایی آزمونهای طولانی مشکلساز شود. با گزینهٔ --no-buffer، دستورها دسترسی مستقیم به ترمینال دارند. توجه داشته باشید که در نتیجه، خروجی آنها در فایل گزارش ثبت نخواهد شد. برای جلوگیری از تداخل، باید این گزینه را همراه با -j 1 استفاده کنید. علاوه بر این، باید از --verbose نیز استفاده کنید تا مطمئن شوید دستورها پیش از اجرا چاپ میشوند.
- --no-config
- عدم بارگذاری فایل پیکربندی
- --no-print-directory
- عدم نمایش پیامهای "Entering directory".
- --only-packages=PACKAGES
- نادیده گرفتن بندهایی (stanzas) که به بستهای ارجاع میدهند که در PACKAGES نیست. آرگومان PACKAGES فهرستی از نامهای بستههاست که با کاما از هم جدا شدهاند. توجه داشته باشید که این کار تأثیری مشابه با حذف بندهای مربوطه از فایلهای dune دارد. این گزینه عمدتاً برای انتشار نسخههای نهایی در نظر گرفته شده است. در طول توسعه، احتمالاً آنچه میخواهید ساخت یک هدف مشخص <package>.install است.
- -p PACKAGES, --for-release-of-packages=PACKAGES (required)
- کوتاهنوشتی برای --release --pkg=disabled --only-packages PACKAGE. هنگامی که پروژهٔ شما شامل چندین بسته است، برای ساختن تنها موارد ضروری و همچنین دستیابی به ساختهای بازتولیدپذیر، باید از این گزینه در فایلهای <package>.opam خود استفاده کنید.
- --pkg=VAL
- فعال یا غیرفعال کردن مدیریت بستهها. رفتار پیشفرض به وجود یک دایرکتوری قفل بستگی دارد.
- --profile=VAL (absent DUNE_PROFILE env)
- انتخاب نمایهٔ ساخت، برای نمونه dev یا release. پیشفرض dev است.
- --promote-install-files[=VAL] (default=true)
- ارتقای تمام فایلهای <package>.install تولیدشده به درخت مبدأ.
- --release
- قرار دادن dune در حالت بازتولیدپذیر release. کوتاهنوشتی برای --root . --ignore-promoted-rules --no-config --profile release --always-show-command-line --promote-install-files --require-dune-project-file --default-target @install. برای ساختهای نسخهٔ انتشار باید از این گزینه استفاده کنید. برای نمونه، در فایلهای <package>.opam خود باید این گزینه را به کار ببرید؛ به جز زمانی که از قبل از -p استفاده کرده باشید، زیرا -p متضمن این گزینه است.
- --require-dune-project-file[=VAL] (default=true)
- شکست عملیات در صورت موجود نبودن فایل dune-project.
- --root=DIR (absent DUNE_ROOT env)
- استفاده از این دایرکتوری به عنوان ریشهٔ فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدفهای ارائهشده در خط فرمان را تغییر نمیدهد. این گزینه تنها برای اسکریپتها در نظر گرفته شده است.
- --store-orig-source-dir (absent DUNE_STORE_ORIG_SOURCE_DIR env)
- ذخیرهٔ مکان اصلی مبدأ در فرادادهٔ بستهٔ dune-package.
- --target-exec=TOOLCHAIN=CMD (absent DUNE_TARGET_EXEC env)
- دستور لفاف برای اجرای فایلهای اجرایی هدف هنگام کامپایل متقابل (cross-compiling). قالب: TOOLCHAIN=CMD (برای نمونه، 'windows=wine').
- --terminal-persistence=MODE
- تغییر نحوهٔ نمایش گزارش نتایج ساخت در کنسول بین ساختهای مجدد در هنگام حضور در حالت --watch. حالتهای پشتیبانیشده: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
- --trace-file=FILE
- خروجی دادههای ردگیری در قالب catapult (سازگار با chrome://tracing).
- --verbose
- مشابه با --display verbose
- --version
- نمایش اطلاعات نسخه.
- --watch-exclusions=REGEX
- افزودن یک عبارت باقاعدهٔ POSIX که دایرکتوریهای منطبق را از `dune build --watch` مستثنی میکند. گزینهٔ --watch-exclusions برای افزودن چندین مورد استثنا میتواند تکرار شود. همچنین میتوان از نقطهویرگول به عنوان جداکننده استفاده کرد. اگر هیچ استثنایی ارائه نشود، مجموعهای استاندارد از استثناها به کار گرفته میشود؛ با این حال، اگر یک یا چند گزینهٔ --watch-exclusions مشخص شود، هیچیک از استثناهای استاندارد اعمال نخواهند شد. استثناهای استاندارد عبارتند از: ^_opam /_opam ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
- --workspace=FILE (absent DUNE_WORKSPACE env)
- استفاده از این فایل فضای کاری مشخص به جای جستجوی خودکار آن.
- -x VAL (absent DUNE_CROSS_TARGET env)
- کامپایل متقابل با استفاده از این زنجیره ابزار.
راهنمایی بیشتر (MORE HELP)
برای راهنمایی در مورد یک دستور خاص از `dune COMMAND --help' استفاده کنید.
وضعیت خروج (EXIT STATUS)
دستور dune build با این کدها خارج میشود:
- 0
- در صورت موفقیت.
- 1
- در صورت بروز خطا.
- 130
- در صورتی که توسط یک سیگنال متوقف شود.
محیط (ENVIRONMENT)
این متغیرهای محیطی بر اجرای build تأثیر میگذارند:
- CLICOLOR
- اگر مقداری غیر از 0 باشد، رنگهای ANSI پشتیبانی میشوند و زمانی که خروجی برنامه پایپ نشده باشد باید استفاده شوند. اگر برابر 0 باشد، کدهای فرار رنگی ANSI در خروجی درج نمیشوند
- CLICOLOR_FORCE
- اگر مقداری غیر از 0 باشد، رنگهای ANSI در هر حالتی باید فعال باشند.
- DUNE_BUILD_DIR
- دایرکتوری ساخت مشخصشده. در صورت مشخص نشدن _build است
- DUNE_CACHE
- فعال یا غیرفعال کردن حافظهٔ نهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). پیشفرض `enabled-except-user-rules' است.
- DUNE_CACHE_CHECK_PROBABILITY
- بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعد بهطور تصادفی انتخابشده و مقایسهٔ نتایج آنها با موارد ذخیرهشده در حافظهٔ نهان Dune. نکته: با افزایش احتمال این بررسیها، فرایند ساخت کندتر میشود. احتمال پیشفرض صفر است، یعنی هیچ قاعدهای بررسی نمیشود.
- DUNE_CACHE_ROOT
- در صورت تنظیم، مکان تمامی حافظههای نهان مختلف مورد استفادهٔ dune را تعیین میکند.
- DUNE_CACHE_STORAGE_MODE
- حالت ذخیرهسازی حافظهٔ نهان Dune (یکی از مقادیر auto، hardlink یا copy). پیشفرض `hardlink' است.
- DUNE_CROSS_TARGET
- کامپایل متقابل با استفاده از این زنجیره ابزار.
- DUNE_DEBUG_PACKAGE_LOGS
- چاپ همیشگی گزارشهای استاندارد هنگام ساخت بستهها
- DUNE_DIFF_COMMAND
- دستور شل برای مقایسهٔ تفاضلی فایلها. برای غیرفعال کردن چاپ تفاضل از - استفاده کنید.
- DUNE_DISABLE_PROMOTION
- غیرفعال کردن تمام قواعد ارتقا
- DUNE_INSTRUMENT_WITH
- فعالسازی ابزار دقیق توسط BACKENDS. آرگومان BACKENDS فهرستی از نامهای کتابخانههاست که با کاما از هم جدا شدهاند و هر یک باید یک پسبخش ابزار دقیق را اعلان کرده باشند.
- DUNE_JOBS
- اجرای حداکثر JOBS دستور به صورت همزمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هستهها (پیشفرض) باشد.
- DUNE_PROFILE
- نمایهٔ ساخت. در صورت مشخص نشدن dev، یا در صورت تنظیم بودن -p مقدار آن release خواهد بود.
- DUNE_ROOT
- استفاده از این دایرکتوری به عنوان ریشهٔ فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدفهای ارائهشده در خط فرمان را تغییر نمیدهد. این گزینه تنها برای اسکریپتها در نظر گرفته شده است.
- DUNE_SANDBOX
- حالت ایزولهسازی پیشفرض مورد استفاده. (گزینهٔ --sandbox را ببینید)
- DUNE_STORE_ORIG_SOURCE_DIR
- ذخیرهٔ مکان اصلی مبدأ در فرادادهٔ بستهٔ dune-package.
- DUNE_TARGET_EXEC
- دستور لفاف برای اجرای فایلهای اجرایی هدف هنگام کامپایل متقابل. قالب: TOOLCHAIN=CMD (برای نمونه، 'windows=wine').
- DUNE_WORKSPACE
- استفاده از این فایل فضای کاری مشخص به جای جستجوی خودکار آن.
گزارش باگها (BUGS)
گزارشهای باگ را در https://github.com/ocaml/dune/issues بررسی کنید
همچنین ببینید (SEE ALSO)
dune(1)
مثالها (EXAMPLES)
- 1.
- ساخت تمامی هدفها در درخت مبدأ فعلی:
dune build
- 2.
- ساخت هدفها در دایرکتوری `./foo/bar':
dune build ./foo/bar
- 3.
- ساخت حداقل مجموعهٔ هدفهای لازم برای ابزارهایی مانند Merlin (مفید برای تشخیص سریع خطاها):
dune build @check
- 4.
- اجرای تمامی ابزارهای قالببندی کد به صورت درجا (in-place):
dune build --auto-promote @fmt
| Dune 3.24.2 |