2009-10-20 9 views
8

मैं अपनी बिल्ड प्रक्रिया को सेमेक के साथ स्वचालित करने की कोशिश कर रहा हूं। वर्तमान में केवल एक मुद्दा है:सेमीकेक: मेरे प्रोग्राम के साथ डेटा फ़ाइलों की प्रतिलिपि बनाने के लिए स्क्रिप्ट कैसे बनाएं

, जहां सेमेक के दर्शन (यदि कोई है) में, डेटा फ़ाइलों की प्रतिलिपि बनाने के लिए सबसे अच्छी जगह है।

मेरे पास एक पुस्तकालय और कुछ उदाहरण हैं। उदाहरणों को डेटा की आवश्यकता है।

मैं वर्तमान में निम्न कार्य करें:

मैं प्रत्येक उदाहरण के CMakeLists.txt में एक कस्टम आदेश का उपयोग एक के बाद निर्माण चरण में CMAKE_CURRENT_BINARY_DIR में सभी डाटा कॉपी करने के लिए। मैं इसे अपने डीबगिंग वर्कफ़्लो में उपयोग करता हूं, इसलिए अभी तक कोई इंस्टॉल लक्ष्य निष्पादित नहीं किया गया है।

यह काफी अच्छी तरह से काम करता है, लेकिन कुछ कमियां भी हैं:

  1. नकल होती है हर परियोजना बनाया गया है। वीएस 2005 के साथ यह कभी-कभी होता है भले ही यह नव निर्मित न हो। चूंकि डेटा फ़ोल्डर्स बड़े होते हैं, प्रतिलिपि में समय लगता है, और यह थोड़ा परेशान हो जाता है।
  2. मुझे यकीन है कि यह करने का यह एक बहुत ही बेवकूफ तरीका है।

मैं निष्पादन रास्तों को उन निर्देशिकाओं प्रतिलिपि बनाना चाहते हैं, तो मैं संकेत की जरूरत नहीं कैसे डिबग कार्यशील निर्देशिका

सही समय इन निर्देशिका कॉपी करने के लिए cmake विन्यास पर होगा स्थापित करने के लिए है/पीढ़ी समय , कम से कम मुझे तो यही लगता है। क्या मुझे यह करना चाहिए, और मैं यह कैसे करूँगा?

उत्तर

12

हाल ही में this question में देखा के रूप में, आप का निर्माण करने के लिए निर्देशिका फ़ाइलों की प्रतिलिपि बनाने configure_file उपयोग कर सकते हैं:

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt 
    ${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY) 

निर्माण समय में एक बार यह होता है और यही कारण है कि केवल जब जरूरत।

+2

धन्यवाद! मुझे आश्चर्य है कि इस सवाल के बहुत कम जवाब हैं। सीएमके का अब व्यापक रूप से उपयोग किया जाता है, लेकिन अभी भी खराब दस्तावेज है। बहुत कम लोग वास्तव में cmake grok लगता है। – AndreasT

+2

'cmake --help-full' एफटीडब्ल्यू! :-) – richq

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

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