Kwiintsuku ezithile ezidlulileyo Kukhutshwe i-CMake 3.15 yeqonga lomthombo elivelileyo esebenza njengenye ye-Autotools kwaye isetyenziswa kwiiprojekthi ezinje nge KDE, LLVM / Clang, MySQL, MariaDB, ReactOS, kunye neBlender.
I-CMake sisixhobo sokuvelisa iikhowudi ezininzi okanye isixhobo esizisebenzelayo. Igama sishunqulelo "sokwenza iqonga lomnqamlezo" (yenza iqonga lomnqamlezo, ngaphaya kokusebenzisa "ukwenza" egameni, I-CMake yindawo eyahlukileyo kunye nenqanaba eliphezulu kunenkqubo yokwenza eqhelekileyo ye Unix, ifana nee-autotools.
Malunga neCMake
CMake iyaphawuleka ngokubonelela ngolwimi olulula, izixhobo zokwandisa ukusebenza kwiimodyuli, inani elincinci lokuxhomekeka (akukho zibophelelo kwi-M4, ePerl, okanye kwiPython), inkxaso ye-caching, ukubakho kwezixhobo zokudibanisa umnqamlezo, inkxaso yokuvelisa iifayile zebandla kuluhlu olubanzi lweenkqubo zomhlanganisi kunye nabahlanganisi.
Izixhobo ze-ctest kunye ne-cpack zokuchaza imeko zovavanyo kunye nokudala iphakheji, kunye nokusetyenziswa kwe-cmake-gui kulungelelwaniso lwendibaniselwano yolwakhiwo.
I-CMake isetyenziselwa ukulawula inkqubo yokuhlanganiswa kwesoftware isebenzisa iifayile ezilula kunye nezizimeleyo yeqonga. I-Cmake ivelisa iifayile zemveli kunye neendawo zokusebenza ezinokusetyenziswa kwimeko yophuhliso enqwenelekayo.
Inokuthelekiswa nenkqubo yokwakha ye-Unix GNU yokuba inkqubo ilawulwa ziifayile zoqwalaselo, kwimeko yeCMake ebizwa ngokuba yiCMakeLists.txt.
Ngokungafaniyo nenkqubo yokwakha ye-GNU, ethi Ithintelwe kumaqonga eUnix, I-CMake ixhasa ukuveliswa kweefayile kwiinkqubo ezahlukeneyo zokusebenza, eziququzelela ukugcinwa kunye nokuphelisa isidingo sokuba neefayile ezininzi kwiqonga ngalinye.
Inkqubo yokwakha ilawulwa ngokwenza enye okanye ngaphezulu kweefayile zeCMakeLists.txt kulawulo ngalunye (kubandakanya neefayile ezikwimibhalo engezantsi).
Ikhowudi yeCMake ibhaliwe kwi-C ++ kwaye ihanjiswa phantsi kwelayisensi ye-BSD.
I-CMake 3.15 Iimpawu eziNtsha eziPhambili
Le nguqulo intsha ibonakalisiwe kukufika kwenkxaso yokuqala yomvelisi wolwimi olukhawulezayo iphuhliswe ngu-Apple yongezwe kumvelisi wesikripthi seNinja Toolkit.
Ngaphandle koku, iza nenkxaso kukhetho lomhlanganisi weClang yeeWindows ezakhiwe ngeABI MSVC, kodwa isebenzisa iindlela zendlela yomyalelo we-GNU.
Abaphuhlisi bagxininisa ukuba izinto eziguquguqukayo CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
ziyongezwa ukukhetha iilayibrari zexesha lokusebenza ezisetyenziswa ngabahlanganisi ABI MSVC
(KwiMS Studio Studio).
Kwiikhomputha ezinje MSVC
, kwi CMAKE__FLAGS
Ngokuzenzekelayo, uluhlu lweeflegi zokulawula isilumkiso ezinje nge "/ W3" luyekisiwe.
Olunye uphuculo oluqaqanjisiweyo kwisibhengezo sokukhutshwa kwale nguqulo intsha, sifumana oku kulandelayo:
- Yongeze intetho evelisayo '
COMPILE_LANG_AND_ID
: »Ukuseta iinketho zomhlanganisi zeefayile ekujoliswe kuzo ezisebenzisa izinto eziguquguqukayoCMAKE__COMPILER_ID
yLANGUAGE
kwifayile nganye yekhowudi - Amagqabantshintshi
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
yongeza inkxaso yokuthelekisa ixabiso kuluhlu, izinto ezahlulwe ngokhefana - Umahluko wongezwa
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, apho umnxeba uza kufumana_package () uza kujonga ifayile ye-package kuqala, nokuba imodyuli yokukhangela iyafumaneka - Kwiilayibrari ezinonxibelelwano, inkxaso yongezwa kuseto lweepropathi
PUBLIC_HEADER y PRIVATE_HEADER
, Ezintloko zayo zinokuqwalaselwa ngumyalelo wokufaka (IITARGETS) zokudlulisa iimpikiswanoPUBLIC_HEADER
yPRIVATE_HEADER
- Umahluko wongezwa
CMAKE_VS_JUST_MY_CODE_DEBUGGING
kunye nepropathi yendawo ekuyiwa kuyoVS_JUST_MY_CODE_DEBUGGING
ukwenza imowudi "yeKhowudi yam nje" kwi-Visual Studio debugger xa usenza i-MSVC cl 19.05 kunye neenguqulelo ezintsha. - Imodyuli ye-FindBoost yenziwe yasebenza kwakhona, ngoku esebenza ngokuzeleyo kuqwalaselo nakwimodyuli zemodyuli kunye nobukho bezinye iimodyuli zokukhangela
- Inkxaso yeSAZISO, VERBOSE, DEBUG, kunye neentlobo ze-TRACE zongezwa kumyalezo we-message ()
- Umyalelo we "export (PACKAGE)" ngoku awenzi nto de ibe yenziwe ngokucacileyo ngokudibeneyo
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Ukuba ufuna ukwazi ngakumbi ngayo ungadibana eli khonkco lilandelayo.