إصدار نظام البناء CMake 3.16

مقدم من إطلاق مولد نصي مفتوح عبر الأنظمة الأساسية CMake 3.16 تحديث، والذي يعمل كبديل لـ Autotools ويستخدم في مشاريع مثل KDE وLLVM/Clang وMySQL وMariaDB وReactOS وBlender. كود CMake مكتوب بلغة C++ ويتم توزيعه بموجب ترخيص BSD.

يتميز CMake بتوفيره لغة برمجة بسيطة، ووسيلة لتوسيع الوظائف من خلال الوحدات النمطية، وعدد أدنى من التبعيات (بدون ربط بـ M4 أو Perl أو Python)، ودعم التخزين المؤقت، ووجود أدوات للتجميع المتقاطع، ودعم إنشاء البنية ملفات لمجموعة واسعة من أنظمة البناء والمترجمين، وأدوات مساعدة الوجود ctest وcpack لتحديد البرامج النصية للاختبار وحزم البناء، والأداة المساعدة cmake-gui لإعداد معلمات البناء بشكل تفاعلي.

رئيسي تحسينات:

  • تمت إضافة دعم للهدف C ("OBJC") واللغات الموضوعية
    C++ ("OBJCXX")، والتي يمكن تمكينها عبر أوامر project() وenable_language()، وبعد ذلك سيتم تجميع التعليمات البرمجية الموجودة في ملفات ".m" ".mm" كرمز Objective C وObjective C++، بدلاً من أن تكون كرمز لغة C++، كما كانت من قبل؛

  • تمت إضافة دعم لمترجم Clang على منصة Solaris؛
  • تمت إضافة خيارات سطر الأوامر الجديدة: "cmake -E true|false" لطباعة رموز الإرجاع 0 و1؛ "cmake --trace-redirect=" لإعادة توجيه معلومات التتبع إلى ملف بدلاً من ذلك
    "ستدر"; تمت إعادة تسمية الأمر "cmake --loglevel" إلى "--log-level" لجعله يتماشى مع أسماء الأوامر الأخرى؛

  • تمت إضافة الأمر "target_precompile_headers()" لسرد قائمة ملفات الرأس المستخدمة أثناء الترجمة المسبقة (يقلل من وقت الإنشاء)؛
  • تمت إضافة خاصية "UNITY_BUILD"، التي تعمل على تنشيط الوضع الدفعي لمعالجة الملفات المصدر في المولدات لتسريع عملية الإنشاء؛
  • تمت إضافة الأوامر "find_file()" و"find_library()" و"find_path()" و"find_path()"
    "find_package()" و"find_program()" للبحث عن الملفات والمكتبات والمسارات والحزم والملفات التنفيذية وفقًا للمتغيرات التي تحدد مسارات البحث لفئات مختلفة من الملفات.
    المتغيرات "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH"، "CMAKE_FIND_USE_CMAKE_PATH"، "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH"، "CMAKE_FIND_USE_PACKAGE_ROOT_PATH"، "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" و "CMAKE_FIND_USE" _PACKAGE_REGIST" تستخدم للتحكم في مسارات البحث الأساسية RY";

  • تمت إضافة الوضع "file(GET_RUNTIME_DEPENDENCIES)" إلى الأمر "file()"، والذي يسمح لك باسترداد قائمة المكتبات المستخدمة بشكل متكرر عند ربط ملف أو مكتبة قابلة للتنفيذ ديناميكيًا. استبدل الوضع أمر GetPrequirements()، والذي تم إهماله الآن؛
  • ينفذ الأمر "ctest(1)" القدرة على إجراء تسلسل للاختبارات بناءً على الموارد المطلوبة لكل اختبار؛
  • تم إهمال المتغير "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" ويجب استبداله بـ "CMAKE_FIND_USE_PACKAGE_REGISTRY"؛
  • تحسين دعم منصة AIX. عند استخدام خاصية "ENABLE_EXPORTS"، بالإضافة إلى الملف القابل للتنفيذ، يتم الآن إنشاء ملف استيراد للرابط، ويتم حفظه بالملحق ".imp". في المكونات الإضافية التي تم إنشاؤها عن طريق استدعاء "add_library()" مع خيار "MODULE"، يمكن استخدام هذا الملف عند الارتباط باستخدام الأمر "target_link_libraries()". يتم تعطيل ربط وقت التشغيل على AIX افتراضيًا لأن CMake يوفر الآن جميع معلومات الرمز الضرورية للربط في وقت التحميل. لاستخدام ربط وقت التشغيل للمكتبات الديناميكية أو الوحدات النمطية القابلة للتحميل، يجب عليك تحديد الخيارات "-Wl, -G" بشكل صريح في قوائم إشارات بدء تشغيل الرابط، المحددة من خلال المتغيرات "CMAKE_SHARED_LINKER_FLAGS" و"CMAKE_MODULE_LINKER_FLAGS".

المصدر: opennet.ru

إضافة تعليق