Анонсирован выпуск новой версии 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