2009-07-11 22 views
6

Domanda semplice. Ci sono strumenti per generare progetti Xcode dalla riga di comando? Usiamo SCons per costruire la nostra applicazione multipiattaforma, ma questo non supporta la generazione di progetti Xcode intrinseci. Vorremmo evitare di creare manualmente il progetto, poiché ciò comporterebbe il mantenimento di più elenchi di file.È possibile generare automaticamente progetti Xcode?

risposta

1

Penso che la tua domanda dovrebbe essere "C'è un modo per generare un progetto XCode da uno SCons?". Suppongo, chiedendo e leggendo gli altri, che la risposta sia "no".

SCons people dovrebbe saperlo meglio. Penso che saranno felici se contribuisci con un generatore di progetto Xcode SCons.

Nel frattempo è possibile scegliere di passare a CMake o creare il proprio progetto XCode a mano che, data una buona organizzazione dell'albero delle origini, potrebbe essere la soluzione migliore.

4

Vedere CMake. È possibile generare automaticamente progetti XCode da esso. Ho trovato una precedente domanda StackOverflow sul suo utilizzo here. Per farlo generare un progetto XCode, lo si utilizza come tale:

CMake -G xcode 
+0

Sì, stiamo cercando di evitare la conversione del progetto per CMake ... I Immagino che potremmo generare un file CMakeLists.txt da SCons, o forse no;) –

-1

È possibile utilizzare Automator per generarli per voi.

Ho controllato e non esiste un'azione predefinita. Pertanto è necessario registrare le proprie azioni con Automator per fare ciò.

+0

Appena controllato Automator, non sono sicuro di quello che sto cercando dato che usa la GUI per eseguire operazioni. Stavo pensando più a un approccio basato sui comandi ...Grazie comunque. –

1

qmake nella toolchain Qt genera progetti Xcode. Puoi almeno scaricarlo e dare un'occhiata alla sua fonte here (LGPL).

1

Per il beneficio di chiunque si rivolga a questa domanda, in realtà ho appena spinto an Xcode project file generator for SCons fino a Bitbucket.

+0

+1 - Interessante. Qualche possibilità potrebbe essere resa compatibile con Homebrew? Sarebbe anche bello se potesse facoltativamente iniziare con i file .swift. –

+0

@TommieC. Il generatore non si preoccupa affatto del contenuto del file sorgente (quindi i sorgenti Swift funzioneranno semplicemente con Work ™). Il generatore costruisce deliberatamente obiettivi esterni del sistema di build che eseguono SCons, quindi la build non si discosterà da quanto specificato nel file di SConstruct. Non penso che SCons stessa supporti subito Swift, sebbene tu possa scrivere un builder per esso abbastanza facilmente se sei competente in Python. Per quanto riguarda il supporto Homebrew, non so cosa vorresti; tutto quello di cui hai bisogno per installare il generatore è copiare un file - non riesco a vedere come l'infuso aiuta. – alastair

+0

Grazie per l'avviso su questo ~ sono un codificatore agnostico, quindi guarderò le opzioni di Python. Un pacchetto brew renderà il codice "gestito" e renderà gli aggiornamenti trasparenti, aumentando probabilmente la portata della base di utenti. –

0

È possibile generare un progetto XCode utilizzando il sistema di creazione basato su python denominato waf. È necessario download and install waf con l'estensione xcode6:

$ 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 

che creerà un eseguibile waf che può costruire il vostro progetto. Devi configurare come generare il tuo progetto XCode all'interno di un file chiamato wscript che dovrebbe risiedere nella cartella del tuo progetto. Il file wscript utilizza la sintassi Python. Ecco an example di come è possibile configurare il vostro progetto:

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

Ci sono un sacco di impostazioni è possibile utilizzare per configurarlo per il vostro progetto.

Poi per generare effettivamente il progetto XCode, cd nella cartella progetto in cui il wscript è ed eseguire il file eseguibile come waf

$ ./waf configure xcode6 
+0

Ma quando eseguo ./waf build ottengo un errore nel python - AttributeError: l'oggetto 'BuildContext' non ha attributo 'framework' – Mark

+0

prova a scrivere "./waf xcode6" invece di "build". E ricorda di eseguire anche la configurazione, ad esempio "./waf configure". @Marchio. Spero che sia d'aiuto! – mrmclovin

Problemi correlati