Llançament del sistema de compilació CMake 3.16

Presentat llançament d'un generador d'scripts de compilació oberta multiplataforma CMake 3.16, 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 suport per als llenguatges Objective C ("OBJC") i Objective
    C++ ("OBJCXX"), que es pot activar mitjançant les ordres project() i enable_language(), després de les quals el codi dels fitxers ".m" ".mm" es compilarà com a codi Objective C i Objective C++, en lloc de com C++, com era abans;

  • S'ha afegit suport per al compilador Clang a la plataforma Solaris;
  • S'han afegit noves opcions de línia d'ordres: "cmake -E true|false" per imprimir els codis de retorn 0 i 1; "cmake --trace-redirect=" per redirigir la informació de traça a un fitxer
    "stderr"; l'ordre "cmake --loglevel" s'ha canviat de nom a "--log-level" per alinear-lo amb els noms de les altres ordres;

  • S'ha afegit l'ordre "target_precompile_headers()" per llistar la llista de fitxers de capçalera utilitzats durant la precompilació (redueix el temps de compilació);
  • S'ha afegit la propietat "UNITY_BUILD", que activa el mode per lots per processar fitxers font als generadors per accelerar la compilació;
  • S'han afegit les ordres "find_file()", "find_library()", "find_path()",
    "find_package()" i "find_program()" per cercar fitxers, biblioteques, camins, paquets i executables segons variables que defineixen camins de cerca per a diverses categories de fitxers.
    Les variables "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_FIND_USE_CMAKE_PATH" i "CMAKE_FIND_USE_CMAKE_PATH" i "CMAKE_FIND_USE_SYSTEM_PACKAGE_G" i "CMAKE_FIND_FIND_USE_CMAKE_SYSTEM_PATH" s'utilitzen per controlar els camins de cerca bàsics RY";

  • S'ha afegit el mode "fitxer(GET_RUNTIME_DEPENDENCIES)" a l'ordre "fitxer()", que us permet recuperar de forma recursiva la llista de biblioteques utilitzades en enllaçar dinàmicament un fitxer executable o una biblioteca. El mode va substituir l'ordre GetPrerequisites(), que ara ha quedat obsoleta;
  • L'ordre "ctest(1)" implementa la capacitat de serialitzar proves en funció dels recursos necessaris per a cada prova;
  • La variable "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" ha quedat obsoleta i s'hauria de substituir per "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Suport millorat de la plataforma AIX. Quan s'utilitza la propietat "ENABLE_EXPORTS", a més del fitxer executable, ara es genera un fitxer d'importació per a l'enllaçador, desat amb l'extensió ".imp". En els connectors creats cridant "add_library()" amb l'opció "MODULE", aquest fitxer es pot utilitzar quan s'enllaça amb l'ordre "target_link_libraries()". L'enllaç en temps d'execució a l'AIX està desactivat de manera predeterminada perquè ara CMake proporciona tota la informació de símbols necessària per enllaçar en temps de càrrega. Per utilitzar l'enllaç en temps d'execució de biblioteques dinàmiques o mòduls carregables, heu d'especificar explícitament les opcions "-Wl, -G" a les llistes de marques d'inici de l'enllaçador, definides mitjançant les variables "CMAKE_SHARED_LINKER_FLAGS" i "CMAKE_MODULE_LINKER_FLAGS".

Font: opennet.ru

Afegeix comentari