Skip to main content
Glama
target_sdk_version_transition.bzl2.88 kB
# Copyright (c) Meta Platforms, Inc. and affiliates. # # This source code is licensed under both the MIT license found in the # LICENSE-MIT file in the root directory of this source tree and the Apache # License, Version 2.0 found in the LICENSE-APACHE file in the root directory # of this source tree. """ Apply a constraint if the propagated_target_sdk_version attribute is set. This overrides any existing target_sdk_version select. """ load("@prelude//apple:versions.bzl", "TARGET_SDK_VERSIONS") load("@prelude//apple/user:enable_testing_transition.bzl", "enable_testing_transition_impl", "enable_testing_transition_refs") def _target_sdk_version_transition_impl(platform: PlatformInfo, refs: struct, attrs: struct) -> PlatformInfo: target_sdk_version = attrs.propagated_target_sdk_version if not target_sdk_version: return platform constraint_label = refs.version[ConstraintSettingInfo].label constraint_value = platform.configuration.constraints.get(constraint_label) version_provider = getattr(refs, target_sdk_version, None) if version_provider == None: fail("target sdk version {} is missing constraints".format(target_sdk_version)) version_constraint = version_provider[ConstraintValueInfo] if constraint_value == version_constraint: return platform updated_constraints = platform.configuration.constraints updated_constraints[constraint_label] = version_constraint new_cfg = ConfigurationInfo( constraints = updated_constraints, values = platform.configuration.values, ) return PlatformInfo( label = platform.label + "_target_sdk_version_" + target_sdk_version, configuration = new_cfg, ) def _target_sdk_version_and_enable_testing_impl(platform: PlatformInfo, refs: struct, attrs: struct) -> PlatformInfo: platform_info = _target_sdk_version_transition_impl(platform, refs, attrs) platform_info = enable_testing_transition_impl(platform_info, refs) return platform_info _target_sdk_version_transition_refs = { version: "@config//version:constraint-value-target-sdk-version-" + version for version in TARGET_SDK_VERSIONS } | {"version": "@config//version:constraint-setting-target-sdk-version"} _target_sdk_version_attrs = ["propagated_target_sdk_version"] target_sdk_version_transition = transition( impl = _target_sdk_version_transition_impl, refs = _target_sdk_version_transition_refs, attrs = _target_sdk_version_attrs, ) # apple_test requires both enable_testing and target_sdk_version # applied as an incoming transition, so we chain the transitions # in this implementation. apple_test_target_sdk_version_transition = transition( impl = _target_sdk_version_and_enable_testing_impl, refs = enable_testing_transition_refs | _target_sdk_version_transition_refs, attrs = _target_sdk_version_attrs, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server