사과_일반

Apple 규칙 구현의 내부에 액세스하는 Starlark용 함수

구성원

apple_host_system_env

dict apple_common.apple_host_system_env(xcode_config)

Apple 호스트 시스템에서 빌드 도구를 실행해야 하는 작업(예: 사용해야 하는 Xcode 버전)에 대해 설정해야 하는 환경 변수의 dict를 반환합니다. 키는 변수 이름이고 값은 상응하는 값입니다.

매개변수

매개변수 설명
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 필수
DottedVersion의 문자열 표현입니다.

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

Apple 플랫폼을 표적으로 삼는 (다중 아키텍처일 수 있는) 바이너리를 연결합니다. 이 메서드는 Rules_apple 도메인에 있는 Starlark apple_binary 규칙의 일괄 로직으로 구성되어 있으며 Rules_apple의 Starlark에 연결 로직을 이전하는 데 도움을 주기 위해 존재합니다.

이 API는 높은 수준의 실험적이며 언제든지 변경될 수 있습니다. 지금은 이 기능의 안정성에 의존하지 마세요.

매개변수

매개변수 설명
필수
Starlark 규칙 컨텍스트입니다.
sequence of Targets; or None; default = None
바이너리의 종속 항목 그래프에 있지만 라이브러리가 바이너리에 연결되어서는 안 되는 Target 목록입니다. 번들 로더나 이 바이너리에 의해 로드되는 동적 라이브러리/프레임워크와 같은 다른 이미지에서 런타임 시 발견되는 종속 항목의 경우가 여기에 해당합니다.
sequence of strings; default = []
링커 작업에 전달할 추가 linkopts입니다.
sequence of Files; default = []
링커 작업에 전달할 추가 파일입니다.
default = -1
연결된 바이너리에 빌드 정보를 포함할지 여부입니다. 1인 경우 빌드 정보가 항상 포함됩니다. 0이면 빌드 정보가 항상 제외됩니다. -1 (기본값)인 경우 --[no]stamp 플래그로 동작이 결정됩니다. 테스트 규칙의 실행 가능한 출력을 생성할 때는 0으로 설정해야 합니다.

struct apple_common.link_multi_arch_static_library(ctx)

Apple 플랫폼을 대상으로 하는 (다중 아키텍처일 수 있는) 정적 라이브러리를 연결합니다. 이 메서드는 Rules_apple 도메인에 Starlark apple_static_library 규칙 로직의 일부로 구성되어 있으며 rules_apple의 Starlark에 연결 로직을 이전하는 데 도움이 됩니다.

이 API는 높은 수준의 실험적이며 언제든지 변경될 수 있습니다. 지금은 이 기능의 안정성에 의존하지 마세요.

매개변수

매개변수 설명
필수
Starlark 규칙 컨텍스트입니다.

multi_arch_split

SplitTransitionProviderApi apple_common.multi_arch_split

하나 이상의 Apple 플랫폼에 종속 항목을 빌드하기 위한 규칙 속성의 구성 전환입니다.

이 전환을 사용하려면 'platform_type' 및 'minimum_os_version' 문자열 속성이 정의되고 규칙에 필수입니다.

platform_type 속성의 값은 이 구성 전환에 따라 종속 항목이 빌드될 대상 아키텍처를 지정합니다.

옵션:

  • ios: --ios_multi_cpus에서 수집된 아키텍처
  • macos: --macos_cpus에서 수집된 아키텍처
  • tvos: --tvos_cpus에서 수집된 아키텍처
  • watchos: --watchos_cpus에서 수집된 아키텍처

min_os_version은 '7.3'과 같이 점이 있는 버전 문자열이어야 하며 플랫폼 유형에 따라 비슷하게 구성의 최소 운영체제를 설정하는 데 사용됩니다. 예를 들어 platform_type 'ios' 및minimum_os_version '8.0'을 지정하면 종속 항목이 최소 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입니다.
objc 필수
바이너리에 연결된 전이 종속 항목에 관한 정보가 포함된 ObjcProvider입니다.
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입니다.
objc 필수
바이너리에 연결된 전이 종속 항목에 관한 정보가 포함된 ObjcProvider입니다.

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

Apple 플랫폼에 해당하는 다음 필드를 포함하는 enum 유사 구조체입니다.
  • 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

Apple 플랫폼 유형에 해당하는 다음 필드를 포함하는 enum 유사 구조체입니다.
  • ios
  • macos
  • tvos
  • watchos

이러한 값은 'apple' 구성 프래그먼트의 multi_arch_platform 메서드와 같이 플랫폼 유형을 예상하는 메서드에 전달될 수 있습니다.

예:

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

target_apple_env

dict apple_common.target_apple_env(xcode_config, platform)

지정된 Apple 플랫폼 유형의 대상을 빌드하는 작업에 설정해야 하는 환경 변수의 dict를 반환합니다. 예를 들어 이 사전에는 빌드할 플랫폼 이름과 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 제공자의 생성자/키입니다.