Apple_Common

ฟังก์ชันสำหรับ Starlark เพื่อเข้าถึงส่วนภายในของการติดตั้งใช้งานกฎ Apple

สมาชิก

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

แสดงผล dict ของตัวแปรสภาพแวดล้อมที่ควรตั้งค่าสำหรับการดำเนินการที่ต้องเรียกใช้เครื่องมือบิลด์ในระบบโฮสต์ของ Apple เช่น เวอร์ชันของ Xcode ที่ควรใช้ คีย์คือชื่อตัวแปร และค่าคือค่าที่เกี่ยวข้อง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
xcode_config ต้องระบุ
ผู้ให้บริการที่มีข้อมูลเกี่ยวกับการกำหนดค่า xcode

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

ยูทิลิตีสำหรับการแก้ไขรายการจากเครื่องมือของ Apple

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

ตัวสร้าง/คีย์สำหรับผู้ให้บริการ AppleDebugOutputs

หากเป้าหมายเผยแพร่ผู้ให้บริการ AppleDebugOutputs ให้ใช้ค่านี้เป็นคีย์ในการดึงข้อมูล ตัวอย่าง

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

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

ตัวสร้าง/คีย์สำหรับผู้ให้บริการ AppleDynamicFramework

หากเป้าหมายเผยแพร่ผู้ให้บริการ AppleDynamicFramework ให้ใช้ค่านี้เป็นคีย์ในการดึงข้อมูล ตัวอย่าง

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

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

ตัวสร้าง/คีย์สำหรับผู้ให้บริการ AppleExecutableBinary

หากเป้าหมายเผยแพร่ผู้ให้บริการ AppleExecutableBinary ให้ใช้ค่านี้เป็นคีย์ในการดึงข้อมูล ตัวอย่าง

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

dotted_version

DottedVersion apple_common.dotted_version(version)

สร้างอินสแตนซ์ DottedVersion ใหม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
version required
การแสดงสตริงของ DottedVersion

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

ลิงก์ไบนารี (อาจมีหลายสถาปัตยกรรม) ที่กำหนดเป้าหมายแพลตฟอร์มของ Apple วิธีนี้ประกอบด้วยตรรกะส่วนใหญ่ของกฎ Starlark apple_binary ในโดเมน rules_apple และมีไว้เพื่อช่วยในการย้ายตรรกะการลิงก์ไปยัง Starlark ใน rules_apple

API นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ทุกเมื่อ โปรดอย่าพึ่งพาความเสถียรของฟังก์ชันนี้ในขณะนี้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
ต้องระบุ
บริบทของกฎ Starlark
sequence of Targets; or None; default = None
รายการของ Target ที่อยู่ในกราฟการอ้างอิงของไบนารี แต่ไม่ควรลิงก์ไลบรารีเข้ากับไบนารี กรณีนี้ใช้กับทรัพยากร Dependency ที่จะพบในรันไทม์ในอิมเมจอื่น เช่น ตัวโหลด Bundle หรือไลบรารี/เฟรมเวิร์กแบบไดนามิกที่ไบนารีนี้จะโหลด
sequence of strings; default = []
Extra linkopts to be passed to the linker action.
sequence of Files; ค่าเริ่มต้น = []
ไฟล์เพิ่มเติมที่จะส่งไปยังการดำเนินการของ Linker
default = -1
เลือกว่าจะรวมข้อมูลการสร้างในไบนารีที่ลิงก์หรือไม่ หากเป็น 1 ระบบจะรวมข้อมูลการสร้างไว้เสมอ หากเป็น 0 ระบบจะยกเว้นข้อมูลการสร้างเสมอ หากเป็น -1 (ค่าเริ่มต้น) ลักษณะการทำงานจะกำหนดโดยแฟล็ก --[no]stamp ควรตั้งค่าเป็น 0 เมื่อสร้างเอาต์พุตที่เรียกใช้งานได้สำหรับกฎการทดสอบ

struct apple_common.link_multi_arch_static_library(ctx)

ลิงก์ไลบรารีแบบคงที่ (อาจมีหลายสถาปัตยกรรม) ที่กำหนดเป้าหมายแพลตฟอร์มของ Apple เมธอดนี้เป็นส่วนหนึ่งของตรรกะของกฎ Starlark apple_static_library ในโดเมน rules_apple และมีไว้เพื่อช่วยในการย้ายตรรกะการลิงก์ไปยัง Starlark ใน rules_apple

API นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ทุกเมื่อ โปรดอย่าพึ่งพาความเสถียรของฟังก์ชันนี้ในขณะนี้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
ต้องระบุ
บริบทของกฎ Starlark

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

การเปลี่ยนการกำหนดค่าสำหรับแอตทริบิวต์ของกฎเพื่อสร้างการอ้างอิงในแพลตฟอร์ม Apple อย่างน้อย 1 แพลตฟอร์ม

การใช้การเปลี่ยนผ่านนี้กำหนดให้ต้องกำหนดแอตทริบิวต์สตริง "platform_type" และ "minimum_os_version" และต้องระบุในกฎ

ค่าของแอตทริบิวต์ platform_type จะกำหนดสถาปัตยกรรมเป้าหมายที่จะสร้างทรัพยากร Dependency ตามการเปลี่ยนการกำหนดค่านี้

ตัวเลือกมีดังนี้

  • ios: สถาปัตยกรรมที่รวบรวมจาก --ios_multi_cpus
  • macos: สถาปัตยกรรมที่รวบรวมจาก --macos_cpus
  • tvos: สถาปัตยกรรมที่รวบรวมจาก --tvos_cpus
  • watchos: สถาปัตยกรรมที่รวบรวมจาก --watchos_cpus

minimum_os_version ควรเป็นสตริงเวอร์ชันแบบมีจุด เช่น "7.3" และใช้เพื่อตั้งค่าระบบปฏิบัติการขั้นต่ำในการกำหนดค่าในลักษณะเดียวกันตามประเภทแพลตฟอร์ม เช่น การระบุ platform_type เป็น "ios" และ minimum_os_version เป็น "8.0" จะช่วยให้มั่นใจได้ว่าทรัพยากร Dependency จะสร้างขึ้นด้วย iOS เวอร์ชันขั้นต่ำเป็น "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)

สร้างอินสแตนซ์ผู้ให้บริการ AppleDynamicFramework ใหม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
binary File; or None; default = None
อาร์ติแฟกต์ไบนารี dylib ของเฟรมเวิร์กแบบไดนามิก
cc_info default = None
CcInfo ซึ่งมีข้อมูลเกี่ยวกับทรัพยากร Dependency แบบทรานซิทีฟที่ลิงก์กับไบนารี
objc required
ObjcProvider ที่มีข้อมูลเกี่ยวกับทรัพยากร Dependency แบบทรานซิทีฟที่ลิงก์กับไบนารี
framework_dirs depset of strings; or None; default = None
ชื่อเส้นทางของเฟรมเวิร์กที่ใช้เป็นอินพุตลิงก์เพื่อลิงก์กับเฟรมเวิร์กแบบไดนามิก
framework_files depset of Files; or None; default = None
ชุดอาร์ติแฟกต์ทั้งหมดที่ควรนำมาใช้เป็นอินพุตเพื่อลิงก์กับเฟรมเวิร์กแบบไดนามิก

new_executable_binary_provider

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

สร้างอินสแตนซ์ผู้ให้บริการ AppleExecutableBinaryInfo ใหม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
binary File; or None; default = None
อาร์ติแฟกต์ไบนารีของไฟล์ที่เรียกใช้งานได้
cc_info default = None
CcInfo ซึ่งมีข้อมูลเกี่ยวกับทรัพยากร Dependency แบบทรานซิทีฟที่ลิงก์กับไบนารี
objc required
ObjcProvider ที่มีข้อมูลเกี่ยวกับทรัพยากร Dependency แบบทรานซิทีฟที่ลิงก์กับไบนารี

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

สร้างอินสแตนซ์ ObjcProvider ใหม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
kwargs default = {}
พจนานุกรมของอาร์กิวเมนต์

Objc

Provider apple_common.Objc

ตัวสร้าง/คีย์สำหรับผู้ให้บริการ Objc

หากเป้าหมายเผยแพร่ผู้ให้บริการ Objc ให้ใช้ค่านี้เป็นคีย์ในการดึงข้อมูล ตัวอย่าง

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

platform

struct apple_common.platform

โครงสร้างที่คล้ายกับ Enum ซึ่งมีช่องต่อไปนี้ที่สอดคล้องกับแพลตฟอร์มของ Apple
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • watchos_device
  • watchos_simulator

ค่าเหล่านี้สามารถส่งไปยังเมธอดที่คาดหวังแพลตฟอร์ม เช่น XcodeVersionConfig.sdk_version_for_platform

platform_type

struct apple_common.platform_type

โครงสร้างที่คล้ายกับ Enum ซึ่งมีฟิลด์ต่อไปนี้ที่สอดคล้องกับประเภทแพลตฟอร์มของ Apple
  • ios
  • macos
  • tvos
  • watchos

ค่าเหล่านี้สามารถส่งไปยังเมธอดที่คาดหวังประเภทแพลตฟอร์มได้ เช่น เมธอด multi_arch_platform ของส่วนย่อยการกำหนดค่า "apple"

ตัวอย่าง

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

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

แสดงผล dict ของตัวแปรสภาพแวดล้อมที่ควรตั้งค่าสำหรับการดำเนินการที่สร้างเป้าหมายของแพลตฟอร์ม Apple ประเภทที่ระบุ เช่น พจนานุกรมนี้มีตัวแปรที่ระบุชื่อแพลตฟอร์มและเวอร์ชัน SDK ที่ใช้สร้าง คีย์คือชื่อตัวแปร และค่าคือค่าที่เกี่ยวข้อง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
xcode_config ต้องระบุ
ผู้ให้บริการที่มีข้อมูลเกี่ยวกับการกำหนดค่า xcode
platform ต้องระบุ
แพลตฟอร์ม Apple

XcodeProperties

Provider apple_common.XcodeProperties

ตัวสร้าง/คีย์สำหรับผู้ให้บริการ XcodeVersionProperties

หากเป้าหมายเผยแพร่ผู้ให้บริการ XcodeVersionProperties ให้ใช้ค่านี้เป็นคีย์ในการดึงข้อมูล ตัวอย่าง

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

ตัวสร้าง/คีย์สำหรับผู้ให้บริการ XcodeVersionConfig