2009-07-11 26 views
6

सरल सवाल। क्या कमांड लाइन से एक्सकोड परियोजनाएं उत्पन्न करने के लिए कोई उपकरण हैं? हम अपने क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन को बनाने के लिए स्कॉन्स का उपयोग करते हैं, लेकिन यह आंतरिक एक्सकोड प्रोजेक्ट पीढ़ी का समर्थन नहीं करता है। हम परियोजना को मैन्युअल रूप से बनाने से बचना चाहते हैं, क्योंकि इसमें एकाधिक फ़ाइल सूचियों को बनाए रखना शामिल होगा।क्या स्वचालित रूप से एक्सकोड परियोजनाएं उत्पन्न करना संभव है?

उत्तर

1

मुझे लगता है कि आपका प्रश्न होना चाहिए "क्या एक स्कैन से एक्सकोड प्रोजेक्ट जेनरेट करने का कोई तरीका है?"। मुझे लगता है, आपके पूछने और दूसरों को पढ़कर, जवाब 'नहीं' है।

SCons people इसे बेहतर ढंग से जानना चाहिए। मुझे लगता है कि यदि आप एक स्कैन एक्सकोड परियोजना जनरेटर का योगदान करते हैं तो वे खुश होंगे।

इस बीच आप सीएमके में स्विच करना चुन सकते हैं या अपने एक्सकोड प्रोजेक्ट को हाथ से बनाने के लिए चुन सकते हैं, एक अच्छा स्रोत वृक्ष संगठन दिया गया है, यह सबसे अच्छा व्यावहारिक समाधान हो सकता है।

4

CMake पर देखें। आप स्वचालित रूप से एक्सकोड परियोजनाएं उत्पन्न कर सकते हैं। मुझे इसके उपयोग here के बारे में पिछला स्टैक ओवरफ़्लो प्रश्न मिला। यह एक XCode प्रोजेक्ट उत्पन्न करने के लिए पाने के लिए आपको यह इस तरह के रूप में उपयोग:

CMake -G xcode 
+0

की तरह अपने waf निष्पादन योग्य चलाने हाँ, हम CMake करने के लिए परियोजना को परिवर्तित करने से बचने के लिए कोशिश कर रहे हैं ... मैं अनुमान लगाएं कि हम SCons से एक CMakeLists.txt फ़ाइल उत्पन्न कर सकते हैं, या शायद नहीं;) –

-1

आप स्वचालक इस्तेमाल कर सकते हैं उन्हें आप के लिए उत्पन्न करने के लिए।

मैंने जांच की और कोई पूर्वनिर्धारित कार्रवाई नहीं है। इसलिए आपको ऐसा करने के लिए ऑटोमेटर के साथ अपने कार्यों को रिकॉर्ड करना होगा।

+0

बस ऑटोमेटर की जांच की गई, मुझे यकीन नहीं है कि मैं जो खोज रहा हूं उसके बाद से यह संचालन करने के लिए जीयूआई का उपयोग करता है। मैं कमांड आधारित दृष्टिकोण की तरह सोच रहा था ...फिर भी धन्यवाद। –

1

क्यूटी टूलचैन में qmake एक्सकोड परियोजनाएं उत्पन्न करता है। आप कम से कम इसे डाउनलोड कर सकते हैं और इसके स्रोत here (LGPL) पर एक नज़र डालें।

3

आप एक्सकोड परियोजनाओं को उत्पन्न करने के लिए प्रीमेक (http://industriousone.com/premake) का उपयोग कर सकते हैं। यह विजुअल स्टूडियो परियोजनाएं भी उत्पन्न कर सकता है।

1

इस प्रश्न पर उतरने वाले किसी भी व्यक्ति के लाभ के लिए, मैंने वास्तव में an Xcode project file generator for SCons को बिटबकेट तक धक्का दिया है।

+0

+1 - दिलचस्प। होमब्री के साथ इसे संगत बनाया जा सकता है? यह भी अच्छा होगा अगर यह वैकल्पिक रूप से .swift फ़ाइलों से शुरू हो सकता है। –

+0

@TommieC। जेनरेटर को स्रोत फ़ाइल सामग्री के बारे में परवाह नहीं है (इसलिए स्विफ्ट स्रोत बस काम करेंगे ™)। जनरेटर जानबूझकर बाहरी बिल्ड सिस्टम लक्ष्यों को बनाता है जो स्कैन चलाते हैं, इसलिए निर्माण SConstruct फ़ाइल में निर्दिष्ट चीज़ों से विचलित नहीं होगा। मुझे नहीं लगता कि स्कॉन्स स्वयं बॉक्स के बाहर स्विफ्ट का समर्थन करता है, हालांकि आप पाइथन में सक्षम होने पर आसानी से इसके लिए एक निर्माता लिख ​​सकते हैं। होमब्री समर्थन के लिए, मुझे नहीं पता कि आप क्या चाहते हैं; जनरेटर को स्थापित करने की आपको बस एक फाइल कॉपी करना है - मैं नहीं देख सकता कि ब्रू कैसे मदद करता है। – alastair

+0

इस पर सिर के लिए धन्यवाद ~ मैं एक अज्ञेय कोडर हूं, इसलिए मैं पाइथन विकल्पों को देखूंगा। एक ब्रू पैकेज कोड "प्रबंधित" करेगा और अपडेट को पारदर्शी बनाता है, जबकि उपयोगकर्ता आधार के दायरे में वृद्धि हो सकती है। –

0

आप waf नामक पायथन आधारित निर्माण प्रणाली का उपयोग कर एक्सकोड प्रोजेक्ट जेनरेट कर सकते हैं। आप xcode6 विस्तार के साथ download and install waf की जरूरत है:

$ curl -o waf-1.9.7.tar.bz2 https://waf.io/waf-1.9.7.tar.bz2 
$ tar xjvf waf-1.9.7.tar.bz2 
$ cd waf-1.9.7 
$ ./waf-light --tools=xcode6 

यह एक waf निष्पादन जो अपनी परियोजना का निर्माण कर सकते पैदा करेगा। आपको wscript नामक फ़ाइल के अंदर अपनी एक्सकोड प्रोजेक्ट जेनरेट करने के तरीके को कॉन्फ़िगर करने की आवश्यकता है जो आपके प्रोजेक्ट फ़ोल्डर में रहना चाहिए। wscript फ़ाइल पायथन सिंटैक्स का उपयोग करती है। यहाँ कैसे आप अपने प्रोजेक्ट को कॉन्फ़िगर कर सकता है की an example है:

def configure(conf): 

    # Use environment variables to set default project configuration 
    # settings 
    conf.env.FRAMEWORK_VERSION = '1.0' 
    conf.env.ARCHS = 'x86_64' 

    # This must be called at the end of configure() 
    conf.load('xcode6') 

# This will build a XCode project with one target with type 'framework' 
def build(bld): 
    bld.load('xcode6') 
    bld.framework(
     includes='include', 

     # Specify source files. 
     # This will become the groups (folders) inside XCode. 
     # Pass a dictionary to group by name. Use a list to add everything in one 
     source_files={ 
      'MyLibSource': bld.path.ant_glob('src/MyLib/*.cpp|*.m|*.mm'), 
      'Include': bld.path.ant_glob(incl=['include/MyLib/*.h', 'include'], dir=True) 
     }, 

     # export_headers will put the files in the 
     # 'Header Build Phase' in Xcode - i.e tell XCode to ship them with your .framework 
     export_headers=bld.path.ant_glob(incl=['include/MyLib/*.h', 'include/MyLib/SupportLib'], dir=True), 
     target='MyLib', 
     install='~/Library/Frameworks' 
    ) 

सेटिंग्स आप अपनी परियोजना के लिए यह कॉन्फ़िगर करने के लिए उपयोग कर सकते हैं का एक समूह रहे हैं।

तो वास्तव में अपनी परियोजना फ़ोल्डर में XCode प्रोजेक्ट, cd उत्पन्न जहां wscript है और

$ ./waf configure xcode6 
+0

लेकिन जब मैं चलाता हूं ./waf build मुझे पायथन में एक त्रुटि मिलती है - विशेषताइरर: 'BuildContext' ऑब्जेक्ट में कोई विशेषता नहीं है 'फ्रेमवर्क' – Mark

+0

"बिल्ड" के बजाय "./waf xcode6" लिखने का प्रयास करें। और कॉन्फ़िगर को पहले भी चलाने के लिए remeber, यानी "./waf कॉन्फ़िगर करें"। @निशान। आशा करता हूँ की ये काम करेगा! – mrmclovin

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

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