CMake 3.28 уже выпущен, и это его новые возможности.

CMake

Логотип CMake

Анонсирован выпуск новой версии CMake 3.28, которая включает в себя улучшения поддержки, а также возможность компиляции языка HIP для графических процессоров NVIDIA, исправления ошибок и многое другое.

Для тех, кто не знает CMake, они должны знать, что это мультиплатформенный инструмент генерации кода или автоматизации который действует как альтернатива Autotools и используется в таких проектах, как KDE, LLVM / Clang, MySQL, MariaDB, ReactOS и Blender.



CMake отличается простым языком сценариев, означает расширение функциональности по модулям, минимальное количество зависимостей (без привязки к M4, Perl или Python), поддержка кеширования, наличие инструментов для кросс-компиляции, поддержка создания файлов сборки для широкого спектра систем сборки и компиляторов, наличие утилит ctest и cpack для определения сценариев тестирования и сборки, утилиты cmake-gui для интерактивной настройки параметров сборки.



Что нового в CMake 3.28

В этой новой версии CMake 3.28, поддержка модулей, определенных в спецификации C++20 для создания генераторов сценариев для Visual Studio и Ninja в сочетании с набором инструментов MSVC 14.34 (входит в состав VS 17.4) и более поздних версий, LLVM/Clang 16.0 и более поздних версий, а также GCC 14 (после 2023 года) и более поздних версий.

Еще одной особенностью этой новой версии CMake 3.28 является поддержка компиляции кода NVIDIA GPU на языке HIP с помощью компилятора NVCC, поскольку была добавлена ​​переменная CMAKE_HIP_PLATFORM для выбора платформы графического процессора для HIP («amd» или «nvidia»).



В дополнение к этому, Каталоги «xcframework» теперь поддерживаются на платформах Apple. и при этом команда find_library теперь ищет папки .xcframework, target_link_libraries теперь поддерживает ссылки на папку .xcframework.

В CMake 3.28 Команды find_library(), find_path() и find_file() в Windows отключают поиск в каталоге. инструкции по установке, полученные из переменной среды PATH (для унификации поведения в Windows с другими платформами). Это поведение было добавлено в CMake 3.3 для поддержки сред разработки MSYS и MinGW() в Windows, но оно может проверять наличие нежелательных префиксов, обнаруженных в PATH, по несвязанным причинам. CMake 3.6 вернул это поведение для платформ, отличных от Windows, и теперь оно вернулось и на платформах Windows.

Что касается улучшений в модулях, следует отметить, что ExternalProject теперь включает опцию BUILD_JOB_SERVER_AWARE для команды ExternalProject_Add(). Эта опция позволяет интегрировать сервер заданий GNU Make, когда BUILD_COMMAND явно используется с определенными генераторами Makefile.



Из других изменений которые выделяются из этой новой версии:

  • Удалена команда «exec_program()», которая устарела в версии 3.0. Для выполнения процессов используйте команду «execute_process()».
  • Файлы, созданные с использованием режима «FILE_SET», теперь по умолчанию считаются частными, что позволяет более эффективно создавать график построения в генераторах Ninja.
  • В переменную среды CMAKE_PREFIX_PATH теперь можно установить список префиксов, разделенных точкой с запятой, для поиска.
  • При использовании инструментов MinGW в среде Windows MSYSTEM префиксы $MSYSTEM_PREFIX/local и $MSYSTEM_PREFIX теперь добавляются в CMAKE_SYSTEM_PREFIX_PATH.
  • Предварительно скомпилированные двоичные файлы Linux x86_64, представленные на cmake.org, теперь требуют GLIBC 2.17 или более поздней версии.
  • Компиляторы на основе Cray Clang теперь поддерживают идентификатор компилятора CrayClang.
  • Компилятор OrangeC теперь поддерживает идентификатор компилятора OrangeC.


Наконец, если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.

Получите новую версию CMake

Тем, кто заинтересован в возможности установки новой версии Cmake в своей системе, следует знать, что новую версию можно получить из раздела загрузок на веб-сайте проекта. Ссылка такая.

В случае с Linux в большинстве дистрибутивов для получения новой версии достаточно выполнить команды обновления. Хотя если вы предпочитаете компилировать из исходного кода, просто скачайте пакет, соответствующий вашей архитектуре, распакуйте и выполните команды компиляции (уже внутри папки):

./bootstrap

make -j$(nproc)

sudo make install




2023-12-24T21:57:09
приложений