xcode_support Starlark Module

A modules of helpers for rule authors to aid in writing rules that need to change what they do based on attributes of the active Xcode.

To use these in your Starlark code, simply load the module; for example:

load("@build_bazel_apple_support//lib:xcode_support.bzl", "xcode_support")

On this page:

xcode_support.get_current_sdk

Returns the XcodeSdkVariantInfo provider for the current configuration.

Callers of this function must define the _xcode_config attribute in their rule or aspect. This is best done using the apple_support.action_required_attrs() helper.

PARAMETERS

NameDescriptionDefault Value
ctxThe rule or aspect context.none

RETURNS

The XcodeSdkVariantInfo provider for the current configuration.

xcode_support.get_current_xcode

Returns the XcodeVersionConfig provider for the current configuration.

Callers of this function must define the _xcode_config attribute in their rule or aspect. This is best done using the apple_support.action_required_attrs() helper.

PARAMETERS

NameDescriptionDefault Value
ctxThe rule or aspect context.none

RETURNS

The XcodeVersionConfig provider for the current configuration.

xcode_support.is_xcode_at_least_version

Returns True if Xcode version is at least a given version.

This method takes as input an XcodeVersionConfig provider, which can be obtained from the _xcode_config attribute (e.g. ctx.attr._xcode_config[apple_common.XcodeVersionConfig]). This provider should contain the Xcode version parameters with which this rule is being built with. If you need to add this attribute to your rule implementation, please refer to apple_support.action_required_attrs().

PARAMETERS

NameDescriptionDefault Value
xcode_configThe XcodeVersionConfig provider from the _xcode_config attribute's value.none
versionThe minimum desired Xcode version, as a dotted version string.none

RETURNS

True if the given xcode_config version at least as high as the requested version.