Привязка собственных платформBinding Native Frameworks

Иногда собственной библиотеки распространяется в виде framework.Sometimes a native library is distributed as a framework. Цели Sharpie предоставляет удобное средство для привязки правильно определенные платформы через -framework параметр.Objective Sharpie provides a convenience feature for binding properly defined frameworks through the -framework option.

Например, привязка Adobe Creative SDK Framework для операций ввода-вывода выполняется просто:For example, binding the Adobe Creative SDK Framework for iOS is straightforward:

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

В некоторых случаях будет указать платформу Info.plist которого указывает, к какой пакет SDK платформы должны быть скомпилированы.In some cases, a framework will specify an Info.plist which indicates against which SDK the framework should be compiled. Если этой информации и без явного указания -sdk передается параметр, цель Sharpie определит его из платформы Info.plist (либо DTSDKName ключ или сочетание DTPlatformName и DTPlatformVersionключи).If this information exists and no explicit -sdk option is passed, Objective Sharpie will infer it from the framework's Info.plist (either the DTSDKName key or a combination of the DTPlatformName and DTPlatformVersion keys).

-framework Параметр не поддерживает явные заголовка файлов для передачи.The -framework option does not allow explicit header files to be passed. Файл заголовка обобщающий выбирается по соглашению, на основе имени платформы.The umbrella header file is chosen by convention based on the framework name. Если не удается найти заголовок обобщающий, Sharpie цели не будет пытаться привязать платформы и привязки необходимо выполнить вручную, указав правильный обобщающий файлы заголовка для синтаксического анализа, и любые другие аргументы framework для clang (например -Fпараметр пути поиска framework).If an umbrella header cannot be found, Objective Sharpie will not attempt to bind the framework and you must manually perform the binding by providing the correct umbrella header file(s) to parse, along with any framework arguments for clang (such as the -F framework search path option).

За кулисами указав -framework является просто ярлыком.Under the hood, specifying -framework is just a shortcut. Следующие аргументы привязки идентичны -framework сокращением выше.The following bind arguments are identical to the -framework shorthand above. Особенное значение имеет -F . путь поиска платформы для clang (Обратите внимание, места и период, которые являются неотъемлемой частью команды).Of special importance is the -F . framework search path provided to clang (note the space and period, which are required as part of the command).

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