Disa ditë më parë U lëshua gjeneratori i shkrimit me burim të hapur ndër-platformor CMake 3.15 i cili vepron si një alternativë ndaj Automotools dhe përdoret në projekte si KDE, LLVM / Clang, MySQL, MariaDB, ReactOS dhe Blender.
CMake është një mjet gjenerimi ose automatizimi i kodit multiplatform. Emri është një shkurtim për "cross platform make" (bëj platformë kryq, përtej përdorimit të "make" në emër, CMake është një suitë e veçantë dhe një nivel më i lartë se sistemi i zakonshëm i markës të Unix, duke qenë i ngjashëm me automotoolët.
Rreth CMake
Bëni është i shquar për sigurimin e një gjuhe të thjeshtë skenare, mjete për të zgjeruar funksionalitetin nëpër module, numrin minimal të varësive (nuk ka lidhje me M4, Perl, ose Python), mbështetjen e caching, disponueshmërinë e mjeteve për përpilimin e kryqëzuar, mbështetjen për gjenerimin e skedarëve të montimit për sistemet e përpiluesve të një game të gjerë dhe përpiluesit.
Shërbimet ctest dhe cpack për përcaktimin e skenarëve të provave dhe krijimin e paketave, me mjetin cmake-gui për konfigurimin në mënyrë interaktive të parametrave të ndërtimit.
CMake përdoret për të kontrolluar procesin e përpilimit të softuerit duke përdorur skedarë konfigurimi të thjeshtë dhe të pavarur nga platforma. Cmake gjeneron krijime dhe hapësira pune vendase që mund të përdoren në mjedisin e dëshiruar të zhvillimit.
Isshtë e krahasueshme me sistemin e ndërtimit të Unix GNU në atë që procesi kontrollohet nga skedarët e konfigurimit, në rastin e CMake të quajtur CMakeLists.txt.
Ndryshe nga sistemi i ndërtimit të GNU, i cili është i kufizuar në platformat Unix, CMake mbështet gjenerimin e skedarëve për sisteme të ndryshme operative, i cili lehtëson mirëmbajtjen dhe eliminon nevojën për të pasur grupe të shumta skedarësh për secilën platformë.
Procesi i ndërtimit kontrollohet duke krijuar një ose më shumë skedarë CMakeLists.txt në secilin direktori (përfshirë nëndrejtoritë).
Kodi CMake është shkruar në C ++ dhe shpërndahet nën licencën BSD.
Karakteristikat kryesore të reja të CMake 3.15
Ky version i ri theksohet nga ardhja e mbështetjes fillestare të gjeneratorit për gjuhën Swift i zhvilluar nga Apple është shtuar në gjeneratorin e skenareve të kuvendit Ninja Toolkit.
Përveç kësaj, gjithashtu vjen mbështetja për opsionin përpilues Clang për Windows që është ndërtuar me ABI MSVC, por përdor opsionet e rreshtit të komandës në stilin GNU.
Zhvilluesit theksojnë që ndryshoret CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
shtohen për të zgjedhur bibliotekat e ekzekutimit të përdorura nga përpiluesit ABI MSVC
(MSVisual Studio).
Për përpiluesit si MSVC
Në CMAKE__FLAGS
Si parazgjedhje, lista e flamujve të kontrollit paralajmërues të tilla si "/ W3" ndalet.
Nga përmirësimet e tjera që janë theksuar në njoftimin e lëshimit të këtij versioni të ri, ne gjejmë si më poshtë:
- Shtoi shprehjen gjeneruese '
COMPILE_LANG_AND_ID
: »Për të përcaktuar opsionet e përpiluesit për skedarët e synuar që përdorin ndryshoreCMAKE__COMPILER_ID
yLANGUAGE
për secilën skedar të kodit - Shprehjet e gjeneratorëve
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
shtoni mbështetje për përputhjen e një vlere në një listë, artikuj të ndarë me presje - Ndryshorja u shtua
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, në të cilën thirrja për të gjetur_paketë () do të kërkojë së pari skedarin e konfigurimit të paketës, edhe nëse moduli i kërkimit është i disponueshëm - Për bibliotekat e ndërfaqeve, mbështetja është shtuar për vendosjen e vetive
PUBLIC_HEADER y PRIVATE_HEADER
, kokat e të cilave mund të konfigurohen nga komanda e instalimit (TARGJET) duke kaluar argumentetPUBLIC_HEADER
yPRIVATE_HEADER
- Ndryshorja u shtua
CMAKE_VS_JUST_MY_CODE_DEBUGGING
dhe prona e destinacionitVS_JUST_MY_CODE_DEBUGGING
për të mundësuar modalitetin "Just My Code" në korrigjuesin e Visual Studio kur përpiloni duke përdorur MSVC cl 19.05 dhe versione më të reja. - Moduli FindBoost është ripunuar, i cili tani po punohet më plotësisht në modalitetet e konfigurimit dhe modulit me praninë e moduleve të tjerë të kërkimit
- Në komandën e mesazhit () është shtuar mbështetja për llojet NOTICE, VERBOSE, DEBUG dhe TRACE.
- Komanda "eksport (PAKETIM)" tani nuk bën asgjë derisa të aktivizohet në mënyrë të qartë përmes ndryshores
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Nëse doni të dini më shumë rreth kësaj mund të konsultoheni lidhja e mëposhtme.