G-IR-SCANNER(1) G-IR-SCANNER(1)

g-ir-scanner - استخراج فراداده‌های C از کد منبع و سرآیندها

g-ir-scanner [OPTION...] FILES...

برنامهٔ g-ir-scanner ابزاری است که با تجزیهٔ سرآیندها و درون‌نگری (introspection) کتابخانه‌های مبتنی بر GObject، فایل‌های GIR XML را تولید می‌کند. این ابزار معمولاً در طول مرحلهٔ ساخت عادی یک پروژه فراخوانی می‌شود و اطلاعات روی دیسک ذخیره شده و بعداً نصب می‌شوند تا انقیادهای زبان (language bindings) و سایر برنامه‌ها بتوانند از آن‌ها استفاده کنند. فایل‌های سرآیند و فایل‌های منبع به‌عنوان آرگومان در خط فرمان داده می‌شوند. پسوند فایل مشخص می‌کند که با فایل به‌عنوان یک فایل منبع (.c) برخورد شود یا یک فایل سرآیند (.h). در حال حاضر پویشگر فقط از کتابخانه‌های مبتنی بر C پشتیبانی می‌کند.

نمایش گزینه‌های راهنما.
در صورت ارسال، جزئیات عملیات عادی را چاپ نمی‌کند.
نمایش هشدارها برای APIهای عمومی که قابل درون‌نگری نیستند.
تبدیل هشدارها به خطاهای مهلک.
نمایش هشدارها برای API با درون‌نگری سخت‌گیرانه (strict).
این پارامتر قالب خروجی مورد استفاده را تعیین می‌کند. مقدار پیش‌فرض gir است.
افزودن وابستگی درون‌نگری مشخص‌شده به فضای نام (namespace) پویش‌شده. NAME به شکل NAMESPACE-VERSION است، مانند Gtk-3.0.
افزودن وابستگی درون‌نگری مشخص‌شده به فضای نام پویش‌شده. تفاوت این گزینه با --include در این است که مسیر یک فایل را دریافت می‌کند و وابستگی‌های pkg-config را پردازش نمی‌کند (زیرا ممکن است هنوز نصب نشده باشند).
افزودن یک دایرکتوری به مسیری که پویشگر برای یافتن فایل‌های GIR از آن استفاده می‌کند. می‌تواند چندین بار برای مشخص کردن چندین دایرکتوری استفاده شود.
کتابخانه‌ای را مشخص می‌کند که باید درون‌نگری شود. این بدین معناست که توابع *_get_type() درون آن برای نوع‌داده‌های GObject فراخوانی خواهند شد. نام کتابخانه نباید شامل پیشوند ابتدایی lib یا پسوند پایانی کتابخانهٔ مشترک باشد.
گنجاندن این دایرکتوری هنگام جستجو برای یک کتابخانه. این گزینه می‌تواند چندین بار برای اضافه کردن بیش از یک دایرکتوری جهت جستجوی کتابخانه‌ها مشخص شود.
گنجاندن این دایرکتوری در فهرست دایرکتوری‌هایی که برای فایل‌های سرآیند جستجو می‌شوند. لازم است تمام دایرکتوری‌هایی را که در حالت عادی هنگام استفاده از فایل‌های منبع مشخص‌شده به کامپایلر می‌دهید، به پویشگر نیز ارسال کنید.
سرآیندهایی که باید در برنامه‌های C گنجانده شوند. این گزینه می‌تواند چندین بار برای گنجاندن بیش از یک سرآیند مشخص شود.
نام فضای نام (namespace). این نام باید با حروف بزرگ آغاز شود؛ برای مثال حرف اول باید بزرگ باشد. نمونه‌ها: Gtk، Clutter، WebKit.
غیرفعال کردن استفاده از libtool برای کامپایل باینری ساختگی (stub) درون‌نگری. اگر سیستم ساخت شما نیازی به libtool ندارد، از این گزینه استفاده کنید.
مسیر کامل فایل اجرایی libtool. معمولاً برای سیستم‌های Automake استفاده می‌شود.
نسخهٔ فضای نام؛ برای نمونه 1.0. این معمولاً نسخهٔ پلتفرم است، مانند 2.0 برای Gtk+ و نه 2.12.7.
یک باینری را مشخص می‌کند که باید درون‌نگری شود. این بدان معناست که توابع *_get_type() در آن برای نوع‌داده‌های GObject فراخوانی خواهند شد. باینری باید طوری اصلاح شده باشد که گزینهٔ --introspect-dump= را بپذیرد و آرگومان ارسالی به این تابع را به g_irepository_dump بفرستد.
آرگومان اضافی برای ارسال به برنامه جهت درون‌نگری.
این گزینه می‌تواند چندین بار مشخص شود. هر کدام پیشوندی را مشخص می‌کند که از تمام شناسه‌های C حذف خواهد شد. اگر مقداری مشخص نشود، از فضای نام استفاده خواهد شد. برای مثال، پیشوند شناسهٔ Foo، شناسهٔ typdef struct _FooBar FooBar; را به‌صورت Foo.Bar صادر می‌کند.
این گزینه می‌تواند چندین بار مشخص شود. هر کدام پیشوندی را مشخص می‌کند که از تمام نمادهای C حذف خواهد شد. برای مثال، پیشوند نماد foo نماد foo_bar_do_something را به‌صورت Foo.Bar.do_something صادر می‌کند.
در صورت تعیین، پویشگر شناسه‌ها و نمادهایی را که با پیشوند فضای نام مطابقت ندارند، خواهد پذیرفت. در صورت امکان از استفاده از این گزینه خودداری کنید.
نام فایل خروجی. معمولاً به‌صورت نام فضای نام + پسوند قالب؛ مانند GLib-2.0.gir.
فهرست بسته‌های pkg-config که پرچم‌های کامپایلر و پیونددهنده از آن‌ها دریافت می‌شود. این گزینه می‌تواند چندین بار برای گنجاندن پرچم‌ها از چند بستهٔ pkg-config مشخص شود.
فهرست بسته‌های pkg-config که توسط gir تولیدشده ارائه می‌شوند. اگر gir بسته‌های بیشتری ارائه دهد، این گزینه می‌تواند چندین بار مشخص شود. در صورت عدم تعیین، بسته‌های مشخص‌شده با --pkg= استفاده خواهند شد.
کامپایلر C که به‌صورت داخلی توسط g-ir-scanner هنگام درون‌نگری اطلاعات نوع زمان اجرا مانند ویژگی‌ها، سیگنال‌ها، اجداد و رابط‌های پیاده‌سازی‌شده استفاده می‌شود. این گزینه دارای همان معناشناسی متغیر محیطی CC است.
حالت پرگو؛ شامل برخی اطلاعات اشکال‌زدایی.

ابزار g-ir-scanner از متغیر XDG_DATA_DIRS برای بررسی دایرکتوری‌ها استفاده می‌کند؛ فایل‌های gir در XDG_DATA_DIRS/gir-1.0 قرار دارند. این متغیر معمولاً توسط توزیع مقداردهی می‌شود، بنابراین نیازی نیست خودتان آن را تنظیم کنید.

متغیر GI_SCANNER_DISABLE_CACHE تضمین می‌کند که پویشگر داده‌های حافظهٔ موقت (cache) را در $HOME ننویسد.

متغیر GI_SCANNER_DEBUG می‌تواند برای اشکال‌زدایی مشکلات مربوط به g-ir-scanner در سیستم ساخت به کار رود. هنگامی که مقدار آن روی save-temps تنظیم شود، g-ir-scanner پس از پایان کار، فایل‌ها و دایرکتوری‌های موقت را حذف نخواهد کرد.

متغیر GI_HOST_OS می‌تواند برای کنترل نام سیستم‌عامل روی میزبانی که پویشگر را اجرا می‌کند، استفاده شود. این متغیر دارای همان معناشناسی ویژگی os.name در پایتون است.

متغیر GI_CROSS_LAUNCHER می‌تواند برای کپسوله‌سازی باینری درون‌نگری GType تولیدشده توسط g-ir-scanner قبل از اجرای آن استفاده شود. این متغیر هنگام تولید داده‌های درون‌نگری در یک محیط کامپایل چندسکویی (cross-compilation) مفید است.

گزارش باگ‌ها در https://gitlab.gnome.org/GNOME/gobject-introspection/issues

https://gi.readthedocs.io

Johan Dahlin