ネイティブ フレームワークのバインド
ネイティブ ライブラリがフレームワークとして配布される場合があります。 Objective Sharpie には、-framework
オプションを使用して適切に定義されたフレームワークをバインドするための便利な機能が用意されています。
たとえば、iOS 用 Adobe Creative SDK Framework のバインドは簡単です。
$ sharpie bind \
-framework ./AdobeCreativeSDKFoundation.framework \
-sdk iphoneos8.1
場合によっては、フレームワークによって Info.plist が指定され、フレームワークをコンパイルする必要がある SDK が示されます。 この情報が存在し、明示的な -sdk
オプションが渡されない場合、Objective Sharpie はその情報をフレームワークの Info.plist (DTSDKName
キー、または DTPlatformName
キーと DTPlatformVersion
キーの組み合わせのいずれか) から推測します。
この -framework
オプションでは、明示的なヘッダー ファイルを渡すことができません。 アンブレラ ヘッダー ファイルは、フレームワーク名に基づいて規則によって選ばれます。 アンブレラ ヘッダーが見つからない場合、Objective Sharpie はフレームワークのバインドを試みず、解析する適切なアンブレラ ヘッダー ファイルと clang のフレームワーク引数 (-F
フレームワーク検索パス オプションなど) を指定して、バインドを手動で実行する必要があります。
内部的には、-framework
の指定は単なるショートカットです。 次のバインド引数は、上記の -framework
短縮形と同じです。
特に重要なのは、clang に提供される -F .
フレームワーク検索パスです (コマンドの一部として必要なスペースとピリオドに注意してください)。
$ sharpie bind \
-sdk iphoneos8.1 \
./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
-scope AdobeCreativeSDKFoundation.framework/Headers \
-c -F .