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

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

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

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

  • Для языка CUDA обеспечена возможность сборки при помощи Clang на платформах, отличных от Windows. Раздельная компиляция CUDA пока не поддерживается ни на одной платформе.
  • Добавлена поддержка профилирования сценариев CMake, используя опции «—profiling-output» и «—profiling-format».
  • В команды add_library() и add_executable() добавлена поддержка создания целей-псевдонимов (Alias Targets), ссылающихся на неглобальные импортированные цели.
  • Добавлена команда cmake_language() для мета-операций над скриптованными или встроенными командами.
  • Добавлена подкоманда file(CONFIGURE), аналогичная по функциональности команде configure_file(), но с передачей содержимого в форме строки, а не ссылки на файл.
  • В команды find_program(), find_library(), find_path() и find_file() добавлена опция REQUIRED, предписывающая остановить обработку с ошибкой, если ничего не было найдено.
  • Добавлена переменная «CMAKE_CUDA_ARCHITECTURES» для указания архитектуры CUDA (устанавливается автоматически, если переменная «CMAKE_CUDA_COMPILER_ID» принимает значение «NVIDIA»).
  • Добавлено свойство «UNITY_BUILD_MODE» для выбора в генераторах алгоритма группировки включаемых исходных файлов (BATCH, GROUP).
  • Добавлен модуль CheckLinkerFlag для проверки корректности флагов компоновки.
  • Добавлены выражения генератора $<DEVICE_LINK:…>, $<HOST_LINK:…>, $<LINK_LANGUAGE:…> и $<LINK_LANG_AND_ID:…>.
  • В утилиту ctest добавлена переменная CTEST_RESOURCE_SPEC_FILE для указания файла со спецификацией ресурсов.

المصدر: opennet.ru

إضافة تعليق