Binding di framework nativi
In alcuni casi una libreria nativa viene distribuita come framework. Objective Sharpie offre una funzionalità utile per l'associazione di framework definiti correttamente tramite l'opzione -framework
.
Ad esempio, l'associazione di Adobe Creative SDK Framework per iOS è semplice:
$ sharpie bind \
-framework ./AdobeCreativeSDKFoundation.framework \
-sdk iphoneos8.1
In alcuni casi, un framework specifica un info.plist che indica in quale SDK deve essere compilato il framework. Se queste informazioni esistono e non viene passata alcuna opzione esplicita-sdk
, Objective Sharpie lo dedurrà dal file Info.plist del framework (la DTSDKName
chiave o una combinazione di DTPlatformName
chiavi e DTPlatformVersion
).
L'opzione -framework
non consente il passaggio di file di intestazione espliciti. Il file di intestazione umbrella viene scelto per convenzione in base al nome del framework. Se non è possibile trovare un'intestazione generica, Objective Sharpie non tenterà di associare il framework ed è necessario eseguire manualmente l'associazione fornendo i file di intestazione generici corretti da analizzare, insieme a qualsiasi argomento del framework per clang (ad esempio l'opzione -F
percorso di ricerca del framework).
Sotto le quinte, specificando -framework
è solo un collegamento. Gli argomenti di binding seguenti sono identici alla -framework
sintassi abbreviata precedente.
Di particolare importanza è il -F .
percorso di ricerca del framework fornito a clang (si noti lo spazio e il punto necessari come parte del comando).
$ sharpie bind \
-sdk iphoneos8.1 \
./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
-scope AdobeCreativeSDKFoundation.framework/Headers \
-c -F .