apel_umum

Fungsi untuk Starlark guna mengakses bagian internal implementasi aturan Apple.

Pelanggan

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Menampilkan dict variabel lingkungan yang harus ditetapkan untuk tindakan yang perlu menjalankan alat build pada sistem host Apple, seperti versi Xcode yang harus digunakan. Kunci adalah nama variabel dan nilainya adalah nilai yang sesuai.

Parameter

Parameter Deskripsi
xcode_config wajib
Penyedia yang berisi informasi tentang konfigurasi xcode.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Utilitas untuk me-resolve item dari toolchain apple.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

Konstruktor/kunci untuk penyedia AppleDebugOutputs.

Jika target menyebarkan penyedia AppleDebugOutputs, gunakan penyedia ini sebagai kunci yang digunakan untuk mengambilnya. Contoh:

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

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

Konstruktor/kunci untuk penyedia AppleDynamicFramework.

Jika target menyebarkan penyedia AppleDynamicFramework, gunakan penyedia ini sebagai kunci yang digunakan untuk mengambilnya. Contoh:

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

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

Konstruktor/kunci untuk penyedia AppleExecutableBinary.

Jika target menyebarkan penyedia AppleExecutableBinary, gunakan penyedia ini sebagai kunci yang digunakan untuk mengambilnya. Contoh:

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

dotted_version

DottedVersion apple_common.dotted_version(version)

Membuat instance DottedVersion baru.

Parameter

Parameter Deskripsi
version diperlukan
Representasi string dari DottedVersion.

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

Menautkan biner (berpotensi multi-arsitektur) yang menargetkan platform Apple. Metode ini terdiri dari sebagian besar logika aturan apple_binary Starlark dalam domain rules_apple dan ada untuk membantu migrasi logika penautannya ke Starlark di rules_apple.

API ini sangat eksperimental dan dapat berubah kapan saja. Jangan bergantung pada stabilitas fungsi ini saat ini.

Parameter

Parameter Deskripsi
diperlukan
Konteks aturan Starlark.
sequence of Targets; or None; default = None
Daftar Target yang ada di grafik dependensi biner, tetapi library-nya tidak boleh ditautkan ke biner. Hal ini berlaku untuk dependensi yang akan ditemukan saat runtime di image lain, seperti loader paket atau library/framework dinamis yang akan dimuat oleh biner ini.
sequence of strings; default = []
Opsi link tambahan untuk diteruskan ke tindakan penaut.
sequence of Files; default = []
File tambahan untuk diteruskan ke tindakan penaut.
default = -1
Apakah akan menyertakan informasi build dalam biner tertaut. Jika 1, informasi build selalu disertakan. Jika 0, informasi build selalu dikecualikan. Jika -1 (default), maka perilaku ditentukan oleh tanda stempel --[no]. Nilai ini harus disetel ke 0 saat menghasilkan output yang dapat dieksekusi untuk aturan pengujian.

struct apple_common.link_multi_arch_static_library(ctx)

Menautkan library statis (yang kemungkinan multi-arsitektur) yang menargetkan platform Apple. Metode ini terdiri dari bagian dari logika aturan apple_static_library Starlark, dalam domain rules_apple dan ada untuk membantu migrasi logika penautannya ke Starlark di rules_apple.

API ini sangat eksperimental dan dapat berubah kapan saja. Jangan bergantung pada stabilitas fungsi ini saat ini.

Parameter

Parameter Deskripsi
diperlukan
Konteks aturan Starlark.

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

Transisi konfigurasi atribut aturan guna membangun dependensi di satu atau beberapa platform Apple.

Penggunaan transisi ini mengharuskan atribut string 'platform_type' dan 'minimum_os_version' ditentukan dan wajib pada aturan.

Nilai atribut platform_type akan menentukan arsitektur target yang dependensinya sepanjang transisi konfigurasi ini akan dibangun.

Opsi yang tersedia:

  • ios: arsitektur yang dikumpulkan dari --ios_multi_cpus.
  • macos: arsitektur yang dikumpulkan dari --macos_cpus.
  • tvos: arsitektur yang dikumpulkan dari --tvos_cpus.
  • watchos: arsitektur yang dikumpulkan dari --watchos_cpus.

minimum_os_version harus berupa string versi bertitik seperti '7.3', dan digunakan untuk menetapkan sistem operasi minimum pada konfigurasi yang serupa berdasarkan jenis platform. Misalnya, menentukan platform_type 'ios' dan minimum_os_version '8.0' akan memastikan bahwa dependensi dibuat dengan iOS versi minimum '8.0'.

new_dynamic_framework_provider

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

Membuat instance penyedia AppleDynamicFramework baru.

Parameter

Parameter Deskripsi
binary File; or None; default = None
Artefak biner dylib dari framework dinamis.
cc_info default = None
CcInfo yang berisi informasi tentang dependensi transitif yang ditautkan ke biner.
objc required
ObjcProvider yang berisi informasi tentang dependensi transitif yang ditautkan ke biner.
framework_dirs depset of strings; or None; default = None
Nama jalur framework yang digunakan sebagai input link untuk menautkan ke framework dinamis.
framework_files depset of Files; or None; default = Tidak ada
Kumpulan lengkap artefak yang harus disertakan sebagai input untuk ditautkan ke framework dinamis

new_executable_binary_provider

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

Membuat instance penyedia AppleExecutableBinaryInfo baru.

Parameter

Parameter Deskripsi
binary File; or None; default = None
Artefak biner dari file yang dapat dieksekusi.
cc_info default = None
CcInfo yang berisi informasi tentang dependensi transitif yang ditautkan ke biner.
objc required
ObjcProvider yang berisi informasi tentang dependensi transitif yang ditautkan ke biner.

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

Membuat instance ObjcProvider baru.

Parameter

Parameter Deskripsi
kwargs default = {}
Kamus argumen.

Obj

Provider apple_common.Objc

Konstruktor/kunci untuk penyedia Objc.

Jika target menyebarkan penyedia Objc, gunakan penyedia ini sebagai kunci yang digunakan untuk mengambilnya. Contoh:

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

platform

struct apple_common.platform

Strut mirip enum yang berisi kolom berikut yang sesuai dengan platform Apple:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

Nilai ini dapat diteruskan ke metode yang mengharapkan platform, seperti XcodeVersionConfig.sdk_version_for_platform.

platform_type

struct apple_common.platform_type

Strut mirip enum yang berisi kolom berikut yang sesuai dengan jenis platform Apple:
  • ios
  • macos
  • tvos
  • watchos

Nilai ini dapat diteruskan ke metode yang meminta jenis platform, seperti metode multi_arch_platform fragmen konfigurasi 'apple'.

Contoh:

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

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

Menampilkan dict variabel lingkungan yang harus ditetapkan untuk tindakan yang membuat target dari jenis platform Apple tertentu. Misalnya, kamus ini berisi variabel yang menunjukkan nama platform dan versi SDK yang akan digunakan untuk membangun. Kunci adalah nama variabel dan nilainya adalah nilai yang sesuai.

Parameter

Parameter Deskripsi
xcode_config wajib
Penyedia yang berisi informasi tentang konfigurasi xcode.
platform diperlukan
Platform apple.

XcodeProperties

Provider apple_common.XcodeProperties

Konstruktor/kunci untuk penyedia XcodeVersionProperties.

Jika target menyebarkan penyedia XcodeVersionProperties, gunakan penyedia ini sebagai kunci yang digunakan untuk mengambilnya. Contoh:

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

Konstruktor/kunci untuk penyedia XcodeVersionConfig.