aboutsummaryrefslogtreecommitdiff
path: root/rules/android/android_library_aosp_internal/attrs.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'rules/android/android_library_aosp_internal/attrs.bzl')
-rw-r--r--rules/android/android_library_aosp_internal/attrs.bzl128
1 files changed, 128 insertions, 0 deletions
diff --git a/rules/android/android_library_aosp_internal/attrs.bzl b/rules/android/android_library_aosp_internal/attrs.bzl
new file mode 100644
index 00000000..8e17c717
--- /dev/null
+++ b/rules/android/android_library_aosp_internal/attrs.bzl
@@ -0,0 +1,128 @@
+"""
+Copyright (C) 2023 The Android Open Source Project
+
+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.
+"""
+
+load(
+ "@rules_android//rules:attrs.bzl",
+ _attrs = "attrs",
+)
+load(
+ "@rules_android//rules/android_library:attrs.bzl",
+ _BASE_ATTRS = "ATTRS",
+)
+load("@rules_kotlin//kotlin:compiler_opt.bzl", "kotlincopts_attrs")
+load("@rules_kotlin//kotlin:traverse_exports.bzl", _kt_traverse_exports = "kt_traverse_exports")
+
+_KT_COMPILER_ATTRS = _attrs.add(
+ kotlincopts_attrs(),
+ dict(
+ common_srcs = attr.label_list(
+ allow_files = [".kt"],
+ doc = """The list of common multi-platform source files that are processed to create
+ the target.""",
+ ),
+ coverage_srcs = attr.label_list(allow_files = True),
+ # Magic attribute name for DexArchiveAspect
+ _toolchain = attr.label(
+ default = Label(
+ "@rules_kotlin//toolchains/kotlin_jvm:kt_jvm_toolchain_impl",
+ ),
+ ),
+ ),
+)
+
+ATTRS = _attrs.add(
+ _attrs.replace(
+ _BASE_ATTRS,
+ deps = attr.label_list(
+ allow_rules = [
+ "aar_import",
+ "android_library",
+ "cc_library",
+ "java_import",
+ "java_library",
+ "java_lite_proto_library",
+ ],
+ aspects = [
+ _kt_traverse_exports.aspect,
+ ],
+ providers = [
+ [CcInfo],
+ [JavaInfo],
+ ],
+ doc = (
+ "The list of other libraries to link against. Permitted library types " +
+ "are: `android_library`, `java_library` with `android` constraint and " +
+ "`cc_library` wrapping or producing `.so` native libraries for the " +
+ "Android target platform."
+ ),
+ ),
+ exported_plugins = attr.label_list(
+ allow_rules = [
+ "java_plugin",
+ ],
+ cfg = "exec",
+ ),
+ exports = attr.label_list(
+ allow_rules = [
+ "aar_import",
+ "android_library",
+ "cc_library",
+ "java_import",
+ "java_library",
+ "java_lite_proto_library",
+ ],
+ aspects = [
+ _kt_traverse_exports.aspect,
+ ],
+ providers = [
+ [CcInfo],
+ [JavaInfo],
+ ],
+ doc = (
+ "The closure of all rules reached via `exports` attributes are considered " +
+ "direct dependencies of any rule that directly depends on the target with " +
+ "`exports`. The `exports` are not direct deps of the rule they belong to."
+ ),
+ ),
+ exports_manifest = _attrs.tristate.create(
+ default = _attrs.tristate.no,
+ doc = (
+ "Whether to export manifest entries to `android_binary` targets that " +
+ "depend on this target. `uses-permissions` attributes are never exported."
+ ),
+ ),
+ plugins = attr.label_list(
+ providers = [
+ [JavaPluginInfo],
+ ],
+ cfg = "exec",
+ doc = (
+ "Java compiler plugins to run at compile-time. Every `java_plugin` " +
+ "specified in the plugins attribute will be run whenever this target " +
+ "is built. Resources generated by the plugin will be included in " +
+ "the result jar of the target."
+ ),
+ ),
+ srcs = attr.label_list(
+ allow_files = [
+ ".kt",
+ ".java",
+ ".srcjar",
+ ],
+ ),
+ ),
+ _KT_COMPILER_ATTRS,
+)