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 Toolchain

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 ต้องระบุ
การแทนสตริงของ DottedVersion

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

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
จำเป็น
บริบทของกฎ Starlark
ลำดับของเป้าหมายหรือ None ค่าเริ่มต้นคือ None
รายการTargetที่อยู่ในกราฟการอ้างอิงของไบนารี แต่ไลบรารีไม่ควรลิงก์กับไบนารี นี่เป็นกรณีของทรัพยากร Dependency ที่พบขณะรันไทม์ในอิมเมจอื่น เช่น ตัวโหลด Bundle หรือไลบรารี/เฟรมเวิร์กแบบไดนามิกที่จะโหลดโดยไบนารีนี้
ลำดับของสตริง ค่าเริ่มต้นคือ []
Linkopt เพิ่มเติมที่จะส่งไปยังการดำเนินการ Linker
ลำดับของไฟล์ ค่าเริ่มต้นคือ []
ไฟล์เพิ่มเติมเพื่อส่งไปยังการดำเนินการ Linker
ลำดับของสตริง ค่าเริ่มต้นคือ []
ฟีเจอร์ที่ขอเพิ่มเติมเพื่อส่งไปยังการดำเนินการ Linker
ลำดับของสตริง ค่าเริ่มต้นคือ []
ฟีเจอร์ที่ปิดใช้เพิ่มเติมซึ่งจะส่งต่อไปไปยังการดำเนินการ Linker
ค่าเริ่มต้นคือ -1
ระบุว่าต้องการรวมข้อมูลบิลด์ในไบนารีที่ลิงก์หรือไม่ หากเป็น 1 ระบบจะรวมข้อมูลบิลด์เสมอ หากเป็น 0 ข้อมูลของบิลด์จะถูกยกเว้นเสมอ หาก -1 (ค่าเริ่มต้น) การทำงานดังกล่าวจะกำหนดโดยแฟล็ก --[no] ควรกำหนดค่านี้เป็น 0 เมื่อสร้างเอาต์พุตสั่งการสำหรับกฎการทดสอบ

struct apple_common.link_multi_arch_static_library(ctx)

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
จำเป็น
บริบทของกฎ Starlark

new_dynamic_framework_provider

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

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

พารามิเตอร์

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

new_executable_binary_provider

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
binary ไฟล์ หรือ None ค่าเริ่มต้นคือ None
อาร์ติแฟกต์ไบนารีของไฟล์ปฏิบัติการ
cc_info ค่าเริ่มต้นคือ None
CcInfo ซึ่งมีข้อมูลเกี่ยวกับทรัพยากร Dependency แบบสับเปลี่ยนที่ลิงก์กับไบนารี
objc ค่าเริ่มต้นคือ None
ObjcProvider ซึ่งมีข้อมูลเกี่ยวกับทรัพยากร Dependency แบบสับเปลี่ยนที่ลิงก์กับไบนารี

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

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

พารามิเตอร์

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

ออบเจ็กต์

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
  • visionos_device
  • visionos_simulator
  • watchos_device
  • watchos_simulator

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

platform_type

struct apple_common.platform_type

โครงสร้างที่มีลักษณะเหมือน Enum ที่มีช่องต่อไปนี้ซึ่งสอดคล้องกับประเภทแพลตฟอร์มของ Apple
  • ios
  • macos
  • tvos
  • visionos
  • 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