apple_Common

Các hàm cho Starlark để truy cập vào nội bộ của các triển khai quy tắc của Apple.

Hội viên

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Trả về một dict gồm các biến môi trường cần được thiết lập cho những thao tác cần chạy các công cụ xây dựng trên hệ thống máy chủ Apple, chẳng hạn như phiên bản Xcode cần được sử dụng. Khoá là tên biến và giá trị là giá trị tương ứng của khoá.

Thông số

Thông số Mô tả
xcode_config bắt buộc
Một trình cung cấp chứa thông tin về cấu hình xcode.

apple_toolchain

apple_toolchain apple_common.apple_toolchain()

Tiện ích để phân giải các mục trong chuỗi công cụ của Apple.

AppleDebugOutputs

Provider apple_common.AppleDebugOutputs

Hàm khởi tạo/khoá cho trình cung cấp AppleDebugOutputs.

Nếu một đích đến truyền nhà cung cấp AppleDebugOutputs, hãy dùng đích đến này làm khoá để truy xuất. Ví dụ:

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

AppleDynamicFramework

Provider apple_common.AppleDynamicFramework

Hàm khởi tạo/khoá cho trình cung cấp AppleDynamicFramework.

Nếu một đích đến truyền nhà cung cấp AppleDynamicFramework, hãy dùng đích đến này làm khoá để truy xuất. Ví dụ:

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

AppleExecutableBinary

Provider apple_common.AppleExecutableBinary

Hàm khởi tạo/khoá cho trình cung cấp AppleExecutableBinary.

Nếu một đích đến truyền nhà cung cấp AppleExecutableBinary, hãy dùng đích đến này làm khoá để truy xuất. Ví dụ:

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

dotted_version

DottedVersion apple_common.dotted_version(version)

Tạo một thực thể DottedVersion mới.

Thông số

Thông số Mô tả
version bắt buộc
Giá trị biểu thị chuỗi của 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)

Liên kết một tệp nhị phân (có thể có nhiều cấu trúc) nhắm đến các nền tảng của Apple. Phương thức này bao gồm phần lớn logic của quy tắc apple_binary Starlark trong miền rules_apple và tồn tại để hỗ trợ việc di chuyển logic liên kết của quy tắc này sang Starlark trong rules_apple.

API này đang trong giai đoạn thử nghiệm cao và có thể thay đổi bất cứ lúc nào. Hiện tại, bạn không nên phụ thuộc vào tính ổn định của hàm này.

Thông số

Thông số Mô tả
required
Ngữ cảnh quy tắc Starlark.
sequence của Targets; hoặc None; mặc định là None
Một danh sách các Target trong biểu đồ phần phụ thuộc của tệp nhị phân nhưng các thư viện của tệp nhị phân đó không được liên kết với tệp nhị phân. Đây là trường hợp đối với các phần phụ thuộc sẽ được tìm thấy trong thời gian chạy ở một hình ảnh khác, chẳng hạn như trình tải gói hoặc mọi thư viện/khung động sẽ được tải bởi tệp nhị phân này.
sequence của strings; giá trị mặc định là []
Extra linkopts to be passed to the linker action.
sequence của Files; mặc định là []
Các tệp bổ sung để truyền đến thao tác của trình liên kết.
sequence của strings; giá trị mặc định là []
Các tính năng bổ sung được yêu cầu sẽ được truyền đến thao tác của trình liên kết.
sequence của strings; mặc định là []
Các tính năng bổ sung bị vô hiệu hoá sẽ được truyền đến thao tác của trình liên kết.
mặc định là -1
Có đưa thông tin bản dựng vào tệp nhị phân được liên kết hay không. Nếu là 1, thông tin bản dựng sẽ luôn được đưa vào. Nếu là 0, thông tin bản dựng sẽ luôn bị loại trừ. Nếu là -1 (mặc định), thì hành vi sẽ được xác định bằng cờ --[no]stamp. Bạn nên đặt giá trị này thành 0 khi tạo đầu ra thực thi cho các quy tắc kiểm thử.

struct apple_common.link_multi_arch_static_library(ctx)

Liên kết một thư viện tĩnh (có thể có nhiều cấu trúc) nhắm đến các nền tảng của Apple. Phương thức này bao gồm một phần logic quy tắc apple_static_library của Starlark, trong miền rules_apple và tồn tại để hỗ trợ việc di chuyển logic liên kết của miền này sang Starlark trong rules_apple.

API này đang trong giai đoạn thử nghiệm cao và có thể thay đổi bất cứ lúc nào. Hiện tại, bạn không nên phụ thuộc vào tính ổn định của hàm này.

Thông số

Thông số Mô tả
required
Ngữ cảnh quy tắc 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)

Tạo một thực thể nhà cung cấp AppleDynamicFramework mới.

Thông số

Thông số Mô tả
binary File; hoặc None; mặc định là None
Dylib là cấu phần nhị phân của khung động.
cc_info mặc định là None
CcInfo chứa thông tin về các phần phụ thuộc bắc cầu được liên kết vào tệp nhị phân.
objc mặc định là None
ObjcProvider chứa thông tin về các phần phụ thuộc bắc cầu được liên kết vào tệp nhị phân.
framework_dirs depset của string; hoặc None; mặc định là None
Tên đường dẫn khung được dùng làm đầu vào liên kết để liên kết với khung động.
framework_files depset của File; hoặc None; mặc định là None
Toàn bộ tập hợp cấu phần phần mềm cần được đưa vào làm dữ liệu đầu vào để liên kết với khung động

new_executable_binary_provider

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

Tạo một thực thể trình cung cấp AppleExecutableBinaryInfo mới.

Thông số

Thông số Mô tả
binary File; hoặc None; mặc định là None
Cấu phần phần mềm nhị phân của tệp thực thi.
cc_info mặc định là None
CcInfo chứa thông tin về các phần phụ thuộc bắc cầu được liên kết vào tệp nhị phân.
objc mặc định là None
ObjcProvider chứa thông tin về các phần phụ thuộc bắc cầu được liên kết vào tệp nhị phân.

new_objc_provider

ObjcProvider apple_common.new_objc_provider(**kwargs)

Tạo một thực thể ObjcProvider mới.

Thông số

Thông số Mô tả
kwargs mặc định là {}
Từ điển đối số.

Objc

Provider apple_common.Objc

Hàm khởi tạo/khoá cho trình cung cấp Objc.

Nếu một đích đến truyền nhà cung cấp Objc, hãy dùng đích đến này làm khoá để truy xuất. Ví dụ:

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

platform

struct apple_common.platform

Một cấu trúc giống như enum chứa các trường sau đây tương ứng với các nền tảng của Apple:
  • ios_device
  • ios_simulator
  • macos
  • tvos_device
  • tvos_simulator
  • visionos_device
  • visionos_simulator
  • watchos_device
  • watchos_simulator

Bạn có thể truyền các giá trị này đến những phương thức dự kiến nhận một nền tảng, chẳng hạn như XcodeVersionConfig.sdk_version_for_platform.

platform_type

struct apple_common.platform_type

Một cấu trúc giống như enum chứa các trường sau đây tương ứng với các loại nền tảng của Apple:
  • ios
  • macos
  • tvos
  • visionos
  • watchos

Bạn có thể truyền các giá trị này đến những phương thức dự kiến có một loại nền tảng, chẳng hạn như phương thức multi_arch_platform của đoạn cấu hình "apple".

Ví dụ:

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

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

Trả về một dict của các biến môi trường cần được đặt cho các thao tác tạo mục tiêu thuộc loại nền tảng Apple đã cho. Ví dụ: từ điển này chứa các biến biểu thị tên nền tảng và phiên bản SDK để tạo. Khoá là tên biến và giá trị là giá trị tương ứng.

Thông số

Thông số Mô tả
xcode_config bắt buộc
Một trình cung cấp chứa thông tin về cấu hình xcode.
platform required
Nền tảng Apple.

XcodeProperties

Provider apple_common.XcodeProperties

Hàm khởi tạo/khoá cho trình cung cấp XcodeVersionProperties.

Nếu một đích đến truyền nhà cung cấp XcodeVersionProperties, hãy dùng đích đến này làm khoá để truy xuất. Ví dụ:

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

XcodeVersionConfig

Provider apple_common.XcodeVersionConfig

Hàm khởi tạo/khoá cho trình cung cấp XcodeVersionConfig.