Llançament del sistema de compilació CMake 3.15

tingué lloc llançament d'un generador d'scripts de compilació oberta multiplataforma CMake 3.15, 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 el suport de llenguatge inicial al generador de scripts de construcció basat en Ninja Ràpid, desenvolupat per Apple;
  • S'ha afegit suport per a una variant del compilador Clang per a Windows que es construeix amb MSVC ABI, però utilitza opcions de línia d'ordres d'estil GNU;
  • S'han afegit variables CMAKE_MSVC_RUNTIME_LIBRARY i MSVC_RUNTIME_LIBRARY per seleccionar biblioteques d'execució utilitzades pels compiladors basats en l'ABI de MSVC (MS Visual Studio);
  • Per a compiladors com MSVC, CMAKE__FLAGS de manera predeterminada deixa de llistar senyals de control d'avís com ara "/W3";
  • S'ha afegit una expressió generadora "COMPILE_LANG_AND_ID:" per definir les opcions del compilador per als fitxers de destinació, utilitzant les variables CMAKE__COMPILER_ID i LANGUAGE per a cada fitxer de codi;
  • A les expressions del generador C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID i PLATFORM_ID van afegir suport per fer coincidir un valor únic amb una llista els elements de la qual estan separats per una coma;

  • S'ha afegit la variable CMAKE_FIND_PACKAGE_PREFER_CONFIG perquè cridant a find_package() cerqui primer el fitxer de configuració del paquet, fins i tot si hi ha un cercador disponible;
  • Per a les biblioteques d'interfície, s'ha afegit suport per establir les propietats PUBLIC_HEADER i PRIVATE_HEADER, mitjançant les quals es poden establir les capçaleres mitjançant l'ordre install(TARGETS) passant els arguments PUBLIC_HEADER i PRIVATE_HEADER;
  • S'ha afegit la variable CMAKE_VS_JUST_MY_CODE_DEBUGGING i la propietat de destinació VS_JUST_MY_CODE_DEBUGGING per habilitar el mode "Just My Code" al depurador de Visual Studio quan es compila amb MSVC cl 19.05 i versions més recents;
  • S'ha redissenyat el mòdul FindBoost, que ara funciona de manera més holística en els modes Config i Module en presència d'altres mòduls de cerca;
  • L'ordre message() ara admet els tipus NOTICE, VERBOSE,
    DEBUG i TRACE;

  • L'ordre "export(PACKAGE)" ara no fa res tret que s'habiliten explícitament mitjançant la variable CMAKE_EXPORT_PACKAGE_REGISTRY.

Font: opennet.ru

Afegeix comentari