हमारे कार्यप्रवाह में, हम एक मॉड्यूल एक कि कई हेडर फाइल से बना है, मॉड्यूल एक किसी भी बाइनरी (पक्ष टिप्पणी नहीं उत्पादन हो सकता है: यह स्पष्ट रूप से अन्य मॉड्यूल, कि हेडर से कुछ में शामिल द्वारा उपयोग किया जाएगा द्विआधारी उत्पादन के लिए मॉड्यूल ए)।सीएमके शो हेडर कैसे हैं- जो किसी भी बाइनरी लक्ष्य का हिस्सा नहीं हैं-आईडीई में?
एक अच्छा उदाहरण एक हैडर-केवल पुस्तकालय, जिसके लिए CMake 3 परिचय INTERFACE
पुस्तकालय की धारणा के लिए एक अच्छा समर्थन के लिए धन्यवाद होगा (this SO answer देखते हैं, और CMake के documentation of the feature)।
हम मॉड्यूल से बाहर एक अंतरफलक पुस्तकालय लक्ष्य बना सकते हैं एक:
add_library(module_A INTERFACE)
हमें CMakes लक्ष्यों के सभी अच्छा सुविधाओं देता है कि (यह एक और लक्ष्य की निर्भरता के रूप में उपयोग करने के लिए संभव है, यह निर्यात करने के लिए , आगे आवश्यकताओं आदि संक्रामक करने के लिए)
लेकिन इस मामले में, मॉड्यूल में हेडर एक हमारे आईडीई (Xcode में दिखाई नहीं देती हैं, फिर भी हम यह सबसे/हर दूसरे IDE के साथ समान होने की अपेक्षा)।
यह वर्कफ़्लो में एक बड़ी कमी साबित होता है, क्योंकि हमें संस्करण के लिए आईडीई में दिखाए जाने के लिए मॉड्यूल ए लिखने वाली फ़ाइलों की आवश्यकता है। क्या यह हासिल करना संभव है?
Ah ने मेरी टिप्पणी हटा दी। अच्छा प्रश्न। – IdeaHat
@IdeaHat प्रश्न में आपकी रूचि और आपके सुझाव के लिए धन्यवाद। अफसोस की बात है, 'add_library' कमांड का 'इंटरफेस' रूप किसी भी * फ़ाइल * तर्क की अपेक्षा नहीं करता है (देखें [दस्तावेज़ीकरण में अंतिम रूप] (http://www.cmake.org/cmake/help/v3.0/command /add_library.html?highlight=add_library))। असल में, हमें अनिवार्य रूप से 'इंटरफेस' की आवश्यकता नहीं है, लेकिन यह केवल ** म्यूटेबल ** गैर-बाइनरी लक्ष्य है जिसे हम जानते हैं। [संदर्भ के लिए, आइडियाहैट सोच रहा था कि अगर हम अपने 'इंटरफेस' फॉर्म में 'add_library' कमांड' में हेडर फाइलें प्रदान कर सकते हैं तो –
एक हैक तरीका एक डमी कस्टम लक्ष्य (कभी भी निर्मित नहीं किया गया है, या कोई बिल्ड कदम नहीं) स्रोत के रूप में इन फ़ाइलों के साथ ... मेरी व्यक्तिगत शिक्षा के लिए, क्या आपके पास सीएमके की उत्परिवर्तनीय परिभाषा का एक लिंक है? – IdeaHat