2016-06-03 3 views
8

बनाने के लिए उपयोग किया जाएगा क्या कोई सीमैक वैरिएबल प्राप्त करने का कोई समझदार तरीका है जिसमें बिल्ड कमांड या सभी कंपाइलर झंडे हैं जो सीएमके लक्ष्य के साथ संबद्ध होंगे?बिल्ड कमांड या सभी कंपाइलर झंडे प्राप्त करें जिनका लक्ष्य

झंडे जोड़ सकते हैं जो सभी गुणों की एक सूची को इकट्ठा करने और बनाए रखने की कोशिश करने के लिए व्यावहारिक प्रतीत नहीं होता है। इसके अलावा, सीएमके के पास कहीं भी यह जानकारी होनी चाहिए, क्योंकि इसे अंततः एक बिल्ड सिस्टम उत्पन्न करना है। पहले 3.0

नोट CMake संस्करणों में इस आदेश का कोई आदेश लाइन है कि सीधे देशी invokes लौटे:

CMake docs यह लग रहा है इस सुविधा की तरह एक बार अस्तित्व में और build_command() बुला द्वारा प्रदान किया गया है, लेकिन इस बदल दिया गया था से

मौजूदा जेनरेटर के लिए टूल बनाएं।

क्या कोई नया आदेश है जो build_command() का पुराना व्यवहार देता है?

+0

देखें उदहारण के लिए:

फिर भी, सब एक स्रोत फ़ाइल के लिए झंडे का निर्माण आप COMPILE_FLAGS संपत्ति का उपयोग कर सकते प्राप्त करने के लिए [CMAKE_EXPORT_COMPILE_COMMANDS का उपयोग कैसे करें?] (Https://stackoverflow.com/questions/20059670/how-to-use-cmake-export-compile-commands) या [सीएमके में सभी लिंक झंडे पुनर्प्राप्त करें] (https: // stackoverflow। com/प्रश्न/34165365/पुनः प्राप्त सभी-लिंक-झंडे-इन-cmake)। क्या आप कमांड लाइन या सभी कंपाइलर झंडे के साथ क्या करना चाहते हैं, कृपया अधिक विशिष्ट हो सकते हैं? यदि आप उदास उत्पन्न करते हैं विजुअल स्टूडियो समाधान और प्रोजेक्ट्स कमांड लाइन सहित कुछ भी नहीं हो सकता है। कंपाइलर झंडे। – Florian

उत्तर

0

फ्लैग बनाएं, वास्तव में, स्रोत फ़ाइलों से जुड़े हैं, क्योंकि आप अलग-अलग फ़ाइलों के लिए अलग-अलग झंडे रख सकते हैं। दूसरी तरफ, ज्यादातर मामलों के लिए ये झंडे बराबर हैं।

get_source_file_property(RESULT file.cpp COMPILE_FLAGS) 
+3

या तो लक्ष्य की 'COMPILE_FLAGS' संपत्ति या उस लक्ष्य में उपयोग किए जाने वाले स्रोत का उपयोग बिल्ड फ़्लैग की पूरी सूची का मूल्यांकन नहीं करता है जिसका उपयोग किया जाएगा। मैंने अभी यह सुनिश्चित करने के लिए एक लक्ष्य पर कोशिश की है और 'COMPILE_FLAGS' प्रॉपर्टी सेट नहीं है यदि' INCLUDE_DIRECTORIES' और 'COMPILE_DEFINITIONS' जैसी गुण सेट हैं। लक्ष्य में उपयोग की जाने वाली यादृच्छिक स्रोत फ़ाइल के लिए भी यही सच था। सीएमके डॉक्स की तरह, ऐसा लगता है कि 'COMPILE_FLAGS' "अतिरिक्त" झंडे के लिए है - यह उन सभी झंडे का मूल्यांकन नहीं करता है जिनका उपयोग किया जाएगा। – Praxeolitic

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