WIDL(1) Wine Developers Manual WIDL(1)

widl - کامپایلر زبان تعریف رابط (IDL) برای Wine

widl [options] IDL_file
widl [options] --dlldata-only name1 [name2...]

هنگامی که هیچ گزینه‌ای استفاده نشود، برنامه بسته به محتوای فایل IDL، یک فایل هدر و احتمالاً استاب‌های کلاینت و سرور، فایل‌های پروکسی و dlldata، یک typelib و یک فایل UUID تولید خواهد کرد. اگر هر یک از گزینه‌های -c، -h، -p، -s، -t، -u یا --local-stubs مشخص شود، widl تنها فایل‌های درخواستی را تولید می‌کند و نه هیچ فایل دیگری را. در صورت اجرا با --dlldata-only ، دستور widl تنها یک فایل dlldata تولید خواهد کرد که شامل فهرستی از نام‌های ارائه‌شده به عنوان آرگومان است. معمولاً شیوه به‌روزرسانی این فایل بدین صورت است که با هر بار اجرای widl ، فایل dlldata موجود را خوانده و در صورت لزوم آن را با همان فهرست نام‌ها، اما همراه با فایل پروکسی فعلی، مجدداً بازتولید می‌کند.

هنگامی که بدون هیچ آرگومانی اجرا شود، widl یک پیام راهنما چاپ خواهد کرد.

گزینه‌های عمومی:

چاپ شماره نسخه و خروج.
تنظیم نام فایل خروجی. هنگام تولید چندین فایل خروجی، این گزینه تنها نام پایهٔ فایل را مشخص می‌کند؛ سپس فایل‌های خروجی مربوطه به صورت name.h، name_p.c و غیره نام‌گذاری می‌شوند. اگر یک نام فایل کامل همراه با پسوند مشخص شود، تنها همان فایل تولید خواهد شد.
تعیین معماری مقصد هنگام کامپایل متقاطع (cross-compiling). مشخصات مقصد در قالب استاندارد autoconf به همان صورتی است که توسط config.sub بازگردانده می‌شود.
اجبار معماری مقصد به ۳۲ بیتی یا ۶۴ بیتی.
پیشوندگذاری مسیرهای include استاندارد با dir.
عدم جستجو در مسیرهای include استاندارد مانند /usr/include و /usr/local/include.

گزینه‌های هدر:

تولید فایل‌های هدر. نام فایل خروجی پیش‌فرض infile.h است.
استفاده از قواعد نام‌گذاری قدیمی.

گزینه‌های کتابخانه نوع (Type library):

تولید یک کتابخانه نوع (type library). نام فایل خروجی پیش‌فرض infile.tlb است. اگر نام فایل خروجی به .res ختم شود، در عوض یک فایل منبع (resource) باینری حاوی کتابخانه نوع تولید می‌شود.
افزودن یک دایرکتوری به مسیر جستجوی کتابخانه برای typelibهای واردشده. این گزینه می‌تواند چندین بار مشخص شود.
تولید یک کتابخانه نوع در قالب قدیمی (قالب SLTG).

گزینه‌های فایل UUID:

تولید یک فایل UUID. نام فایل خروجی پیش‌فرض infile_i.c است.

گزینه‌های تولید پروکسی/استاب:

تنظیم بسته‌بندی ساختار (structure packing) به n. مقادیر پشتیبانی‌شده ۲، ۴ و ۸ هستند.
تولید فایل استاب کلاینت. نام فایل خروجی پیش‌فرض infile_c.c است.
تولید استاب‌های درون‌خطی (inline).
تولید استاب‌های تفسیرشده با سبک قدیمی.
تولید استاب‌های کاملاً تفسیرشده با سبک جدید. این حالت پیش‌فرض است.
تولید یک پروکسی. نام فایل خروجی پیش‌فرض infile_p.c است.
پیشوندی برای قرار دادن در نام هر دو استاب کلاینت و سرور.
پیشوندی برای قرار دادن در نام استاب‌های کلاینت.
پیشوندی برای قرار دادن در نام استاب‌های سرور.
تولید یک فایل استاب سرور. نام فایل خروجی پیش‌فرض infile_s.c است.
فعال‌سازی حالت Windows Runtime.
پیشوندگذاری فضاهای نام با فضای نام ABI.

گزینه‌های اسکریپت ثبت:

تولید یک اسکریپت ثبت. نام فایل خروجی پیش‌فرض infile_r.rgs است. اگر نام فایل خروجی به .res ختم شود، در عوض یک فایل منبع باینری حاوی اسکریپت تولید می‌شود.

گزینه‌های فایل Dlldata:

بازتولید فایل dlldata از ابتدا با استفاده از نام‌های پروکسی مشخص‌شده. نام فایل خروجی پیش‌فرض dlldata.c است.

گزینه‌های فایل متادیتا:

تولید یک فایل متادیتای Windows Runtime. این گزینه حالت --winrt را نیز فعال می‌کند. نام فایل خروجی پیش‌فرض infile.winmd است.

گزینه‌های پیش‌پردازنده:

افزودن یک دایرکتوری به مسیر جستجوی include. مشخص کردن چندین دایرکتوری include مجاز است.
تعریف ماکروی پیش‌پردازنده id با مقدار val.
فقط پیش‌پردازش انجام شود.
ورودی پیش‌پردازش نشود.

گزینه‌های اشکال‌زدایی:

فعال‌سازی هشدارهای سخت‌گیرانه (pedantic).
تنظیم سطح اشکال‌زدایی روی عدد صحیح غیرمنفی n. در صورت وجود پیشوند 0x، به عنوان یک عدد هگزادسیمال تفسیر می‌شود. برای مفهوم مقادیر، بخش اشکال‌زدایی (DEBUG) را ببینید.

گزینه‌های متفرقه:

نادیده گرفته می‌شود؛ جهت سازگاری با midl وجود دارد.
استفاده از فایل پیکربندی برنامه مشخص‌شده.
تولید استاب‌های خالی برای متدهای call_as/local در یک رابط شیء و نوشتن آن‌ها در file.

سطح اشکال‌زدایی n یک ماسک بیتی (bitmask) با معانی زیر است:
- 0x01 اعلام اینکه کدام منبع تجزیه می‌شود (حالت پرگو)
- 0x02 تخلیه ساختارهای داخلی
- 0x04 ایجاد ردگیری تجزیه‌کننده (yydebug=1)
- 0x08 پیام‌های پیش‌پردازنده
- 0x10 پیام‌های lex پیش‌پردازنده
- 0x20 ردگیری yacc پیش‌پردازنده

باگ‌ها را می‌توان در سامانه ردیابی باگ Wine گزارش کرد.

widl در ابتدا توسط Ove Kåven نوشته شد. این برنامه توسط Rob Shearman، Dan Hipschman و دیگران بهبود یافته است. برای مشاهده فهرست کامل، گزارش‌های ثبت (commit logs) گیت را بررسی کنید. این صفحه راهنما در ابتدا توسط Hannu Valtonen نوشته شده و سپس توسط Dan Hipschman به‌روزرسانی شد.

widl بخشی از توزیع Wine است که از طریق WineHQ، یعنی مقر توسعه Wine در دسترس است.

مستندات و پشتیبانی Wine.

October 2007 Wine 11.17