Представен е релиз на кросплатформения отворен генератор за скриптове за компилация CMake 4.0.0, който служи като алтернатива на Autotools и се използва в проекти като KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Кодът на CMake е написан на C++ и се разпространява под BSD лиценз.
CMake се отличава с предоставянето на прост скриптов език, средства за разширяване на функционалността чрез модули, поддръжка на кеширане, наличието на инструменти за крос-компилация, поддръжка на генериране на файлове за компилация за широк спектър от системи за компилация и компилатори, наличието на утилити ctest и cpack за дефиниране на тестови скриптове и пакети, както и утилита cmake-gui за интерактивно конфигуриране на параметри на компилацията.
Основни промени:
- Спирането на съвместимостта с версии на CMake преди изданието 3.5 е в сила. Сега при свързване с неподдържани версии в функциите cmake_minimum_required() и cmake_policy() ще се показва грешка.
- Добавена е променлива на средата „CMAKE_POLICY_VERSION_MINIMUM“ за преопределяне на минималната версия на CMake, необходима за компилиране на проекта. Добавената променлива позволява да се избегне смяна на извикванията cmake_minimum_required(VERSION) и cmake_policy(VERSION) в самия проект, например, за конфигуриране на политики на версиите в проекти, които не предвиждат такава възможност.
- В израза на генератора „$“ е добавена операция „NATIVE_PATH“ за преобразуване на файловия път от представянето на CMake (където за разделяне на директории се използва „/“) в системния път (в Unix-подобни системи се използва „/“, а в Windows — „\“).
- На платформата macOS, при използване на генератори за компилационни скриптове, базирани на инструментариума Ninja и генератори Makefile, ако в директорията „/usr/bin“ присъства компилатор, той вече остава такъв, без свързване с компилатора в Xcode. При компилация за платформата macOS по подразбиране спиран е изборът на SDK и предаването на флага „-isysroot“ на компилатора (SDK сега се избира от самия компилатор, а не от CMake).
- Добавено е свойство LINK_WARNING_AS_ERROR, при което предупрежденията на компоновщика ще бъдат третирани като грешки. За деактивиране на това свойство е добавена опция на командния ред „—link-no-warning-as-error“.
- Към утилитата cmake е добавена опция „—project-file“ за задаване на алтернативно име на файла CMakeLists.txt.
- В генератора CPack е добавена възможността за създаване на несжати tar-архиви.
- В функцията target_link_libraries() и променливите CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* е добавена поддръжка за префикса „LINKER:“.
- Добавени са нови променливи:
- CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
- CMAKE__LINK_MODE,
- CMAKE__DEVICE_LINK_MODE,
- CMAKE_LINK_WARNING_AS_ERROR,
- CMAKE_MSVC_RUNTIME_CHECKS,
- CMAKE_DEBUGGER_WORKING_DIRECTORY,
- CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
- CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
- Добавени са нови свойства: DEBUGGER_WORKING_DIRECTORY и VS_SOLUTION_ITEMS (за прикрепяне на файлове към .sln за Visual Studio).
- Осигурено е генерирането на готови CMake сборки за SunOS за архитектури sparc64 и x86_64.
Източник: opennet.ru
