Rhyddhau system adeiladu CMake 3.16

A gyflwynwyd gan rhyddhau generadur sgript adeiladu agored traws-lwyfan CMake 3.16, sy'n gweithredu fel dewis arall yn lle Autotools ac a ddefnyddir mewn prosiectau fel KDE, LLVM / Clang, MySQL, MariaDB, ReactOS a Blender. Mae'r cod CMake wedi'i ysgrifennu yn C++ a'i ddosbarthu o dan y drwydded BSD.

Mae CMake yn nodedig am ddarparu iaith sgriptio syml, ffordd o ymestyn ymarferoldeb trwy fodiwlau, nifer fach iawn o ddibyniaethau (dim rhwymo i M4, Perl na Python), cefnogaeth caching, presenoldeb offer ar gyfer traws-grynhoi, cefnogaeth ar gyfer cynhyrchu adeiladu ffeiliau ar gyfer ystod eang o systemau adeiladu a chasglwyr, y ctest presenoldeb a chyfleustodau cpack ar gyfer diffinio sgriptiau prawf a phecynnau adeiladu, cyfleustodau cmake-gui ar gyfer gosod paramedrau adeiladu yn rhyngweithiol.

Y prif gwelliannau:

  • Добавлена поддержка языков Objective C («OBJC») и Objective
    C++ («OBJCXX»), которые могут быть активированы через команды project() и enable_language(), после чего код в файлах «.m» «.mm» будет компилироваться как код на Objective C и Objective C++, а не как код на C++, как это было раньше;

  • Добавлена поддержка компилятора Clang на платформе Solaris;
  • Добавлены новые параметры командной строки: «cmake -E true|false» для вывода кодов возврата 0 и 1; «cmake —trace-redirect=» для перенаправления информации о трассировке в файл, вместо
    «stderr»; команда «cmake —loglevel» переименована в «—log-level» для приведения в соответствие с наименованием остальных команд;

  • Добавлена команда «target_precompile_headers()» для перечисления списка заголовочный файлов, используемых при предкомпиляции (сокращает время сборки);
  • Добавлено свойство «UNITY_BUILD», активирующее пакетный режим обработки исходных файлов в генераторах для ускорения сборки;
  • Добавлены команды «find_file()», «find_library()», «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_REGISTRY»;

  • В команду «file()» добавлен режим «file(GET_RUNTIME_DEPENDENCIES)», позволяющий рекурсивно извлечь список библиотек, задействованных при динамическом связывании исполняемого файла или библиотеки. Режим пришёл на смену команде GetPrerequisites(), которая теперь объявлена устаревшей;
  • В команде «ctest(1)» реализована возможность сериализации тестов, отталкиваясь от ресурсов, требуемых для каждого теста;
  • Объявлена устаревшей переменная «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», вместо которой следует использовать «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • Улучшена поддержка платформы AIX. При использовании свойства «ENABLE_EXPORTS», помимо исполняемого файла, теперь формируется файл импорта для компоновщика, сохраняемый с расширением «.imp». В плагинах, создаваемых при помощи вызова «add_library()» с опцией «MODULE», данный файл может применяться при компоновке с использованием команды «target_link_libraries()». Runtime-компоновка в AIX по умолчанию отключена, так как CMake теперь предоставляет всю необходимую информацию о символах для связывания во время загрузки. Для применения runtime-компоновки динамических библиотек или загружаемых модулей следует явно указывать опции «-Wl,-G» в списки флагов запуска компоновщика, определяемых через переменные «CMAKE_SHARED_LINKER_FLAGS» и «CMAKE_MODULE_LINKER_FLAGS».

Ffynhonnell: opennet.ru

Ychwanegu sylw