Release av byggsystemet CMake 3.16

Introducerad release av en plattformsöverskridande öppen skriptgenerator CMake 3.16, som fungerar som ett alternativ till Autotools och används i projekt som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS och Blender. CMake-koden är skriven i C++ och distribueras under BSD-licensen.

CMake är känd för att tillhandahålla ett enkelt skriptspråk, ett sätt att utöka funktionaliteten genom moduler, ett minimalt antal beroenden (ingen bindning till M4, Perl eller Python), cachingstöd, närvaron av verktyg för korskompilering, stöd för att generera build filer för ett brett utbud av byggsystem och kompilatorer, närvaroverktygen ctest och cpack för att definiera testskript och byggpaket, verktyget cmake-gui för att interaktivt ställa in byggparametrar.

Den huvudsakliga förbättringar:

  • Lade till stöd för mål C ("OBJC") och målspråk
    C++ ("OBJCXX"), som kan aktiveras via kommandona project() och enable_language(), varefter koden i ".m" ".mm"-filerna kompileras som Objective C- och Objective C++-kod, snarare än som C++, som det var tidigare;

  • Lade till stöd för Clang-kompilatorn på Solaris-plattformen;
  • Lade till nya kommandoradsalternativ: "cmake -E true|false" för att skriva ut returkoderna 0 och 1; "cmake --trace-redirect=" för att omdirigera spårningsinformation till en fil istället
    "stderr"; kommandot "cmake --loglevel" har bytt namn till "--log-level" för att få det att överensstämma med namnen på de andra kommandona;

  • Lade till kommandot "target_precompile_headers()" för att lista listan över huvudfiler som används under förkompileringen (minskar byggtiden);
  • Lade till egenskapen "UNITY_BUILD", som aktiverar batchläget för bearbetning av källfiler i generatorer för att påskynda bygget;
  • Lade till kommandon “find_file()”, “find_library()”, “find_path()”,
    "find_package()" och "find_program()" för att söka efter filer, bibliotek, sökvägar, paket och körbara filer enligt variabler som definierar sökvägar för olika kategorier av filer.
    Variablerna "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", "CMAKE_FIND_EN_USE_CMAKE_EN_USE_CMAKE_USE_USE_USE_USE_PATH_USE_USE_use IST" används för att styra bassökvägarna RY";

  • Lade till läget "file(GET_RUNTIME_DEPENDENCIES)" till kommandot "file()", vilket låter dig rekursivt hämta listan över bibliotek som används när du dynamiskt länkar en körbar fil eller bibliotek. Läget ersatte kommandot GetPrerequisites() som nu har föråldrats;
  • Kommandot "ctest(1)" implementerar möjligheten att serialisera tester baserat på de resurser som krävs för varje test;
  • Variabeln "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" har fasats ut och bör ersättas med "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Förbättrat AIX-plattformsstöd. När du använder egenskapen "ENABLE_EXPORTS", utöver den körbara filen, genereras nu en importfil för länken, sparad med tillägget ".imp". I plugins skapade genom att anropa "add_library()" med alternativet "MODULE" kan den här filen användas vid länkning med kommandot "target_link_libraries()". Runtime-länkning på AIX är inaktiverad som standard eftersom CMake nu tillhandahåller all nödvändig symbolinformation för länkning vid laddningstid. För att använda körtidslänkning av dynamiska bibliotek eller laddningsbara moduler måste du uttryckligen ange alternativen "-Wl, -G" i listorna över länkningsstartflaggor, definierade genom variablerna "CMAKE_SHARED_LINKER_FLAGS" och "CMAKE_MODULE_LINKER_FLAGS".

Källa: opennet.ru

Lägg en kommentar