Llançament del sistema de compilació CMake 3.17.0

Presentat llançament d'un generador d'scripts de compilació oberta multiplataforma CMake 3.17, que actua com una alternativa a Autotools i s'utilitza en projectes com KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. El codi CMake està escrit en C++ i distribuït sota la llicència BSD.

CMake destaca per proporcionar un llenguatge de script senzill, un mitjà per estendre la funcionalitat a través de mòduls, un nombre mínim de dependències (sense vinculació a M4, Perl o Python), suport de memòria cau, presència d'eines per a la compilació creuada, suport per generar compilació. fitxers per a una àmplia gamma de sistemes de compilació i compiladors, les utilitats ctest i cpack de presència per definir scripts de prova i crear paquets, utilitat cmake-gui per establir de manera interactiva els paràmetres de compilació.

El principal millores:

  • S'ha afegit un nou generador d'scripts de muntatge basat en el conjunt d'eines Ninja: "Ninja Multi-Config", que es diferencia de l'antic generador en la capacitat de processar diverses configuracions de muntatge alhora.
  • Al generador d'scripts de muntatge per a Visual Studio va aparèixer la capacitat de definir fitxers font associats a cada configuració (fonts per configuració).
  • S'ha afegit la possibilitat d'establir metaparàmetres per a CUDA ("cuda_std_03", "cuda_std_14", etc.) a les eines per configurar els paràmetres del compilador (Compile Features).
  • S'han afegit les variables "CMAKE_CUDA_RUNTIME_LIBRARY" i "CUDA_RUNTIME_LIBRARY" per seleccionar el tipus de biblioteques en temps d'execució quan s'utilitza CUDA.
  • S'ha afegit el mòdul "FindCUDAToolkit" per determinar el conjunt d'eines CUDA disponible al sistema sense habilitar l'idioma CUDA.
  • S'ha afegit l'ordre "--debug-find" a cmake per generar diagnòstics llegibles addicionals quan es realitzen operacions de cerca. Amb finalitats similars, s'ha afegit la variable CMAKE_FIND_DEBUG_MODE.
  • S'ha afegit suport per a la cerca d'eines CURL mitjançant fitxers de configuració generats per cmake "CURLConfig.cmake" al mòdul "FindCURL". Per desactivar aquest comportament, es proporciona la variable CURL_NO_CURL_CMAKE.
  • El mòdul FindPython ha afegit la possibilitat de cercar components de Python en entorns virtuals gestionats amb "conda".
  • La utilitat ctest ha afegit les opcions "--no-tests=[error|ignore]" per definir el comportament en cas de no provar i "--repeat" per establir les condicions per tornar a executar les proves (fins a passar, després del temps mort).
  • Les propietats de destinació de muntatge INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS ara es transfereixen entre les dependències internes de les biblioteques muntades estàticament.
  • Quan s'utilitza el conjunt d'eines MinGW, la cerca de fitxers DLL amb l'ordre find_library està desactivada de manera predeterminada (en canvi, l'intent predeterminat és importar biblioteques ".dll.a").
  • La lògica per seleccionar la utilitat ninja al generador Ninja ara no depèn del nom del fitxer executable: s'utilitza la primera utilitat ninja-build, ninja o samu que es troba als camins definits a través de la variable d'entorn PATH.
  • S'ha afegit una ordre "-E rm" a cmake que es pot utilitzar per eliminar fitxers i directoris en lloc de les ordres separades "-E remove" i "-E remove_directory".

Font: opennet.ru

Afegeix comentari