.\" Generated by scdoc 1.11.4 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "hare-module" "5" "2026-06-01" .PP .SH "نام (NAME)" .PP hare-module \- ساختار و چینش ماژول‌های هیر (Hare) .PP .SH "توضیحات (DESCRIPTION)" .PP ماژول‌های هیر (Hare) در سیستم‌فایل به‌صورت دایرکتوری نمایش داده می‌شوند.\& یک دایرکتوری در صورتی یک ماژول معتبر هیر محسوب می‌شود که حداقل شامل یک فایل منبع هیر (با پسوند فایل \fB.\&ha\fR) یا فایلی با نام \fBREADME\fR باشد.\& .PP تمام فایل‌هایی که به \fB.\&ha\fR، \fB.\&s\fR و \fB.\&o\fR ختم می‌شوند، به‌عنوان ورودی‌های ماژول در نظر گرفته شده و به‌ترتیب به‌عنوان سورس‌های هیر، سورس‌های اسمبلی و آبجکت‌هایی برای پیوند (Link) در باینری نهایی تلقی می‌گردند.\& .PP فهرست فایل‌های واجد شرایط ممکن است بر اساس تگ‌های ساخت فیلتر شود (بخش \fBتگ‌های ساخت (BUILD TAGS)\fR در ادامه را ببینید).\& قالب نام فایل به‌صورت \fIname\fR[\fItagset\fR].\&\fIext\fR است، که در آن \fIname\fR توسط کاربر تعریف می‌شود، \fIext\fR یکی از مقادیر \fBha\fR، \fBs\fR یا \fBo\fR است و مجموعه تگ‌ها (tagset؛ بخش \fBتگ‌های ساخت (BUILD TAGS)\fR را ببینید) به‌صورت اختیاری پس از نام آورده می‌شود.\& یک فایل تنها در صورتی گنجانده خواهد شد که تمام تگ‌های دارای علامت \fB+\fR در مجموعه تگ‌ها موجود باشند و هیچ‌یک از تگ‌های دارای علامت \fB\-\fR در مجموعه تگ‌ها موجود نباشند.\& .PP برای هر ترکیب مشخص از \fIname\fR و \fIext\fR تنها یک فایل برای ساخت انتخاب خواهد شد؛ فایل انتخاب‌شده فایلی است که بیشترین شناسه تگ (Tag Specifiers) را داشته باشد.\& اگر دو یا چند فایل با این مشخصات وجود داشته باشند، درایور ساخت (Build Driver) با خطا متوقف خواهد شد.\& .PP به‌عنوان مثال، اگر فایل‌های زیر در یک دایرکتوری موجود باشند: .PP .PD 0 .IP \(bu 4 foo.\&ha .IP \(bu 4 bar.\&ha .IP \(bu 4 bar+linux.\&ha .IP \(bu 4 bar+plan9.\&ha .IP \(bu 4 baz+x86_64.\&s .IP \(bu 4 bat-x86_64.\&ha .PD .PP اگر تگ‌های ساخت \fB+linux+x86_64\fR باشند، فایل‌هایی که در ماژول گنجانده می‌شوند عبارتند از foo.\&ha، bar+linux.\&ha و baz+x86_64.\&s.\& حال اگر فایل‌های زیر افزوده شوند: .PP .PD 0 .IP \(bu 4 meep+linux-libc.\&ha .IP \(bu 4 meep+linux+x86_64.\&ha .PD .PP درایور ساخت با خطا متوقف خواهد شد، مگر اینکه \fB+libc\fR به تگ‌های ساخت اضافه گردد.\& .PP علاوه بر این، زیردایرکتوری‌ها در یک ماژول در صورتی بخشی از آن ماژول در نظر گرفته می‌شوند که نام آن‌ها فقط از یک مجموعه تگ تشکیل شده باشد، مانند \fB"+linux"\fR یا \fB"\-x86_64"\fR.\& دایرکتوری‌ای که فقط دارای نام باشد (بدون مجموعه تگ، مانند \fB"example"\fR) یک زیرماژول (Submodule) تلقی شده و بنابراین باید به‌صورت جداگانه ایمپورت شود.\& برای نمونه، \fB"foo::bar"\fR به مسیر \fBfoo/bar/\fR اشاره دارد.\& اگر نام دایرکتوری هم شامل نام و هم شامل یک مجموعه تگ باشد، درایور ساخت با خطا متوقف خواهد شد.\& .PP .SH "حل وابستگی‌ها (DEPENDENCY RESOLUTION)" .PP دستورات «use» در هر فایل منبع هیر که به‌عنوان ورودی به \fBhare-build\fR(1)، \fBhare-run\fR(1) یا \fBhare-test\fR(1) داده می‌شوند، اسکن شده و برای تعیین وابستگی‌های یک برنامه به کار می‌روند.\& این فرآیند برای هر وابستگی تکرار می‌شود تا درخت کامل وابستگی‌ها به دست آید.\& .PP وابستگی‌ها ابتدا با بررسی دایرکتوری کاری فعلی و سپس با بررسی هر یک از بخش‌های \fBHAREPATH\fR که فهرستی از مسیرهای جداشده با دونقطه (:) است، جستجو می‌شوند.\& \fBHAREPATH\fR از متغیر محیطی با همین نام دریافت می‌گردد.\& اگر این متغیر محیطی تنظیم نشده باشد، یک مقدار پیش‌فرض استفاده می‌شود که با اجرای دستور \fBhare version \-v\fR قابل مشاهده است.\& به‌طور معمول، این مسیر طوری تنظیم می‌شود که شامل مسیر کتابخانه استاندارد نصب‌شده روی سیستم و همچنین مکانی ارائه‌شده توسط سیستم برای ماژول‌های شخص ثالث (نصب‌شده از طریق مدیر بسته‌ی سیستم) باشد.\& .PP دستور \fBhare-deps\fR(1) می‌تواند برای چاپ درخت وابستگی‌های یک ماژول هیر استفاده شود.\& .PP .SH "تگ‌های ساخت (BUILD TAGS)" .PP تگ‌های ساخت به شما امکان می‌دهند تا محدودیت‌هایی بر ویژگی‌ها یا پلتفرم‌های فعال در ساخت اعمال کنید.\& یک تگ عبارت است از یک نام تشکیل‌شده از نویسه‌هایی به‌جز \&'+'\&، \&'\-'\& یا \&'.'\&، به همراه پیشوند \&'+'\& یا \&'\-'\& برای مشخص کردن شمول یا انحصار (عدم شمول).\& .PP برای افزودن یا حذف تگ‌های ساخت، از فلگ .B \-T استفاده کنید.\& برای مثال، \fB\-T +foo\-bar\fR تگ '\&foo'\& را افزوده و تگ '\&bar'\& را حذف می‌کند.\& .PP برخی از تگ‌ها به‌طور پیش‌فرض فعال هستند و قابلیت‌های پلتفرم میزبان را فعال می‌کنند.\& می‌توانید مجموعه تگ‌های پیش‌فرض را با اجرای دستور \fBhare version \-v\fR مشاهده کنید.\& برای حذف تمام تگ‌های پیش‌فرض، از \fB\-T\(ha\fR استفاده کنید.\& .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fBhare\fR(1), \fBhare-build\fR(1), \fBhare-run\fR(1), \fBhare-test\fR(1)