Lanzamento do sistema de compilación CMake 3.17.0

Presentado lanzamento dun xerador de scripts de compilación aberta multiplataforma CMake 3.17, que actúa como alternativa a Autotools e úsase en proxectos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. O código CMake está escrito en C++ e distribúese baixo a licenza BSD.

CMake destaca por proporcionar unha linguaxe de scripts sinxela, un medio para estender a funcionalidade a través de módulos, un número mínimo de dependencias (sen vinculación a M4, Perl ou Python), soporte de caché, presenza de ferramentas para a compilación cruzada, soporte para xerar compilación. ficheiros para unha ampla gama de sistemas de compilación e compiladores, a presenza de utilidades ctest e cpack para definir scripts de proba e construír paquetes, a utilidade cmake-gui para establecer de forma interactiva os parámetros de compilación.

O principal melloras:

  • Engadiuse un novo xerador de scripts de montaxe baseado no conxunto de ferramentas Ninja: "Ninja Multi-Config", que se diferencia do xerador antigo na capacidade de procesar varias configuracións de montaxe á vez.
  • No xerador de scripts de montaxe para Visual Studio apareceu a capacidade de definir ficheiros fonte asociados a cada configuración (fontes por configuración).
  • Engadiuse a capacidade de establecer metaparámetros para CUDA ("cuda_std_03", "cuda_std_14", etc.) ás ferramentas para configurar os parámetros do compilador (Características de compilación).
  • Engadíronse as variables "CMAKE_CUDA_RUNTIME_LIBRARY" e "CUDA_RUNTIME_LIBRARY" para seleccionar o tipo de bibliotecas en tempo de execución cando se usa CUDA.
  • Engadiuse o módulo "FindCUDAToolkit" para determinar o kit de ferramentas CUDA dispoñible no sistema sen habilitar o idioma CUDA.
  • Engadiuse o comando "--debug-find" para cmake para emitir diagnósticos lexibles adicionais ao realizar operacións de busca. Para fins similares, engadiuse a variable CMAKE_FIND_DEBUG_MODE.
  • Engadiuse compatibilidade para buscar ferramentas CURL mediante ficheiros de configuración xerados por cmake "CURLConfig.cmake" ao módulo "FindCURL". Para desactivar este comportamento, fornécese a variable CURL_NO_CURL_CMAKE.
  • O módulo FindPython engadiu a posibilidade de buscar compoñentes de Python en contornos virtuais xestionados mediante "conda".
  • A utilidade ctest engadiu as opcións "--no-tests=[error|ignore]" para definir o comportamento no caso de non haber probas e "--repeat" para establecer as condicións para volver executar as probas (ata que se superen, despois do tempo morto).
  • As propiedades de destino de compilación INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES e INTERFACE_LINK_DEPENDS agora inclúense entre as dependencias internas das bibliotecas construídas de forma estática.
  • Cando se usa o kit de ferramentas MinGW, a busca de ficheiros DLL co comando find_library está desactivada de forma predeterminada (no seu lugar, o intento predeterminado é importar bibliotecas ".dll.a").
  • A lóxica para seleccionar a utilidade ninja no xerador Ninja agora non depende do nome do ficheiro executable: utilízase a primeira utilidade ninja-build, ninja ou samu que se atopa nos camiños definidos a través da variable de ambiente PATH.
  • Engadiuse un comando "-E rm" a cmake que se pode usar para eliminar ficheiros e directorios en lugar dos comandos separados "-E remove" e "-E remove_directory".

Fonte: opennet.ru

Engadir un comentario