Liaison de frameworks natifs
Parfois, une bibliothèque native est distribuée en tant qu’infrastructure. Objective Sharpie fournit une fonctionnalité pratique pour lier des frameworks correctement définis via l’option -framework
.
Par exemple, la liaison d’Adobe Creative SDK Framework pour iOS est simple :
$ sharpie bind \
-framework ./AdobeCreativeSDKFoundation.framework \
-sdk iphoneos8.1
Dans certains cas, une infrastructure spécifie un fichier Info.plist qui indique par rapport au KIT de développement logiciel (SDK) que l’infrastructure doit être compilée. Si ces informations existent et qu’aucune option explicite -sdk
n’est passée, Objective Sharpie les déduit à partir de l’info.plist du framework (la DTSDKName
clé ou une combinaison des DTPlatformName
clés et DTPlatformVersion
).
L’option -framework
n’autorise pas le passage de fichiers d’en-tête explicites. Le fichier d’en-tête parapluie est choisi par convention en fonction du nom de l’infrastructure. Si un en-tête de parapluie est introuvable, Objective Sharpie ne tente pas de lier l’infrastructure et vous devez effectuer manuellement la liaison en fournissant le ou les fichiers d’en-têtes parapluie appropriés à analyser, ainsi que les arguments de framework pour clang (par exemple, l’option de chemin de recherche du -F
framework).
Sous le capot, spécifier -framework
n’est qu’un raccourci. Les arguments de liaison suivants sont identiques au -framework
raccourci ci-dessus.
Le chemin de recherche du -F .
framework fourni à clang est particulièrement important (notez l’espace et la période, qui sont requis dans le cadre de la commande).
$ sharpie bind \
-sdk iphoneos8.1 \
./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
-scope AdobeCreativeSDKFoundation.framework/Headers \
-c -F .