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
- 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