Udgivelsen af CMake 3.16

Præsenteret udgivelsen af den tværplatforms åbne build-script generator CMake 3.16, der fungerer som et alternativ til Autotools og anvendes i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueres under BSD-licensen.

CMake er bemærkelsesværdigt for at tilbyde et simpelt script-sprog, udvidelsesmuligheder gennem moduler, et minimum af afhængigheder (ingen binding til M4, Perl eller Python), support for caching, tilgængelighed af værktøjer til tværkompilering, samt generering af build-filer for en bred vifte af build-systemer og compiler, plus værktøjerne ctest og cpack til test-script og pakkeopbygning, samt cmake-gui til interaktiv konfiguration af byggeparametre.

Vigtige forbedringer:

  • Tilføjet understøttelse af programmeringssprogene Objective C («OBJC») og Objective
    C++ («OBJCXX»), som kan aktiveres via kommandoerne project() og enable_language(). Herefter vil koden i filerne «.m» og «.mm» blive kompileret som Objective C og Objective C++-kode i stedet for som C++-kode, som det var tidligere;
  • Tilføjet understøttelse af Clang-kompilatoren på Solaris-platformen;
  • Nye kommandolinjeparametre er tilføjet: «cmake -E true|false» til at returnere exit-koderne 0 og 1; «cmake —trace-redirect=» til at omdirigere sporingsinformation til en fil i stedet for
    «stderr»; kommandoen «cmake —loglevel» er omdøbt til «—log-level» for at matche navngivningen af de øvrige kommandoer;
  • Tilføjet kommandoen «target_precompile_headers()» til at specificere listen over header-filer, der anvendes ved forkompilering (som reducerer byggetiden);
  • Tilføjet egenskaben «UNITY_BUILD», som aktiverer batchbehandling af kildefiler i generatorerne for at øge hastigheden ved bygningen;
  • Tilføjet kommandoerne «find_file()», «find_library()», «find_path()»,
    «find_package()» og «find_program()» til at finde filer, biblioteker, stier, pakker og eksekverbare filer i overensstemmelse med variabler, der definerer søgestier for forskellige kategorier af filer.
    Til kontrol af basisveje til søgning anvendes variablerne «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_SYSTEM_ENVIRONMENT_PATH» og «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • I kommandoen «file()» er tilføjet tilstanden «file(GET_RUNTIME_DEPENDENCIES)», som gør det muligt rekursivt at udtrække listen over biblioteker, der er involveret i den dynamiske binding af en eksekverbar fil eller bibliotek. Denne tilstand erstatter kommandoen GetPrerequisites(), som nu er blevet obsolet;
  • I kommandoen «ctest(1)» er det nu muligt at serialisere testene baseret på de ressourcer, der kræves til hver test;
  • Variablen «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» er blevet erklæret forældet, og i stedet bør «CMAKE_FIND_USE_PACKAGE_REGISTRY» anvendes.
  • Forbedret støtte til AIX-platformen. Når egenskaben «ENABLE_EXPORTS» anvendes, oprettes der nu en importfil til linker ud over den eksekverbare fil, gemt med udvidelsen «.imp». I de plugins, der oprettes ved hjælp af kaldet «add_library()» med indstillingen «MODULE», kan denne fil anvendes under linkning ved brug af kommandoen «target_link_libraries()». Runtime-linkning i AIX er som standard deaktiveret, da CMake nu leverer al nødvendig information om symboler til bindning under indlæsning. For at anvende runtime-linkning af dynamiske biblioteker eller indlæste moduler skal indstillingerne «-Wl,-G» tydeligt angives i listerne af linker-flags, der defineres gennem variablerne «CMAKE_SHARED_LINKER_FLAGS» og «CMAKE_MODULE_LINKER_FLAGS».

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster