| fpc.cfg(5) | FPC configuration file | fpc.cfg(5) |
نام (NAME)
fpc.cfg - فایل پیکربندی کامپایلر Free Pascal
توضیحات (DESCRIPTION)
این فایل، فایل پیکربندی اصلی کامپایلر Free Pascal (FPC) است.
تمام گزینههای خط فرمان کامپایلر (توصیفشده در fpc(1) ) را میتوان در fpc.cfg مشخص کرد.
هنگامی که فایل پیکربندی یافت شود، خوانده میشود و با خطوط موجود در آن همانند گزینههایی که در خط فرمان وارد کردهاید رفتار خواهد شد (به fpc(1) مراجعه کنید)، همراه با برخی قابلیتهای شرطی اضافی.
سینتکس (SYNTAX)
میتوانید با علامت # در فایل پیکربندی کامنت مشخص کنید. هر متنی از علامت # به بعد نادیده گرفته میشود، مگر اینکه یکی از کلیدواژهها باشد (پایین را ببینید).
کامپایلر فایل fpc.cfg را در مکانهای زیر جستجو میکند:
- در
لینوکس و
یونیکس:
- دایرکتوری
جاری.
- دایرکتوری
خانگی (به
دنبال .fpc.cfg
میگردد).
- دایرکتوری
مشخصشده
در متغیر
محیطی
PPC_CONFIG_PATH، و اگر
مقداردهی
نشده باشد
در compilerdir/../etc.
- اگر هنوز
یافت نشده
باشد: در /etc.
- در سایر
سیستمعاملها:
- دایرکتوری
جاری.
- دایرکتوری
مشخصشده
در متغیر
محیطی
PPC_CONFIG_PATH.
- دایرکتوری
حاوی فایل
باینری
کامپایلر.
هنگامی که کامپایلر خواندن فایل پیکربندی را به پایان رساند، به پردازش گزینههای خط فرمان ادامه میدهد.
یکی از گزینههای خط فرمان به شما امکان میدهد یک فایل پیکربندی دوم را مشخص کنید: مشخص کردن @foo در خط فرمان، به جای fpc.cfg از فایل foo استفاده کرده و گزینههای بعدی را از آنجا میخواند. پس از اینکه کامپایلر خواندن این فایل را تمام کرد، به پردازش خط فرمان ادامه میدهد.
فایل پیکربندی امکان نوعی پیشپردازش را فراهم میکند. این فایل دستورالعملهای زیر را میشناسد که باید آنها را در ستون اول یک سطر قرار دهید:
#IFDEF
#IFNDEF
#ELSE
#ENDIF
#DEFINE
#UNDEF
#WRITE
#INCLUDE
#SECTION
این دستورالعملها به همان روش معادلهای دستورالعملی $... خود در پاسکال کار میکنند:
- #IFDEF
- ساختار (Syntax)
- #IFDEF name
اگر کلیدواژه «name» که پس از آن میآید تعریف نشده باشد، خطوط پس از #IFDEF نادیده گرفته میشوند.
این خطوط تا رسیدن به کلیدواژههای #ELSE یا #ENDIF خوانده میشوند و پس از آن پردازش عادی از سر گرفته میشود.
- مثال (Example)
-
#IFDEF VER0_99_12 -Fu/usr/lib/fpc/0.99.12/rtl #ENDIF
در مثال بالا، اگر با نسخه 0.99.12 کامپایلر اقدام به کامپایل کنید، مسیر /usr/lib/fpc/0.99.12/rtl به مسیر اضافه خواهد شد.
- #IFNDEF
- ساختار (Syntax)
- #IFNDEF name
اگر کلیدواژه «name» که پس از آن میآید تعریف شده باشد، خطوط پس از #IFNDEF نادیده گرفته میشوند.
این خطوط تا رسیدن به کلیدواژههای #ELSE یا #ENDIF خوانده میشوند و پس از آن پردازش عادی از سر گرفته میشود.
- مثال (Example)
-
#IFNDEF VER0_99_12 -Fu/usr/lib/fpc/0.99.13/rtl #ENDIF
در مثال بالا، اگر با نسخه 0.99.12 کامپایلر کامپایل نکنید، مسیر /usr/lib/fpc/0.99.13/rtl به مسیر اضافه خواهد شد.
- #ELSE
- ساختار (Syntax)
- #ELSE
دستورالعمل #ELSE میتواند پس از یک دستورالعمل #IFDEF یا #IFNDEF به عنوان یک جایگزین مشخص شود. اگر دستورالعمل قبلی (#IFDEF یا #IFNDEF) پذیرفته شده باشد، خطوط پس از #ELSE نادیده گرفته میشوند.
این خطوط تا رسیدن به کلیدواژه #ENDIF نادیده گرفته میشوند و پس از آن پردازش عادی از سر گرفته میشود.
- مثال (Example)
-
#IFDEF VER0_99_12 -Fu/usr/lib/fpc/0.99.12/rtl #ELSE -Fu/usr/lib/fpc/0.99.13/rtl #ENDIF
در مثال بالا، اگر با نسخه 0.99.12 کامپایلر اقدام به کامپایل کنید، مسیر /usr/lib/fpc/0.99.12/rtl به مسیر اضافه خواهد شد؛ در غیر این صورت /usr/lib/fpc/0.99.13/rtl اضافه میشود.
- #ENDIF
- ساختار (Syntax)
- #ENDIF
دستورالعمل #ENDIF پایان بلوکی را که با #IF(N)DEF شروع شده است (که احتمالاً یک #ELSE نیز در میان آن قرار دارد) مشخص میکند.
- #DEFINE
- ساختار (Syntax)
- #DEFINE name
دستورالعمل #DEFINE یک کلیدواژه جدید تعریف میکند. این عمل همان تاثیر گزینه خط فرمان -dname را دارد.
- #UNDEF
- ساختار (Syntax)
- #UNDEF name
دستورالعمل #UNDEF تعریف یک کلیدواژه را در صورت وجود لغو میکند. این عمل همان تاثیر گزینه خط فرمان -uname را دارد.
- #WRITE
- ساختار (Syntax)
- #WRITE Message Text
دستورالعمل #WRITE عبارت «Message Text» را روی صفحه نمایش میدهد. این دستور میتواند برای نمایش هشدار در صورت تنظیم گزینههای خاص مفید باشد.
- مثال (Example)
-
#IFDEF DEBUG #WRITE Setting debugging ON... -g #ENDIF
اگر DEBUG تعریف شده باشد، این دستور خط زیر را تولید خواهد کرد:
Setting debugging ON...
و سپس اطلاعات اشکالزدایی (debugging) را در کامپایلر فعال میکند.
- #INCLUDE
- ساختار (Syntax)
- #INCLUDE filename
دستورالعمل #INCLUDE به کامپایلر فرمان میدهد که پیش از ادامه پردازش گزینهها در فایل جاری، محتویات «filename» را بخواند.
این ویژگی زمانی میتواند مفید باشد که بخواهید یک فایل پیکربندی ویژه برای یک پروژه (یا در سیستمهای شبهیونیکس مانند لینوکس، در دایرکتوری خانگی خود) داشته باشید، اما همچنان مایل باشید گزینههای سراسری تنظیمشده در یک فایل پیکربندی سراسری را نیز به همراه داشته باشید.
- مثال (Example)
-
#IFDEF LINUX #INCLUDE /etc/fpc.cfg #ELSE #IFDEF GO32V2 #INCLUDE c:\pp\bin\fpc.cfg #ENDIF #ENDIF
این دستور در صورتی که روی یک سیستم شبهیونیکس (مانند لینوکس) باشید، فایل /etc/fpc.cfg را شامل میشود، و روی یک سیستم DOS فایل c:\pp\bin\fpc.cfg را ضمیمه خواهد کرد.
- #SECTION
- ساختار (Syntax)
- #SECTION name
دستورالعمل #SECTION مانند یک دستورالعمل #IFDEF عمل میکند، با این تفاوت که نیازی به دستورالعمل #ENDIF ندارد. نام ویژه COMMON همیشه وجود دارد؛ بدین معنا که خطوط پس از #SECTION COMMON همواره خوانده میشوند.
مثالها (EXAMPLES)
یک بلوک استاندارد که اغلب در نسخه لینوکس fpc.cfg استفاده میشود عبارت است از:
-vwhin #IFDEF VER0_99_12 #IFDEF FPC_LINK_STATIC -Fu/usr/lib/fpc/0.99.12/rtl/static -Fu/usr/lib/fpc/0.99.12/units/static #ENDIF #IFDEF FPC_LINK_DYNAMIC -Fu/usr/lib/fpc/0.99.12/rtl/shared -Fu/usr/lib/fpc/0.99.12/units/shared #ENDIF -Fu/usr/lib/fpc/0.99.12/rtl -Fu/usr/lib/fpc/0.99.12/units #ENDIF
این بلوک برای هر نسخهای که استفاده میکنید (معمولاً آخرین نسخه رسمی و جدیدترین اسنپشات توسعهدهندگان) در فایل fpc.cfg کپی میشود.
همچنین ببینید (SEE ALSO)
| 22 february 2002 | FPC |