Udgivelse af CMake 3.16 byggesystem

Introduceret frigivelse af en open build-scriptgenerator på tværs af platforme CMag 3.16, der fungerer som et alternativ til Autoværktøjer og bruges i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueret under BSD-licensen.

CMake er kendt for at levere et simpelt scriptsprog, et middel til at udvide funktionaliteten gennem moduler, et minimalt antal afhængigheder (ingen binding til M4, Perl eller Python), caching-understøttelse, tilstedeværelsen af ​​værktøjer til krydskompilering, understøttelse af generering af build filer til en lang række byggesystemer og compilere, tilstedeværelse ctest og cpack hjælpeprogrammer til at definere test scripts og byggepakker, cmake-gui hjælpeprogram til interaktiv indstilling af build parametre.

The main forbedring:

  • Tilføjet understøttelse af Objective C ("OBJC") og Objective sprog
    C++ ("OBJCXX"), som kan aktiveres via kommandoerne project() og enable_language(), hvorefter koden i ".m" ".mm" filerne kompileres som Objective C og Objective C++ kode, i stedet for som C++, som det var før;

  • Tilføjet understøttelse af Clang-kompileren på Solaris-platformen;
  • Tilføjet nye kommandolinjeindstillinger: "cmake -E true|false" for at udskrive returkoder 0 og 1; "cmake --trace-redirect=" for at omdirigere sporingsoplysninger til en fil i stedet
    "stderr"; kommandoen "cmake --loglevel" er blevet omdøbt til "--log-level" for at bringe den på linje med navnene på de andre kommandoer;

  • Tilføjet kommandoen "target_precompile_headers()" for at vise listen over overskriftsfiler, der bruges under prækompilering (reducerer byggetiden);
  • Tilføjet egenskaben "UNITY_BUILD", som aktiverer batch-tilstanden til behandling af kildefiler i generatorer for at fremskynde opbygningen;
  • Tilføjede kommandoer "find_fil()", "find_bibliotek()", "find_sti()",
    "find_pakke()" og "find_program()" til at søge efter filer, biblioteker, stier, pakker og eksekverbare filer i henhold til variabler, der definerer søgestier for forskellige kategorier af filer.
    Variablene "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 og "CMAKE_FIND_EN_USE_CMAKE_EN_USE_CMAKE/ IST" bruges til at styre basissøgestierne RY";

  • Tilføjede "file(GET_RUNTIME_DEPENDENCIES)"-tilstanden til "file()"-kommandoen, som giver dig mulighed for rekursivt at hente listen over biblioteker, der bruges, når en eksekverbar fil eller et eksekverbar bibliotek dynamisk linkes. Tilstanden erstattede kommandoen GetPrerequisites(), som nu er blevet forældet;
  • Kommandoen "ctest(1)" implementerer evnen til at serialisere test baseret på de ressourcer, der kræves for hver test;
  • Variablen "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" er blevet forældet og bør erstattes af "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Forbedret understøttelse af AIX-platform. Ved brug af egenskaben "ENABLE_EXPORTS" genereres der udover den eksekverbare fil nu en importfil for linkeren, gemt med filtypen ".imp". I plugins oprettet ved at kalde "add_library()" med "MODULE"-indstillingen, kan denne fil bruges, når der linkes ved hjælp af "target_link_libraries()"-kommandoen. Runtime-linking på AIX er deaktiveret som standard, fordi CMake nu giver alle de nødvendige symboloplysninger til at linke ved indlæsningstidspunktet. For at bruge runtime-linking af dynamiske biblioteker eller indlæsbare moduler, skal du eksplicit angive indstillingerne "-Wl, -G" i listerne over linker-startflag, defineret gennem variablerne "CMAKE_SHARED_LINKER_FLAGS" og "CMAKE_MODULE_LINKER_FLAGS".

Kilde: opennet.ru

Tilføj en kommentar