CMake 3.18 yapı sisteminin piyasaya sürülmesi

tanıtıldı platformlar arası açık derleme komut dosyası oluşturucusunun piyasaya sürülmesi CMake 3.18Autotools'a alternatif olarak çalışan ve KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ve Blender gibi projelerde kullanılan . CMake kodu C++ ile yazılmıştır ve BSD lisansı altında dağıtılmaktadır.

CMake, basit bir kodlama dili, modüller aracılığıyla işlevselliği genişletmenin bir yolu, minimum sayıda bağımlılık (M4, Perl veya Python'a bağlanma yok), önbellek desteği, çapraz derleme araçlarının varlığı, yapı oluşturma desteği sağlamasıyla dikkat çekiyor. çok çeşitli derleme sistemleri ve derleyiciler için dosyalar, test komut dosyalarını ve derleme paketlerini tanımlamak için varlık ctest ve cpack yardımcı programları, derleme parametrelerini etkileşimli olarak ayarlamak için cmake-gui yardımcı programı.

Ana iyileştirmeler:

  • Для языка 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 для указания файла со спецификацией ресурсов.

Kaynak: opennet.ru

Yorum ekle