2009-09-03 7 views
6

क्या क्यूटी आपके प्रोग्राम के बारे में किसी भी तरह की संस्करण जानकारी को बनाए रखता है जैसे .NET करता है? निर्माण संख्या की तरह? या क्या यह एसवीएन संशोधन तक पहुंचने का एक आसान तरीका प्रदान करता है?क्यूटी ऑटो सॉफ्टवेयर संस्करण?

उत्तर

11

सं

लेकिन अगर आप qmake उपयोग कर रहे हैं तो आप का निर्माण प्रणाली मनमाना आदेशों के परिणाम है, जो आप चाहते करने के लिए प्रयोग करने योग्य हो सकता है के आधार पर में संकलक झंडे सेट कर सकते हैं।

उदाहरण के लिए, यदि आप Git इस्तेमाल कर रहे थे, तो आप कुछ इस तरह अपने .pro फ़ाइल में कर सकता है:

REVISION = $$system(git rev-parse HEAD) 
DEFINES += APP_REVISION=$$REVISION 

आप देना होगा कि एक APP_REVISION मैक्रो जब अपने कार्यक्रम है, जो आप इस तरह इस्तेमाल कर सकते हैं संकलन:

// stringize macro 
#define _STR(X) #X 
#define STR(X) _STR(X) 
QTextStream(cout) << "MyApp revision " STR(APP_REVISION) << endl; 
+0

साफ! मुझे इसके साथ खेलना होगा। मैं NetBeans का उपयोग अपने आईडीई के रूप में कर रहा हूं और यह स्वयं .pro फ़ाइल बनाता है, इसलिए मुझे यह पता लगाना होगा कि इसे मेरे परिवर्तनों को ओवरराइट करने के लिए कैसे नहीं किया जाए। – mpen

+0

यदि आप अपनी परियोजना फ़ाइल में 'DEFINES + = APP_REVISION = \\\" $$ REVISION \\\ "' करते हैं, तो आपको 'एसटीआर' मैक्रो के साथ अपनी स्रोत फ़ाइलों को प्रदूषित करने की आवश्यकता नहीं है। –

+0

@Dan: यह सच है, हालांकि समस्या यह है कि आपके उदाहरण में आवश्यक बैकस्लैश की संख्या प्लेटफ़ॉर्म-विशिष्ट है (यहां तक ​​कि शैल-विशिष्ट, क्योंकि विंडोज़ पर mingw32-make.exe के माध्यम से cmd के माध्यम से आदेश चला सकते हैं या पर्यावरण के आधार पर sh के माध्यम से)। मुझे लगता है कि इसे सही करने में काफी मुश्किल है। – rohanpm

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