2015-06-12 3 views
7

मुझे यह पूछने के लिए लगभग मूर्खतापूर्ण लगता है लेकिन मुझे इस पर कुछ भी नहीं मिला ...मैं कमांड लाइन से निर्धारित किए गए लक्ष्य को कैसे सूचीबद्ध करूं?

मान लीजिए कि मेरे पास एक सेमेक प्रोजेक्ट है जिसमें कई लक्ष्य हैं: पुस्तकालय, निष्पादन योग्य, बाहरी लक्ष्य, ...। मैं cmake कमांड लाइन इंटरफ़ेस का उपयोग करके उन्हें कैसे सूचीबद्ध करूं? मैं उन चीजों की एक सूची चाहता हूं जो $target के लिए निम्न कमांड लाइन में विकल्प के लिए मान्य हैं।

cmake . && cmake --build . --target $target 

लॉट एक समाधान न ग्रेप का उपयोग करता है और न ही और न ही अजगर और न ही पर्ल और न ही लगता है ... कि के लिए बोनस अंक के - आप अंदाजा हो।

उत्तर

9

Makefile जनरेटर का निर्माण वातावरण के लिए आप इस्तेमाल कर सकते हैं

cmake.exe --build . --target help 

और चित्रमय परिणाम समाधान (उदाहरण पाया here) है:

cmake.exe . --graphviz=test.graph 
dotty test.graph 

भी देखें Generating Dependency Graphs with CMake और CMake Graphviz Output Cleaner

आप dotty स्थापित नहीं हैं, तो आप अभी भी लक्ष्य निर्भरता दिखाई अपने CMakeLists.txt में GLOBAL_DEPENDS_DEBUG_MODE सक्रिय करने के साथ कर सकते हैं:

set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_DEBUG_MODE 1) 

disadavantage यहाँ है कि आप इसे कमांड लाइन से ट्रिगर नहीं कर सकता है । मेक पर्यावरण उत्पन्न करते समय यह हमेशा stderr पर दिखाएगा।

संदर्भ

+0

खैर, यह कुछ ऐसा है जो अंतर्निहित जनरेटर के नास्तिक है लेकिन मेरे लिए काम करता है बनाने के लिए अच्छा होगा। मुझे वास्तव में ग्राफिकल आउटपुट समाधान पसंद नहीं है क्योंकि इसे डॉटी की आवश्यकता होती है जिसे मैं perl, grep और bash से भी बदतर मानता हूं क्योंकि यह मेरे द्वारा उपयोग की जाने वाली किसी भी प्रणाली की डिफ़ॉल्ट स्थापना में नहीं आता है। मैं अभी भी मेक-आधारित समाधान के लिए अंक प्रदान करूंगा। – Holger

+0

धन्यवाद। मैंने 'GLOBAL_DEPENDS_DEBUG_MODE' वैश्विक संपत्ति का उपयोग करने के लिए जानकारी जोड़ दी है। यह 'dotty' के बिना और '--graphviz' कमांड लाइन विकल्प के बिना भी काम करेगा। और - क्योंकि मैं इसे पहले सीएमके में भी याद कर रहा था - मैं सीएमके के बग ट्रैकर पर '--list-all-targets' कमांड लाइन विकल्प के लिए एक फीचर अनुरोध पोस्ट करने की योजना बना रहा हूं। अगर मुझे सकारात्मक प्रतिक्रिया मिलती है तो मैं आपको यहां अपडेट रखूंगा। – Florian

+4

ध्यान दें कि 'cmake --build। - लक्ष्य सहायता 'मूल रूप से' 'मदद करें '' – Ignitor

संबंधित मुद्दे