Estruturas de associação nativa
Às vezes, uma biblioteca nativa é distribuída como uma estrutura. Objective Sharpie fornece um recurso de conveniência para associar estruturas definidas corretamente por meio da opção -framework
.
Por exemplo, associar a Adobe Creative SDK Framework para iOS é simples:
$ sharpie bind \
-framework ./AdobeCreativeSDKFoundation.framework \
-sdk iphoneos8.1
Em alguns casos, uma estrutura especificará um Info.plist que indica em qual SDK a estrutura deve ser compilada. Se essas informações existirem e nenhuma opção explícita -sdk
for aprovada, Objective Sharpie a inferirá do Info.plist da estrutura (a DTSDKName
chave ou uma combinação das DTPlatformName
teclas e DTPlatformVersion
).
A -framework
opção não permite que arquivos de cabeçalho explícitos sejam passados. O arquivo de cabeçalho umbrella é escolhido por convenção com base no nome da estrutura. Se um cabeçalho de guarda-chuva não puder ser encontrado, Objective Sharpie não tentará associar a estrutura e você deverá executar manualmente a associação fornecendo os arquivos de cabeçalho de guarda-chuva corretos para analisar, juntamente com quaisquer argumentos de estrutura para clang (como a opção de caminho de pesquisa de -F
estrutura).
Nos bastidores, especificar -framework
é apenas um atalho. Os argumentos de associação a seguir são idênticos à abreviação -framework
acima.
De importância especial é o caminho de pesquisa da -F .
estrutura fornecido para clang (observe o espaço e o ponto, que são necessários como parte do comando).
$ sharpie bind \
-sdk iphoneos8.1 \
./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
-scope AdobeCreativeSDKFoundation.framework/Headers \
-c -F .