ارائهشده، تولیدکننده اسکریپت ساخت باز کراس پلتفرم CMake 3.21 است که به عنوان جایگزینی برای Autotools عمل میکند و در پروژههایی مانند KDE، LLVM/Clang، MySQL، MariaDB، ReactOS و Blender استفاده میشود. کد CMake به زبان C++ نوشته شده و تحت مجوز BSD توزیع شده است.
CMake به دلیل ارائه یک زبان اسکریپت نویسی ساده، ابزاری برای گسترش عملکرد از طریق ماژول ها، حداقل تعداد وابستگی ها (بدون اتصال به M4، Perl یا Python)، پشتیبانی از کش، وجود ابزار برای کامپایل متقابل، پشتیبانی از تولید ساخت، قابل توجه است. فایلها برای طیف گستردهای از سیستمهای ساخت و کامپایلرها، ابزار حضور ctest و cpack برای تعریف اسکریپتهای تست و ساخت بستهها، ابزار cmake-gui برای تنظیم تعاملی پارامترهای ساخت.
بهبودهای اصلی:
- پشتیبانی کامل از زبان برنامهنویسی رابط محاسباتی ناهمگن برای حملپذیری (HIP)، لهجهای از زبان C++ با هدف آسانتر کردن تبدیل برنامههای CUDA به کد سی پلاس پلاس قابل حمل.
- اضافه شدن مولد اسکریپت ساخت برای ویژوال استودیو 17 2022، بر اساس پیش نمایش 2022 ویژوال استودیو 1.1.
- سازندههای اسکریپت ساخت Makefile و Ninja ویژگیهای C_LINKER_LAUNCHER و CXX_LINKER_LAUNCHER را اضافه کردهاند که میتوانند برای راهاندازی ابزارهای کمکی که پیوند دهنده را راهاندازی میکنند، مانند تحلیلگرهای استاتیک، استفاده شوند. مولد ابزارهای مشخص شده را اجرا می کند و نام پیوند دهنده و آرگومان های آن را به آنها ارسال می کند.
- در ویژگی های "C_STANDARD" و "OBJC_STANDARD" و همچنین در ابزارهای تنظیم پارامترهای کامپایلر (ویژگی های کامپایل)، پشتیبانی از مشخصات C17 و C23 اضافه شده است.
- گزینه "-toolchain" به ابزار cmake اضافه شده است > برای تعیین مسیر به جعبه ابزار.
- انواع پیام های نمایش داده شده در ترمینال هایلایت شده اند.
- پشتیبانی از کامپایلر فوجیتسو اضافه شده است.
- دستور "foreach()" تضمین می کند که متغیرهای حلقه در یک حلقه ایزوله شده اند.
علاوه بر این، میتوان به انتشار سیستم ساخت Meson 0.59 اشاره کرد که برای ساخت پروژههایی مانند سرور X.Org، Mesa، Lighttpd، systemd، GStreamer، Wayland، GNOME و GTK استفاده میشود. کد مزون به زبان پایتون نوشته شده و تحت مجوز آپاچی 2.0 است. از کامپایل متقابل و ساخت بر روی Linux، Illumos/Solaris، FreeBSD، NetBSD، DragonFly BSD، Haiku، macOS و Windows با استفاده از GCC، Clang، Visual Studio و سایر کامپایلرها پشتیبانی می کند. امکان ساخت پروژه به زبان های برنامه نویسی مختلف از جمله C، C++، Fortran، Java و Rust وجود دارد. به جای ابزار make، از جعبه ابزار Ninja به طور پیش فرض هنگام ساخت استفاده می شود، اما می توان از پشتیبان های دیگری مانند xcode و VisualStudio نیز استفاده کرد.
این سیستم دارای یک کنترل کننده وابستگی چند پلتفرمی داخلی است که به شما امکان می دهد از Meson برای ساخت بسته هایی برای توزیع ها استفاده کنید. قوانین اسمبلی به زبان ساده شده مختص دامنه مشخص شده است، برای کاربر بسیار خوانا و قابل درک است (همانطور که نویسندگان در نظر گرفته اند، توسعه دهنده باید حداقل زمان خود را برای نوشتن قوانین صرف کند). حالت ساخت افزایشی پشتیبانی میشود، که در آن فقط مؤلفههایی که مستقیماً با تغییرات ایجاد شده از آخرین ساخت مرتبط هستند، بازسازی میشوند. از Meson می توان برای تولید بیلدهای تکرارپذیر استفاده کرد که در آن اجرای بیلد در محیط های مختلف منجر به تولید فایل های اجرایی کاملاً یکسان می شود.
نوآوری های اصلی Meson 0.59:
- پشتیبانی از زبان Cython (نسخه پیشرفته پایتون با هدف ساده سازی یکپارچه سازی با کد C) اضافه شده است.
- کلمات کلیدی "unescaped_variables" و "unescaped_uninstalled_variables" را برای تعریف متغیرها در pkgconfig بدون فرار از فاصله با کاراکتر "\" اضافه کرد.
- پشتیبانی از wrc (کامپایلر منابع شراب) اضافه شد.
- قابلیت تولید پروژه برای Visual Studio 2012 و Visual Studio 2013 پیاده سازی شده است.
- اکنون همه دستورات مرتبط با پروژه فرعی هر زیر پروژه را به صورت پیش فرض به صورت موازی اجرا می کنند. تعداد فرآیندهای موازی با پارامتر "--num-processes" تعیین می شود.
منبع: opennet.ru