Κυκλοφορία του συστήματος κατασκευής CMake 3.18

Εισήχθη απελευθέρωση μιας πολλαπλής πλατφόρμας δημιουργίας σεναρίων ανοιχτής κατασκευής CMake 3.18, το οποίο λειτουργεί ως εναλλακτική λύση στα Autotools και χρησιμοποιείται σε έργα όπως το KDE, LLVM/Clang, MySQL, MariaDB, ReactOS και Blender. Ο κώδικας CMake είναι γραμμένος σε C++ και διανέμεται με την άδεια BSD.

Το CMake είναι αξιοσημείωτο για την παροχή μιας απλής γλώσσας δέσμης ενεργειών, ενός μέσου επέκτασης της λειτουργικότητας μέσω λειτουργικών μονάδων, έναν ελάχιστο αριθμό εξαρτήσεων (χωρίς δέσμευση σε M4, Perl ή Python), υποστήριξη προσωρινής αποθήκευσης, παρουσία εργαλείων για πολλαπλή μεταγλώττιση, υποστήριξη για δημιουργία build αρχεία για ένα ευρύ φάσμα συστημάτων κατασκευής και μεταγλωττιστών, τα βοηθητικά προγράμματα παρουσίας 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

Προσθέστε ένα σχόλιο