2009-07-11 20 views
6

Pregunta simple. ¿Hay alguna herramienta para generar proyectos de Xcode desde la línea de comandos? Usamos SCons para construir nuestra aplicación multiplataforma, pero eso no admite la generación de proyectos intrínsecos de Xcode. Nos gustaría evitar crear el proyecto manualmente, ya que esto implicaría mantener múltiples listas de archivos.¿Es posible generar automáticamente proyectos de Xcode?

Respuesta

1

Creo que su pregunta debería ser "¿Hay alguna forma de generar un proyecto de XCode desde SCons one?". Supongo que, al preguntar y al leer a los demás, la respuesta es 'no'.

SCons people debería saberlo mejor. Creo que estarán felices si contribuye con un generador de proyectos SCons Xcode.

Mientras tanto, puede optar por cambiar a CMake o crear su proyecto XCode a mano que, dada una buena organización de árbol fuente, puede ser la mejor solución pragmática.

4

Mire CMake. Puede generar proyectos XCode desde él automáticamente. Encontré una pregunta anterior de StackOverflow sobre su uso here. Para que genere un proyecto de XCode, utilícelo como tal:

CMake -G xcode 
+0

Sí, estamos tratando de evitar la conversión del proyecto a CMake ... I Supongo que podríamos generar un archivo CMakeLists.txt desde SCons, o tal vez no;) –

-1

Puede usar Automator para generarlos para usted.

Revisé y no hay acción precompilada. Por lo tanto, tendría que registrar sus acciones con Automator para hacerlo.

+0

Recién revisado Automator, no estoy seguro de que sea lo que estoy buscando ya que usa la GUI para realizar operaciones. Estaba pensando más como un enfoque basado en comandos ...Gracias de cualquier manera. –

1

qmake en la herramienta de Qt genera proyectos de Xcode. Al menos puedes descargarlo y echar un vistazo a su fuente here (LGPL).

1

Para el beneficio de cualquiera que llegue a esta pregunta, de hecho acabo de empujar an Xcode project file generator for SCons hasta Bitbucket.

+0

+1 - Interesante. ¿Hay alguna posibilidad de que esto sea compatible con Homebrew? También sería bueno si pudiera comenzar opcionalmente con archivos .swift. –

+0

@TommieC. El generador no se preocupa en absoluto del contenido del archivo fuente (por lo que las fuentes Swift solo funcionarán ™). El generador construye deliberadamente objetivos de sistemas de compilación externos que ejecutan SCons, por lo que la compilación no se desviará de lo especificado en el archivo SConstruct. No creo que SCons por sí solo sea compatible con Swift, aunque podrías escribir un constructor fácilmente si eres competente en Python. En cuanto al soporte de Homebrew, no sé lo que querrías; todo lo que necesita para instalar el generador es copiar un archivo; no puedo ver cómo ayuda el brew. – alastair

+0

Gracias por el encabezado de este ~ Soy un codificador agnóstico, así que miraré las opciones de Python. Un paquete de preparación haría que el código sea "administrado" y las actualizaciones sean transparentes, mientras que probablemente aumente el alcance de la base de usuarios. –

0

Puede generar un proyecto XCode utilizando el sistema de compilación basado en python llamado waf. Es necesario que download and install waf con la extensión 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 

que creará un ejecutable waf que puede generar el proyecto. Debe configurar cómo generar su proyecto XCode dentro de un archivo llamado wscript que debe residir en su carpeta de proyecto. El archivo wscript utiliza la sintaxis de Python. Aquí es an example de cómo se puede configurar su proyecto:

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

Hay un montón de opciones que puede utilizar para configurarlo para su proyecto.

después para generar realmente el proyecto XCode, cd en la carpeta de proyecto donde el wscript es y ejecutar el ejecutable waf como

$ ./waf configure xcode6 
+0

Pero cuando ejecuto la compilación ./waf obtengo un error en el Python - AttributeError: el objeto 'BuildContext' no tiene ningún atributo 'framework' – Mark

+0

intente escribir "./waf xcode6" en lugar de "compilar". Y recuerde ejecutar también primero la configuración, es decir, "./waf configure". @Marca. ¡Espero eso ayude! – mrmclovin

Cuestiones relacionadas