से एक प्रोग्राम/स्क्रिप्ट चला रहा है हमारे पास काफी बड़ा कोड-बेस है। कोड का विशाल बहुमत मेकफ़ाइल बनाने के लिए qmake का उपयोग करके संकलित किया जाता है। हालांकि, कुछ उप-परियोजनाएं हैं जो बैच फ़ाइलों को चलाकर या अन्य प्रोग्राम चलाकर उत्पादित होती हैं।QMake
मैं qmake का उपयोग करके संकलित सब कुछ प्राप्त करने में सक्षम होना चाहता हूं, लेकिन मैं समझ नहीं सकता कि क्यूमेक को आसानी से स्क्रिप्ट चलाने के लिए कैसे प्राप्त किया जाए।
एक बात है कि मैं कोशिश की है मेरे समर्थक फ़ाइल में QMAKE_EXTRA_TARGETS उपयोग कर रहा है, इसलिए जैसे:
# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
:
TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS = batch_runner
मैं तो इतना तरह बैच फ़ाइल उपज placeholder.cpp करना होगा
यह ठीक काम करता प्रतीत होता है। मुसीबत यह है कि यह कुछ हकी है। अगर मैं batch_runner.target निर्दिष्ट नहीं करता हूं (यानी मैं इसे खाली छोड़ देता हूं) या SOURCES में placeholder.cpp नहीं डालता है तो बैच फ़ाइल कभी नहीं चलती है। ऐसा इसलिए है क्योंकि qmake batch_runner.com मेकफ़ाइल में किसी भी अन्य निर्भरता के लिए कार्रवाई नहीं कर रहा है।
क्या मेकफ़ाइल बनाने के लिए क्यूमेक प्राप्त करने का कोई बेहतर तरीका है कि मेकफ़ाइल निष्पादित होने पर एक स्क्रिप्ट चलती है?
दिलचस्प। यह काम करता है, लेकिन 'nmake' चलाने के बजाए 'qmake' चलाए जाने पर आदेश चलाया जाता है। इसे वास्तव में चलाने के बजाए तीन बार दौड़ना भी होता है। –
आपको यह सुनिश्चित करने के लिए कुछ गुंजाइश जोड़नी पड़ सकती है कि यह केवल एक बार चलती है। –
मैंने अभी उदाहरण के लिए दायरा जोड़ा है ताकि कमांड केवल एक बार चलाया जा सके जब qmake चलाया जाता है। – pixelgrease