मैं एकाधिक लक्ष्य उत्पन्न करने के लिए SCons
प्राप्त करने का प्रयास कर रहा हूं (SConscript
में सीधे अज्ञात संख्या)। ,लक्ष्यों की परिवर्तनीय संख्या उत्पन्न करने के लिए स्कैन
headers/
Header1.h
Header2.h
Header3.h
Header4.h
meta/
headers_list.txt
अब मैं SConscript headers_list.txt
को पढ़ने के लिए, आधारित पर इसकी सामग्री headers/
निर्देशिका से फ़ाइलों को लेने चाहते हैं (यानी यह केवल Header1
और Header3
शामिल हो सकता है) के लिए उन में से प्रत्येक मैं चाहता हूँ:
मैं निर्देशिका की तरह है कुछ फ़ंक्शन का उपयोग करके स्रोत उत्पन्न करने के लिए।
मैं ऐसा करने के लिए env.Command
का उपयोग करने का प्रयास कर रहा हूं, लेकिन समस्या यह है कि कॉलर को लक्ष्य सूची निर्दिष्ट करने की आवश्यकता होती है जो स्पष्ट कारणों से env.Command
का आह्वान करते समय ज्ञात नहीं है।
केवल एक चीज मैं के बारे में सोच सकते हैं चल रहा है:
for header in parse(headers_file):
source = mangle_source_name_for_header(header)
env.Command(source, header, generator_action)
लेकिन इसका मतलब यह है कि मैं हर बार जब मैं आह्वान scons
चल रहा हो जाएगा parse(headers_file)
। यदि पार्सिंग महंगा है और फ़ाइल को अक्सर नहीं बदला जाता है तो इस चरण को आसानी से कैश किया जा सकता है।
उस कैशिंग को प्राप्त करने के लिए मुझे क्या स्कैनस्क निर्माण/कक्षा/तकनीक याद आ रही है?
संपादित करें:
ऐसा लगता है मेरे सवाल Build-time determination of SCons targets के समान है, लेकिन वहाँ कृत्रिम डमी फ़ाइल के बिना एक तकनीक नहीं है?
इसके अलावा, यहां तक कि अस्थायी फ़ाइल के साथ, मैं नहीं देख सकते कि मैं Command
कि दूसरा एक है कि उन पर पुनरावृति होगी लक्ष्यों की चर संख्या उत्पन्न करता है से target
चर पारित करना चाहिए है।
संपादित 2:
This होनहार लग रहा है।