Enlace de plataformas nativas

A veces, una biblioteca nativa se distribuye como un marco de trabajo. Objective Sharpie proporciona una característica útil para enlazar marcos definidos correctamente mediante la opción -framework.

Por ejemplo, el enlace de Adobe Creative SDK Framework para iOS es sencillo:

$ sharpie bind \
    -framework ./AdobeCreativeSDKFoundation.framework \
    -sdk iphoneos8.1

En algunos casos, un marco especificará un archivo Info.plist que indica con qué SDK se debe compilar el marco. Si esta información existe y no se pasa ninguna opción -sdk explícita, Objective Sharpie la deducirá del archivo Info.plist del marco (ya sea la clave DTSDKName o una combinación de las claves DTPlatformName y DTPlatformVersion).

La opción -framework no permite pasar archivos de encabezado explícitos. El archivo de encabezado paraguas se elige por convención en función del nombre del marco. Si no se encuentra un encabezado paraguas, Objective Sharpie no intentará enlazar el marco y debe realizar manualmente el enlace proporcionando los archivos de encabezado de paraguas correctos para analizar, junto con los argumentos de marco para clang (como la opción de ruta de búsqueda del marco -F).

En segundo plano, la especificación de -framework es simplemente un método abreviado. Los argumentos de enlace siguientes son idénticos a la abreviatura -framework anterior. La ruta de búsqueda del marco -F . proporcionada a clang es especialmente importante (observe el espacio y el punto, que son obligatorios como parte del comando).

$ sharpie bind \
    -sdk iphoneos8.1 \
    ./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
    -scope AdobeCreativeSDKFoundation.framework/Headers \
    -c -F .