कुछ दिनों पहले सीएमके 3.15 क्रॉस-प्लेटफ़ॉर्म ओपन सोर्स स्क्रिप्ट जनरेटर की घोषणा की गई जो ऑटोटूल्स के विकल्प के रूप में कार्य करता है और KDE, LLVM/Clang, MySQL, MariaDB, ReactOS और Blender जैसी परियोजनाओं में उपयोग किया जाता है।
CMake एक क्रॉस-प्लेटफ़ॉर्म कोड जनरेशन या ऑटोमेशन टूल है। नाम में "मेक" के उपयोग की परवाह किए बिना, नाम "क्रॉस प्लेटफ़ॉर्म मेक" का संक्षिप्त रूप है।, सीएमके सामान्य मेक सिस्टम की तुलना में एक अलग और उच्च स्तरीय सुइट है यूनिक्स, ऑटोटूल्स के समान है।
सीएमके के बारे में
सीएमके एक सरल स्क्रिप्टिंग भाषा प्रदान करने के लिए उल्लेखनीय है, मॉड्यूल में कार्यक्षमता बढ़ाने के लिए उपकरण, निर्भरता की न्यूनतम संख्या (एम 4, पर्ल या पायथन के लिए कोई बंधन नहीं), कैशिंग समर्थन, क्रॉस-कंपाइलिंग के लिए उपकरणों की उपलब्धता, एक विस्तृत श्रृंखला के निर्माण सिस्टम और कंपाइलरों के लिए असेंबली फाइलें बनाने के लिए समर्थन।
परीक्षण परिदृश्यों और निर्माण पैकेजों को परिभाषित करने के लिए ctest और cpack उपयोगिताएँ, बिल्ड मापदंडों को इंटरैक्टिव रूप से कॉन्फ़िगर करने के लिए cmake-gui उपयोगिता के साथ।
सीएमके का उपयोग सरल, स्टैंड-अलोन कॉन्फ़िगरेशन फ़ाइलों का उपयोग करके सॉफ़्टवेयर निर्माण प्रक्रिया को नियंत्रित करने के लिए किया जाता है। मंच से. Cmake देशी मेकफ़ाइलें और कार्यस्थान उत्पन्न करता है जिनका उपयोग वांछित विकास वातावरण में किया जा सकता है।
यह यूनिक्स के जीएनयू बिल्ड सिस्टम से तुलनीय है जिसमें बिल्ड प्रक्रिया को कॉन्फ़िगरेशन फ़ाइलों द्वारा नियंत्रित किया जाता है, सीएमके के मामले में जिसे CMakeLists.txt कहा जाता है।
जीएनयू बिल्ड सिस्टम के विपरीत, जो यूनिक्स प्लेटफ़ॉर्म तक ही सीमित है, CMake विभिन्न ऑपरेटिंग सिस्टम के लिए फ़ाइलों के निर्माण का समर्थन करता है, जो रखरखाव को आसान बनाता है और प्रत्येक प्लेटफ़ॉर्म के लिए फ़ाइलों के कई सेट रखने की आवश्यकता को समाप्त करता है।
निर्माण प्रक्रिया को प्रत्येक निर्देशिका (उपनिर्देशिकाओं सहित) में एक या अधिक CMakeLists.txt फ़ाइलें बनाकर नियंत्रित किया जाता है।
CMake कोड C++ में लिखा गया है और BSD लाइसेंस के तहत वितरित किया गया है।
सीएमके 3.15 की मुख्य नई विशेषताएं
यह नया संस्करण स्विफ्ट भाषा के लिए प्रारंभिक जनरेटर समर्थन के आगमन पर प्रकाश डाला गया है Apple द्वारा विकसित निंजा टूलकिट असेंबली स्क्रिप्ट जनरेटर में जोड़ा गया है।
इस के अलावा, क्लैंग कंपाइलर विकल्प के लिए समर्थन भी आता है विंडोज़ के लिए जो एबीआई एमएसवीसी के साथ बनाया गया है, लेकिन जीएनयू-शैली कमांड लाइन विकल्पों का उपयोग करता है।
डेवलपर्स उस चर की ओर इशारा करते हैं CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
कंपाइलरों द्वारा उपयोग की जाने वाली चुनिंदा रनटाइम लाइब्रेरीज़ में जोड़ा जाता है ABI MSVC
(एमएस विजुअल स्टूडियो)।
जैसे कंपाइलर्स के लिए MSVC
में CMAKE__FLAGS
डिफ़ॉल्ट रूप से, चेतावनी नियंत्रण फ़्लैग की सूची, जैसे "/W3", बंद कर दी जाती है।
इस नए संस्करण की रिलीज़ की घोषणा में जो अन्य सुधार सामने आए, उनमें से हम निम्नलिखित पाते हैं:
- जोड़ा गया जनरेटर अभिव्यक्ति "
COMPILE_LANG_AND_ID
:" चर का उपयोग करने वाली लक्ष्य फ़ाइलों के लिए कंपाइलर विकल्पों को परिभाषित करने के लिएCMAKE__COMPILER_ID
yLANGUAGE
प्रत्येक कोड फ़ाइल के लिए - जनरेटर अभिव्यक्तियाँ
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
किसी सूची में किसी मान के मिलान के लिए समर्थन जोड़ें, आइटम को अल्पविराम से अलग करें - वेरिएबल जोड़ा गया
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, जिसमें find_package() पर कॉल सबसे पहले पैकेज की कॉन्फ़िगरेशन फ़ाइल की तलाश करेगी, भले ही खोज मॉड्यूल उपलब्ध हो - इंटरफ़ेस लाइब्रेरीज़ के लिए, गुणों की सेटिंग के लिए समर्थन जोड़ा गया है
PUBLIC_HEADER y PRIVATE_HEADER
, जिनके हेडर तर्कों को पार करते हुए इंस्टॉल कमांड (लक्ष्य) द्वारा सेट किए जा सकते हैंPUBLIC_HEADER
yPRIVATE_HEADER
- वेरिएबल जोड़ा गया
CMAKE_VS_JUST_MY_CODE_DEBUGGING
और लक्ष्य संपत्तिVS_JUST_MY_CODE_DEBUGGING
MSVC cl 19.05 और नए संस्करणों का उपयोग करते समय विजुअल स्टूडियो डिबगर में "जस्ट माई कोड" मोड को सक्षम करने के लिए। - फाइंडबूस्ट मॉड्यूल को फिर से तैयार किया गया है, जिसे अब अन्य खोज मॉड्यूल की उपस्थिति के साथ कॉन्फ़िगरेशन और मॉड्यूल मोड में अधिक पूरी तरह से काम किया जा रहा है।
- संदेश() कमांड में नोटिस, वर्बोज़, डीबग और ट्रेस प्रकारों के लिए समर्थन जोड़ा गया
- "निर्यात (पैकेज)" कमांड अब तब तक कुछ नहीं करता जब तक कि वेरिएबल के माध्यम से स्पष्ट रूप से सक्षम न किया जाए
CMAKE_EXPORT_PACKAGE_REGISTRY
.
यदि आप इसके बारे में अधिक जानना चाहते हैं तो आप परामर्श कर सकते हैं निम्नलिखित लिंक।