Några dagar sedan CMake 3.15 plattformsoberoende skriptgenerator för öppen källkod tillkännagavs som fungerar som ett alternativ till Autotools och används i projekt som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS och Blender.
CMake är ett plattformsoberoende kodgenererings- eller automatiseringsverktyg. Namnet är en förkortning för "cross platform make", oavsett användningen av "make" i namnet., CMake är en separat svit på högre nivå än det vanliga tillverkarsystemet Unix, som liknar autotools.
Om CMake
CMake är känd för att tillhandahålla ett enkelt skriptspråk, verktyg för att utöka funktionaliteten över moduler, minimalt antal beroenden (ingen bindning till M4, Perl eller Python), cachingstöd, tillgänglighet av verktyg för korskompilering, stöd för att generera assemblyfiler för ett brett spektrum av byggsystem och kompilatorer.
Verktygen ctest och cpack för att definiera testscenarier och bygga paket, med verktyget cmake-gui för interaktiv konfigurering av byggparametrar.
CMake används för att styra programvarans byggprocess med enkla, fristående konfigurationsfiler. från plattformen. Cmake genererar inbyggda makefiler och arbetsytor som kan användas i den önskade utvecklingsmiljön.
Det är jämförbart med GNU-byggsystemet för Unix genom att byggprocessen styrs av konfigurationsfiler, i fallet med CMake som kallas CMakeLists.txt.
Till skillnad från GNU-byggsystemet, som är begränsad till Unix-plattformar, CMake stöder generering av filer för olika operativsystem, vilket gör underhållet enklare och eliminerar behovet av att ha flera uppsättningar filer för varje plattform.
Byggprocessen styrs genom att skapa en eller flera CMakeLists.txt-filer i varje katalog (inklusive underkataloger).
CMake-koden är skriven i C++ och distribueras under BSD-licensen.
De viktigaste nya funktionerna i CMake 3.15
Denna nya version framhävs av ankomsten av initialt generatorstöd för Swift-språket utvecklad av Apple har lagts till i Ninja Toolkit assembly script generator.
Förutom detta, stöd för Clang-kompilatoralternativet kommer också för Windows som är byggt med ABI MSVC, men använder kommandoradsalternativ i GNU-stil.
Utvecklarna påpekar att variabler CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
läggs till för att välja runtime-bibliotek som används av kompilatorer ABI MSVC
(MS Visual Studio).
För kompilatorer som MSVC
Vid CMAKE__FLAGS
Som standard stoppas listan med varningskontrollflaggor, såsom "/W3".
Av de andra förbättringarna som sticker ut i tillkännagivandet av releasen av denna nya version, hittar vi följande:
- Lade till generatoruttryck "
COMPILE_LANG_AND_ID
:" för att definiera kompileringsalternativ för målfiler som använder variablerCMAKE__COMPILER_ID
yLANGUAGE
för varje kodfil - Generatoruttrycken
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
lägg till stöd för att matcha ett värde till en lista, objekt separerade med kommatecken - Variabel tillagd
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, där anropet till find_package() först kommer att leta efter paketets konfigurationsfil, även om sökmodulen är tillgänglig - För gränssnittsbibliotek har stöd för inställning av egenskaper lagts till
PUBLIC_HEADER y PRIVATE_HEADER
, vars rubriker kan ställas in genom att installationskommandot (TARGETS) skickar argumentenPUBLIC_HEADER
yPRIVATE_HEADER
- Variabel tillagd
CMAKE_VS_JUST_MY_CODE_DEBUGGING
och målegenskapenVS_JUST_MY_CODE_DEBUGGING
för att aktivera "Just My Code"-läget i Visual Studio-felsökningen när du bygger med MSVC cl 19.05 och nyare versioner. - FindBoost-modulen har omarbetats, som nu bearbetas mer fullständigt i konfigurations- och modullägen med närvaro av andra sökmoduler
- Stöd för NOTICE-, VERBOSE-, DEBUG- och TRACE-typerna har lagts till i kommandot message().
- Kommandot "export(PACKAGE)" gör nu ingenting förrän det explicit har aktiverats via variabeln
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Om du vill veta mer om det kan du konsultera följande länk.