| # Copyright 2020 The Bazel Authors. All rights reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| """Semantics for Bazel Objc rules""" | |
| load("//cc/common:cc_common.bzl", "cc_common") | |
| def _check_toolchain_supports_objc_compile(ctx, cc_toolchain, requested_features = None, unsupported_features = None): | |
| if requested_features == None: | |
| requested_features = ctx.features | |
| if unsupported_features == None: | |
| unsupported_features = ctx.disabled_features | |
| feature_configuration = cc_common.configure_features( | |
| ctx = ctx, | |
| cc_toolchain = cc_toolchain, | |
| language = "objc", | |
| requested_features = requested_features, | |
| unsupported_features = unsupported_features, | |
| ) | |
| if not cc_common.action_is_enabled( | |
| feature_configuration = feature_configuration, | |
| action_name = "objc-compile", | |
| ): | |
| fail("Compiling objc_library targets requires the Apple CC toolchain " + | |
| "which can be found here: https://github.com/bazelbuild/apple_support#toolchain-setup") | |
| def _get_apple_vendor_attr(): | |
| # TODO(b/528985527): Change to the apple vendor platform constraint if safe. | |
| return {} | |
| def _get_licenses_attr(): | |
| # TODO(b/182226065): Change to applicable_licenses | |
| return {} | |
| def _get_repo(): | |
| return "bazel_tools" | |
| semantics = struct( | |
| check_toolchain_supports_objc_compile = _check_toolchain_supports_objc_compile, | |
| get_apple_vendor_attr = _get_apple_vendor_attr, | |
| get_repo = _get_repo, | |
| get_licenses_attr = _get_licenses_attr, | |
| apple_crosstool_transition = None, | |
| is_enable_modules_attr_allowed = True, | |
| is_module_map_attr_allowed = True, | |
| is_module_name_attr_allowed = True, | |
| ) |