For noen dager siden CMake 3.15 åpen kildekode-skriptgenerator på tvers av plattformer utgitt som fungerer som et alternativ til Autotools og brukes i prosjekter som KDE, LLVM / Clang, MySQL, MariaDB, ReactOS og Blender.
CMake er et genererings- eller automatiseringsverktøy for flere plattformer. Navnet er en forkortelse for "cross platform make" (make cross platform, utover bruken av "make" i navnet, CMake er en egen suite og høyere nivå enn det vanlige merkevaresystemet av Unix, som ligner på autotools.
Om CMake
CUtfør er kjent for å tilby et enkelt skriptspråk, verktøy for å utvide funksjonaliteten på tvers av moduler, minimalt antall avhengigheter (ingen binding til M4, Perl eller Python), cachestøtte, tilgjengeligheten av verktøy for krysskompilering, støtte for å generere monteringsfiler for et bredt spekter av kompilatorsystemer og kompilatorer.
CTt- og cpack-verktøyene for å definere testscenarier og pakkeoppretting, med cmake-gui-verktøyet for interaktiv konfigurering av byggeparametere.
CMake brukes til å kontrollere kompileringsprosessen til programvaren ved hjelp av enkle og uavhengige konfigurasjonsfiler av plattformen. Cmake genererer innfødte makefiler og arbeidsområder som kan brukes i ønsket utviklingsmiljø.
Det kan sammenlignes med Unix GNU-byggesystemet ved at prosessen styres av konfigurasjonsfiler, i tilfelle CMake kalt CMakeLists.txt.
I motsetning til GNU-byggesystemet, som er begrenset til Unix-plattformer, CMake støtter generering av filer for forskjellige operativsystemer, noe som letter vedlikehold og eliminerer behovet for å ha flere sett med filer for hver plattform.
Byggeprosessen styres ved å opprette en eller flere CMakeLists.txt-filer i hver katalog (inkludert underkataloger).
CMake-koden er skrevet i C ++ og distribueres under BSD-lisensen.
CMake 3.15 Viktigste nye funksjoner
Denne nye versjonen fremhevet av ankomsten av innledende generatorstøtte for Swift-språket utviklet av Apple er lagt til i Ninja Toolkit-skriptgeneratoren.
I tillegg til dette, kommer også støtte for alternativet Clang compiler for Windows som er bygget med ABI MSVC, men bruker kommandolinjealternativene i GNU-stil.
Utviklerne understreker at variablene CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
blir lagt til for å velge kjøretidsbiblioteker som brukes av kompilatorer ABI MSVC
(MS VisualStudio).
For kompilatorer som MSVC
På CMAKE__FLAGS
Som standard er listen over varselkontrollflagg som "/ W3" stoppet.
Av de andre forbedringene som fremheves i kunngjøringen om utgivelsen av denne nye versjonen, finner vi følgende:
- Lagt til det genererende uttrykket '
COMPILE_LANG_AND_ID
: »Å definere kompilatoralternativer for målfiler som bruker variablerCMAKE__COMPILER_ID
yLANGUAGE
for hver kodefil - Generatoruttrykk
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
legge til støtte for å matche en verdi til en liste, kommaseparerte elementer - Variabelen ble lagt til
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, der kallet til find_package () vil søke etter pakkekonfigurasjonsfilen først, selv om søkemodulen er tilgjengelig - For grensesnittbiblioteker er det lagt til støtte for innstilling av egenskaper
PUBLIC_HEADER y PRIVATE_HEADER
, hvis overskrifter kan konfigureres av installasjonskommandoen (TARGETS) som sender argumentenePUBLIC_HEADER
yPRIVATE_HEADER
- Variabelen ble lagt til
CMAKE_VS_JUST_MY_CODE_DEBUGGING
og destinasjonseiendommenVS_JUST_MY_CODE_DEBUGGING
for å aktivere "Just My Code" -modus i Visual Studio-feilsøkingsprogrammet når du kompilerer ved hjelp av MSVC cl 19.05 og nyere versjoner. - FindBoost-modulen er omarbeidet, som nå jobbes mer fullstendig i konfigurasjons- og modulmodusene med nærvær av andre søkemoduler
- Støtte for NOTICE-, VERBOSE-, DEBUG- og TRACE-typer er lagt til kommandoen message ()
- Kommandoen "eksport (PAKKE)" gjør nå ingenting før den eksplisitt er aktivert gjennom variabelen
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Hvis du vil vite mer om det, kan du konsultere følgende lenke.