2010-06-18 18 views

Respuesta

2

Una opción, pero no es muy portátil para otros desarrolladores en el proyecto - solo puede ejecutar pkg-config gtk+-2.0 --cflags en su Terminal y pegarlo en Build Settings -> Other C Flags. Sin embargo, me gustaría escuchar cómo los demás lidian con esto de una manera más portátil. Idealmente, sería bueno tener pkg-config ejecutándose en tiempo de compilación para hacer que la construcción sea más independiente del sistema.

+0

He intentado esto también, y no es ideal, pero es la mejor solución que he encontrado hasta ahora. Idealmente, debería haber un marco Gtk para Xcode. Hay uno aquí, pero la página también advierte que no es lo suficientemente estable para el uso del usuario final: https://sourceforge.net/apps/trac/gtk-osx/wiki/Build#Framework – ptomato

+0

Después de hacer esto, todavía tengo Gtk/gtk.h no existe ningún archivo o directorio en mi xcode. ¿Me estoy perdiendo algo aquí? –

0

Más portátil sería escribir un script que escriba la salida de pkg-config en un archivo .xcconfig y luego incluir eso en su proyecto. Solo asegúrate de no agregarlo a tu repositorio de origen.

0
  • Utilice un archivo make que use pkg-config y cualquier otra herramienta de shell para crear una lib.
  • Cree un archivo API pequeño, libre de dependencias para la lib que se compilará en XCode, e inclúyalo y la lib creada en la compilación XCode.

  • Opcional: encapsula la compilación de makefile en un paso de compilación "Ejecutar script" en XCode.

0
  1. Crear un objetivo global
  2. En las fases de construcción, agregar una secuencia de comandos Ejecutar

    #!/bin/bash 
    
    OTHER_CPLUSPLUSFLAGS="$(pkg-config gtk+-2.0 --cflags)" 
    echo -e "OTHER_CPLUSPLUSFLAGS = \$(inherited) ${OTHER_CPLUSPLUSFLAGS}" > MyApp.xcconfig 
    
  3. en información en su proyecto, establecer MyApp.xcconfig que el archivo de configuración de destino

  4. En Fases de compilación en el destino de su aplicación, agregue el destino agregado como una dependencia
  5. Excluir MyApp.xcconfig en su control de versiones

Un inconveniente es que hasta que construir el objetivo aggerate directa o indirectamente al menos una vez, el autocompletar ni funcione correctamente.

Cuestiones relacionadas