2009-07-11 13 views
6

Einfache Frage. Gibt es Tools zum Generieren von Xcode-Projekten über die Befehlszeile? Wir verwenden SCons, um unsere plattformübergreifende Anwendung zu erstellen, aber das unterstützt keine intrinsische Xcode-Projektgenerierung. Wir möchten vermeiden, das Projekt manuell zu erstellen, da dies die Verwaltung mehrerer Dateilisten beinhalten würde.Ist es möglich, Xcode-Projekte automatisch zu generieren?

Antwort

1

Ich denke, dass Ihre Frage sein sollte "Gibt es eine Möglichkeit, ein XCode-Projekt von einem SCONs zu erzeugen?". Ich nehme an, durch Ihre Frage und durch das Lesen der anderen, dass die Antwort "Nein" ist.

SCons people sollte es besser wissen. Ich denke, sie werden sich freuen, wenn Sie einen SCons Xcode Projektgenerator beisteuern.

In der Zwischenzeit können Sie sich entscheiden, zu CMake zu wechseln oder Ihr XCode-Projekt von Hand zu erstellen, was angesichts einer guten Organisation der Quellbäume die beste pragmatische Lösung sein könnte.

4

Betrachten Sie CMake. Sie können daraus automatisch XCode-Projekte generieren. Ich habe eine frühere StackOverflow-Frage zu seiner Verwendung gefunden here. Um es zu einem XCode-Projekt zu generieren, verwenden Sie es wie folgt:

CMake -G xcode 
+0

Ja, wir konvertieren, das Projekt zu CMake zu vermeiden, sind versucht, ... I Ich denke, wir könnten eine CMakeLists.txt-Datei von SCons erzeugen, oder vielleicht auch nicht;) –

-1

Sie könnten Automator verwenden, um sie für Sie zu generieren.

Ich überprüfte und es gibt keine vorgefertigte Aktion. Dafür müssten Sie Ihre Aktionen mit Automator aufzeichnen.

+0

Ich habe Automator einfach ausgecheckt, ich bin nicht sicher, was ich suche, da es die GUI benutzt, um Operationen auszuführen. Ich dachte eher wie ein Kommandobasierter Ansatz ...Danke trotzdem. –

1

qmake in der Qt-Toolchain generiert Xcode-Projekte. Sie können es zumindest herunterladen und sich die Quelle here (LGPL) anschauen.

1

Zum Vorteil von jedem, der auf diese Frage landet, habe ich gerade an Xcode project file generator for SCons bis Bitbucket geschoben.

+0

+1 - Interessant. Könnte diese Möglichkeit mit Homebrew kompatibel gemacht werden? Wäre auch schön wenn es optional mit .swift Dateien starten könnte. –

+0

@TommieC. Der Generator kümmert sich überhaupt nicht um den Inhalt der Quelldatei (Swift-Quellen funktionieren also nur mit Just Work ™). Der Generator erstellt absichtlich externe Buildsystemziele, auf denen SCons ausgeführt werden, sodass der Build nicht von den Angaben in der SConstruct-Datei abweicht. Ich glaube nicht, dass SCONs selbst Swift unterstützt, obwohl man einen Builder dafür leicht genug schreiben könnte, wenn man in Python kompetent ist. Was die Homebrew-Unterstützung betrifft, weiß ich nicht, was du willst; Alles, was Sie zum Installieren des Generators brauchen, ist eine Datei kopieren - ich kann nicht sehen, wie Brauen hilft. – alastair

+0

Danke für die heads-up auf diesem ~ Ich bin ein agnostic Coder, also werde ich auf die Python-Optionen schauen. Ein Brühpaket würde den Code "verwalten" und Aktualisierungen transparent machen, während der Umfang der Benutzerbasis wahrscheinlich vergrößert würde. –

0

Sie können ein XCode-Projekt mit dem Python-basierten Build-System waf generieren. Sie müssen download and install waf mit der xcode6 Erweiterung:

$ 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 

dass ein waf ausführbaren schaffen, die Ihr Projekt aufbauen kann. Sie müssen konfigurieren, wie Sie Ihr XCode-Projekt in einer Datei namens wscript generieren, die sich in Ihrem Projektordner befinden sollte. Die Datei wscript verwendet Python-Syntax. Hier ist an example, wie Sie Ihr Projekt konfigurieren können:

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' 
    ) 

Es gibt eine Reihe von Einstellungen, können Sie es für Ihr Projekt konfigurieren verwenden.

dann das XCode Projekt tatsächlich zu generieren, cd in Ihrem Projektordner, wo die wscript ist und führen Sie Ihre waf ausführbare wie

$ ./waf configure xcode6 
+0

Aber wenn ich laufen ./waf Build bekomme ich einen Fehler in der Python - AttributeError: 'BuildContext' Objekt hat kein Attribut 'Framework' – Mark

+0

versuchen Schreiben "./Waf xcode6" anstelle von "build". Und erinnern Sie sich, die Konfiguration auch zuerst auszuführen, d. H. "./waf configure". @Kennzeichen. Ich hoffe es hilft! – mrmclovin

Verwandte Themen