2012-10-23 12 views
47

के परिणामस्वरूप सीएमके वैरिएबल को कैसे प्रारंभ करूं? क्या एक शेल कमांड के आउटपुट में एक सीएमके स्क्रिप्ट में चर सेट करने का कोई तरीका है? SET(FOO COMMAND "echo bar") जैसे कुछमैं शेल कमांड

उत्तर

55

आपको execute_process कमांड चाहिए।


आपके मामले में, विंडोज पर:

execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO) 


या लिनक्स, बस पर:

execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO) 


इस विशेष मामले में, CMake एक पार मंच समाधान प्रदान करता है। सीएमके को स्वयं कमांड चलाने के लिए इस्तेमाल किया जा सकता है जिसे सभी प्रणालियों पर इस्तेमाल किया जा सकता है, जिनमें से एक echo है। ऐसा करने के लिए, सीएमके को कमांड लाइन arg -E पारित किया जाना चाहिए। ,

execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO) 
+4

आदेश के आधार पर आप अमल वह: इस तरह के आदेशों की पूरी सूची के लिए, चलाने cmake -E help

एक CMake स्क्रिप्ट के अंदर, CMake निष्पादन ${CMAKE_COMMAND} से जाना जाता है, इसलिए स्क्रिप्ट करने की जरूरत है चर के लिए पिछला सफेद जगह सेट करें। यदि यह व्यवहार वांछनीय नहीं है, तो आप 'execute_process' फ़ंक्शन के अंतिम तर्क के रूप में OUTPUT_STRIP_TRAILING_WHITESPACE विकल्प का उपयोग कर सकते हैं। – hbobenicio

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