A CMake 3.16 build rendszer kiadása

Által benyújtott egy többplatformos nyílt build szkriptgenerátor kiadása CMake 3.16, amely az Autotools alternatívájaként működik, és olyan projektekben használatos, mint a KDE, LLVM/Clang, MySQL, MariaDB, ReactOS és Blender. A CMake kód C++ nyelven íródott, és a BSD licenc alatt kerül terjesztésre.

A CMake arról nevezetes, hogy egyszerű szkriptnyelvet biztosít, a funkcionalitás modulokon keresztül történő kibővítését, minimális számú függőséget (nincs kötve M4-hez, Perlhez vagy Pythonhoz), gyorsítótárazási támogatást, keresztfordítási eszközöket, összeállítás generálásának támogatását. fájlok a build rendszerek és fordítók széles skálájához, a jelenléti ctest és cpack segédprogramok tesztszkriptek és csomagok összeállításához, cmake-gui segédprogram az összeállítási paraméterek interaktív beállításához.

A főbb fejlesztések:

  • Támogatás hozzáadva az Objective C („OBJC”) és az Objective nyelvekhez
    C++ ("OBJCXX"), amely a project() és enable_language() paranccsal engedélyezhető, ami után az ".m" ".mm" fájlokban lévő kód Objective C és Objective C++ kódként fordul le, nem pedig mint C++, mint korábban;

  • Hozzáadott támogatás a Clang fordítóhoz a Solaris platformon;
  • Új parancssori opciók hozzáadva: „cmake -E true|false” a 0 és 1 visszatérési kódok nyomtatásához; "cmake --trace-redirect=" a nyomkövetési információ átirányítása egy fájlba
    "stderr"; a "cmake --loglevel" parancs át lett nevezve "--log-level"-re, hogy összhangba kerüljön a többi parancs nevével;

  • A „target_precompile_headers()” parancs hozzáadása az előfordítás során használt fejlécfájlok listájához (csökkenti a felépítési időt);
  • Hozzáadtuk a „UNITY_BUILD” tulajdonságot, amely aktiválja a kötegelt módot a forrásfájlok feldolgozásához a generátorokban a felépítés felgyorsítása érdekében;
  • Hozzáadott parancsok: "find_file()", "find_library()", "find_path()",
    A "find_package()" és a "find_program()" fájlok, könyvtárak, elérési utak, csomagok és végrehajtható fájlok kereséséhez olyan változók szerint, amelyek meghatározzák a keresési útvonalakat a különböző kategóriájú fájlokhoz.
    A „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_RONMENTMAKE_ENVIRONMENT_PATH” és „CMAKE_FIND_USE_SYMENTMACREG_PATH” változók " az RY alap keresési útvonalak vezérlésére szolgálnak";

  • Hozzáadtuk a „file(GET_RUNTIME_DEPENDENCIES)” módot a „file()” parancshoz, amely lehetővé teszi a futtatható fájl vagy könyvtár dinamikus összekapcsolásakor használt könyvtárak listájának rekurzív lekérését. A mód felváltotta a GetPrerequisites() parancsot, amely mára elavult;
  • A „ctest(1)” parancs megvalósítja a tesztek sorba rendezésének lehetőségét az egyes tesztekhez szükséges erőforrások alapján;
  • A "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" változó elavult, és a "CMAKE_FIND_USE_PACKAGE_REGISTRY" változóval kell helyettesíteni;
  • Továbbfejlesztett AIX platform támogatás. Az "ENABLE_EXPORTS" tulajdonság használatakor a végrehajtható fájl mellett egy importfájl is létrejön a linker számára, az ".imp" kiterjesztéssel mentve. Az "add_library()" "MODULE" opcióval történő meghívásával létrehozott bővítményekben ez a fájl használható a "target_link_libraries()" paranccsal történő hivatkozáskor. A futásidejű csatolás az AIX rendszeren alapértelmezés szerint le van tiltva, mert a CMake mostantól minden szükséges szimbóluminformációt megad a csatoláshoz a betöltéskor. A dinamikus könyvtárak vagy betölthető modulok futásidejű összekapcsolásának használatához kifejezetten meg kell adnia a „-Wl, -G” opciókat a linker indítási jelzők listájában, amelyeket a „CMAKE_SHARED_LINKER_FLAGS” és „CMAKE_MODULE_LINKER_FLAGS” változók határoznak meg.

Forrás: opennet.ru

Hozzászólás