apple_Common

Báo cáo vấn đề Xem nguồn Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Các hàm để Starlark truy cập vào nội dung bên trong của quá trình 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ề dict của các biến môi trường cần được đặt cho những hành động cần chạy công cụ xây dựng trên hệ thống lưu trữ của Apple, chẳng hạn như phiên bản Xcode sẽ được sử dụng. Khoá là tên biến và các giá trị là giá trị tương ứng của chú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.

apple_toolchain

unknown apple_common.apple_toolchain()

Các tiện ích để phân giải các mục từ chuỗi công cụ của Apple.

AppleDebugOutputs

None apple_common.AppleDebugOutputs

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

Nếu một mục tiêu truyền trình cung cấp AppleDebugOutputs, hãy dùng mã này làm khoá để truy xuất trình cung cấp đó. 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 mục tiêu truyền tải trình cung cấp AppleDynamicFramework, hãy sử dụng mục tiêu này làm khoá để truy xuất trình cung cấp đó. 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 mục tiêu truyền tải trình cung cấp AppleExecutableBinary, hãy sử dụng mục tiêu này làm khoá để truy xuất trình cung cấp đó. 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 string; bắt buộc
Biểu thị dạng 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 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 mang tính 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 độ ổn định của hàm này.

Thông số

Thông số Mô tả
ctx; bắt buộc
Ngữ cảnh quy tắc Starlark.
trình tự của Mục tiêu; hoặc None; mặc định là None
Danh sách Target có trong biểu đồ phần phụ thuộc của tệp nhị phân nhưng không được liên kết thư viện vào 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 trong một hình ảnh khác, chẳng hạn như trình tải gói hoặc bất kỳ thư viện/khung động nào sẽ được tệp nhị phân này tải.
trình tự của chuỗi; mặc định là []
Các đường liên kết bổ sung sẽ được truyền đến hành động liên kết.
trình tự của Tệp; giá trị mặc định là []
Các tệp bổ sung để truyền đến thao tác trình liên kết.
trình tự của chuỗi; mặc định là []
Các tính năng được yêu cầu bổ sung sẽ được truyền đến thao tác liên kết.
trình tự của chuỗi; mặc định là []
Các tính năng bị tắt bổ sung sẽ được truyền đến thao tác liên kết.
int; mặc định là -1
Liệu 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 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ẽ do cờ --[no]stamp xác định. Bạn phải đặ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ể 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 của logic quy tắc apple_static_library 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 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 độ ổn định của hàm này.

Thông số

Thông số Mô tả
ctx; bắt buộc
Ngữ cảnh quy tắc Starlark.

new_dynamic_framework_provider

unknown apple_common.new_dynamic_framework_provider(binary=None, cc_info, 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 Tệp; hoặc None; mặc định là None
Cấu phần phần mềm nhị phân dylib của khung động.
cc_info CcInfo; bắt buộc
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.
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 dữ liệu đầu vào liên kết để liên kết với khung động.
framework_files depset của Tệp; hoặc None; mặc định là None
Tập hợp đầy đủ các 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

unknown apple_common.new_executable_binary_provider(binary=None, cc_info)

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

Thông số

Thông số Mô tả
binary Tệp; 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 CcInfo; bắt buộc
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.

platform

struct apple_common.platform

Cấu trúc giống 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 các phương thức dự kiế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 kiểu enum chứa các trường sau 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 các phương thức dự kiến một loại nền tảng, chẳng hạn như phương thức multi_arch_platform của mảnh 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ề dict của các biến môi trường cần được đặt cho các hành động tạo mục tiêu của loại nền tảng Apple nhất định. 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 của các biến đó.

Thông số

Thông số Mô tả
xcode_config bắt buộc
Nhà cung cấp có chứa thông tin về cấu hình Xcode.
platform bắt buộc
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 mục tiêu truyền trình cung cấp XcodeVersionProperties, hãy dùng mã này làm khoá để truy xuất trình cung cấp đó. 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.