apple_yaygın

Starlark'ın, Apple kural uygulamalarının iç kısımlarına erişmesi için işlevler.

Üyeler

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Apple ana sistemde derleme araçlarının çalıştırılması gereken işlemler için ayarlanması gereken ortam değişkenlerinin dizisini döndürür (ör. kullanılacak Xcode sürümü). Anahtarlar değişken adları, değerler ise bu değişkenlere karşılık gelen değerlerdir.

Parametreler

Parametre Açıklama
xcode_config zorunlu
Xcode yapılandırması hakkında bilgi içeren bir sağlayıcı.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Apple araç zincirindeki öğeleri çözmek için kullanılan yardımcı programlar.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

AppleDebugOutputs sağlayıcısının kurucusu/anahtarı.

Bir hedef AppleDebugOutputs sağlayıcısını yayıyorsa bunu, sağlayıcıyı almak için kullanacağınız anahtar olarak kullanın. Örnek:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleDebugOutputs]

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

AppleDynamicFramework sağlayıcısının kurucusu/anahtarı.

Bir hedef AppleDynamicFramework sağlayıcısını yayıyorsa bunu, sağlayıcıyı almak için kullanacağınız anahtar olarak kullanın. Örnek:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleDynamicFramework]

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

AppleExecutableBinary sağlayıcısının kurucusu/anahtarı.

Bir hedef AppleExecutableBinary sağlayıcısını yayıyorsa bunu, sağlayıcıyı almak için kullanacağınız anahtar olarak kullanın. Örnek:

dep = ctx.attr.deps[0]
p = dep[apple_common.AppleExecutableBinary]

dotted_version

DottedVersion apple_common.dotted_version(version)

Yeni bir DottedVersion örneği oluşturur.

Parametreler

Parametre Açıklama
version required
DottedVersion değerinin dize gösterimi.

struct apple_common.link_multi_arch_binary(ctx, avoid_deps=None, extra_linkopts=[], extra_link_inputs=[], stamp=-1)

Apple platformlarını hedefleyen (muhtemelen çok mimarili) bir ikili dosyayı bağlar. Bu yöntem, rules_apple alanındaki Starlark apple_binary kuralının mantığının büyük bir kısmını içerir ve bağlantı mantığının rules_apple'daki Starlark'a taşınmasına yardımcı olmak için kullanılır.

Bu API çok deneysel olup herhangi bir zamanda değiştirilebilir. Bu işlevin şu anda kararlı olduğunu varsaymayın.

Parametreler

Parametre Açıklama
required
Starlark kural bağlamı.
sequence of Targets; or None; default = None
İkilinin bağımlılık grafiğinde bulunan ancak kütüphanelerinin ikiliye bağlanmaması gereken Target öğelerinin listesi. Bu durum, paket yükleyici veya bu ikili tarafından yüklenecek dinamik kitaplıklar/çerçeveler gibi başka bir resimde çalışma zamanında bulunacak bağımlılıklar için geçerlidir.
sequence of strings; default = []
Bağlantılayıcı işlemine iletilecek ek bağlantı seçenekleri.
sequence of Files; default = []
Bağlantılayıcı işlemine iletilecek ek dosyalar.
varsayılan = -1
Bağlanan ikili dosyaya derleme bilgilerinin dahil edilip edilmeyeceği. 1 ise derleme bilgileri her zaman dahil edilir. 0 ise derleme bilgileri her zaman hariç tutulur. Değer -1 ise (varsayılan) davranış, --[no]stamp işaretine göre belirlenir. Test kuralları için yürütülebilir çıkış oluşturulurken bu değer 0 olarak ayarlanmalıdır.

struct apple_common.link_multi_arch_static_library(ctx)

Apple platformlarını hedefleyen (potansiyel olarak çok mimarili) statik bir kitaplığı bağlar. Bu yöntem, rules_apple alanındaki Starlark apple_static_library kural mantığının bir bölümünü içerir ve bağlantı mantığının rules_apple'daki Starlark'a taşınmasına yardımcı olmak için mevcuttur.

Bu API çok deneysel olup herhangi bir zamanda değiştirilebilir. Bu işlevin şu anda kararlı olduğunu varsaymayın.

Parametreler

Parametre Açıklama
required
Starlark kural bağlamı.

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

Bir veya daha fazla Apple platformunda bağımlılık oluşturmak için kural özellikleriyle ilgili yapılandırma geçişi.

Bu geçişin kullanılması için "platform_type" ve "minimum_os_version" dize özelliklerinin tanımlanması ve kuralda zorunlu olması gerekir.

platform_type özelliğinin değeri, bu yapılandırma geçişi boyunca bağımlılıkların oluşturulacağı hedef mimarileri belirler.

Seçenekler şunlardır:

  • ios: --ios_multi_cpus kaynağından toplanan mimariler.
  • macos: --macos_cpus kaynağından toplanan mimariler.
  • tvos: --tvos_cpus kaynağından toplanan mimariler.
  • watchos: --watchos_cpus kaynağından toplanan mimariler.

minimum_os_version, "7.3" gibi noktalı bir sürüm dizesi olmalıdır ve yapılandırmaya minimum işletim sistemini platform türüne göre benzer şekilde ayarlamak için kullanılır. Örneğin, platform_type "ios" ve minimum_os_version "8.0" değerlerini belirtmek, bağımlılıkların minimum iOS sürümü "8.0" ile derlenmesini sağlar.

new_dynamic_framework_provider

AppleDynamicFramework apple_common.new_dynamic_framework_provider(binary=None, cc_info=None, objc, framework_dirs=None, framework_files=None)

Yeni bir AppleDynamicFramework sağlayıcı örneği oluşturur.

Parametreler

Parametre Açıklama
binary File; or None; default = None
Dinamik çerçevenin dylib ikili yapısını belirtir.
cc_info varsayılan = None
İkili dosyaya bağlı geçişli bağımlılıklarla ilgili bilgileri içeren bir CcInfo.
objc required
İkili dosyaya bağlı geçişli bağımlılıklarla ilgili bilgileri içeren bir ObjcProvider.
framework_dirs depset of strings; or None; default = None
Dinamik çerçeveye bağlantı oluşturmak için bağlantı girişi olarak kullanılan çerçeve yolu adları.
framework_files depset of Files; or None; default = None
Dinamik çerçeveye bağlanmak için giriş olarak dahil edilmesi gereken yapıların tam kümesi

new_executable_binary_provider

AppleExecutableBinary apple_common.new_executable_binary_provider(binary=None, cc_info=None, objc)

Yeni bir AppleExecutableBinaryInfo sağlayıcı örneği oluşturur.

Parametreler

Parametre Açıklama
binary File; or None; default = None
Yürütülebilir dosyanın ikili program yapısını belirtir.
cc_info varsayılan = None
İkili dosyaya bağlı geçişli bağımlılıklarla ilgili bilgileri içeren bir CcInfo.
objc required
İkili dosyaya bağlı geçişli bağımlılıklarla ilgili bilgileri içeren bir ObjcProvider.

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

Yeni bir ObjcProvider örneği oluşturur.

Parametreler

Parametre Açıklama
kwargs default = {}
Bağımsız değişkenler sözlüğü.

Objc

Provider apple_common.Objc

Objc sağlayıcısının kurucusu/anahtarı.

Bir hedef Objc sağlayıcısını yayıyorsa bunu, sağlayıcıyı almak için kullanacağınız anahtar olarak kullanın. Örnek:

dep = ctx.attr.deps[0]
p = dep[apple_common.Objc]

platform

struct apple_common.platform

Apple platformlarına karşılık gelen aşağıdaki alanları içeren bir enum benzeri yapı:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

Bu değerler, XcodeVersionConfig.sdk_version_for_platform gibi bir platform bekleyen yöntemlere iletilebilir.

platform_type

struct apple_common.platform_type

Apple platform türlerine karşılık gelen aşağıdaki alanları içeren enum benzeri bir yapı:
  • ios
  • macos
  • tvos
  • watchos

Bu değerler, "apple" yapılandırma parçasının multi_arch_platform yöntemi gibi bir platform türü bekleyebilecek yöntemlere iletilebilir.

Örnek:

ctx.fragments.apple.multi_arch_platform(apple_common.platform_type.ios)

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

Belirtilen Apple platform türündeki hedefleri oluşturan işlemler için ayarlanması gereken ortam değişkenlerinin bir dict döndürür. Örneğin, bu sözlükte platform adını ve derleme işleminin yapılacağı SDK sürümünü belirten değişkenler bulunur. Anahtarlar değişken adları, değerler ise bu değişkenlere karşılık gelen değerlerdir.

Parametreler

Parametre Açıklama
xcode_config zorunlu
Xcode yapılandırması hakkında bilgi içeren bir sağlayıcı.
platform required
Apple platformu.

XcodeProperties

Provider apple_common.XcodeProperties

XcodeVersionProperties sağlayıcısının kurucusu/anahtarı.

Bir hedef XcodeVersionProperties sağlayıcısını yayıyorsa bunu, sağlayıcıyı almak için kullanacağınız anahtar olarak kullanın. Örnek:

dep = ctx.attr.deps[0]
p = dep[apple_common.XcodeVersionProperties]

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

XcodeVersionConfig sağlayıcısının kurucusu/anahtarı.