Meson
Meson یک سیستم فراساخت متنباز است که با هدف سریع و کاربرپسند بودن طراحی شده است.
در Nixpkgs، ابزار meson همراه با یک setup hook ارائه میشود که فازهای پیکربندی، بررسی و نصب را بازنویسی میکند.
ابزار meson به عنوان یک سیستم فراساخت، به یک بخش سمت سرور (Backend) همراه نیاز دارد. در بافتار Nixpkgs، بکاند همراه معمول Ninja است که یک setup hook ارائه میدهد که فازهای ساخت (Build) و نصب مبتنی بر ninja را ثبت میکند.
متغیرهای کنترلکننده Meson
متغیرهای اختصاصی Meson
mesonFlags
پرچمهای پاسدادهشده به meson setup را در طول فاز پیکربندی کنترل میکند.
mesonBuildDir
پوشهای که Meson فایلهای میانجی را در آن قرار میدهد.
تنظیم این گزینه میتواند برای دیباگ (اشکالزدایی) ساختهای متعدد Meson در حالی که در همان پوشه کد منبع هستید مفید باشد، برای مثال، هنگام ساخت برای پلتفرمهای مختلف. مقادیر متفاوت برای هر ساخت، از تداخل فرآوردههای ساخت با یکدیگر جلوگیری میکند. این تنظیم هنگام اجرای ساخت در یک derivation ایزوله شده (Sandboxed)، هیچ اثر ملموسی ندارد.
مقدار پیشفرض build است.
mesonWrapMode
کدام مقدار به عنوان -Dwrap_mode= پاس داده میشود.
در Nixpkgs، مقدار پیشفرض nodownload است، به طوری که هیچ زیرپروژهای دریافت نخواهد شد (زیرا دسترسی به شبکه در طول استقرار (deployment) در Nixpkgs از قبل غیرفعال شده است).
نکته: Meson امکان پیش-بارگذاری زیرپروژههایی را که در غیر این صورت دریافت میشدند، فراهم میکند.
mesonBuildType
کدام مقدار به عنوان --buildtype به meson setup در طول فاز پیکربندی پاس داده میشود. در Nixpkgs، مقدار پیشفرض plain است.
mesonAutoFeatures
کدام مقدار به عنوان -Dauto_features= به meson setup در طول فاز پیکربندی پاس داده میشود. در Nixpkgs، مقدار پیشفرض enabled است، به این معنی که هر ویژگی که توسط اسکریپتهای meson به عنوان "auto" اعلام شده باشد، فعال خواهد شد.
mesonCheckFlags
پرچمهای پاسدادهشده به meson test را در طول فاز بررسی کنترل میکند.
mesonInstallFlags
پرچمهای پاسدادهشده به meson install را در طول فاز نصب کنترل میکند.
mesonInstallTags
فهرستی از برچسبهای نصب که به گزینه خط فرمان Meson یعنی --tags در طول فاز نصب پاس داده میشود.
نکته: mesonInstallTags باید فهرستی از رشتهها باشد که به یک رشته جداشده با ویرگول که برای --tags قابل تشخیص است تبدیل میشود.
مثال: mesonInstallTags = [ "emulator" "assembler" ]; به --tags emulator,assembler تبدیل خواهد شد.
dontUseMesonConfigure
وقتی روی true تنظیم شود، از mesonConfigurePhase ازپیشتعریفشده استفاده نمیکند.
dontUseMesonCheck
وقتی روی true تنظیم شود، از mesonCheckPhase ازپیشتعریفشده استفاده نمیکند.
dontUseMesonInstall
وقتی روی true تنظیم شود، از mesonInstallPhase ازپیشتعریفشده استفاده نمیکند.
متغیرهای مورد پذیرش
متغیرهای زیر که معمولاً توسط stdenv.mkDerivation استفاده میشوند، توسط setup hook مربوط به Meson پذیرفته میشوند.
prefixKeyenableParallelBuildingenableParallelChecking