1# Copyright 2022 Google LLC. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the License); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15"""kt_compiler_plugin_visitor""" 16 17load("//:visibility.bzl", "RULES_KOTLIN") 18load("//kotlin:compiler_plugin.bzl", "KtCompilerPluginInfo") 19 20visibility(RULES_KOTLIN) 21 22def _get_exported_plugins(_target, ctx_rule): 23 return [ 24 t[KtCompilerPluginInfo] 25 for t in getattr(ctx_rule.attr, "exported_plugins", []) 26 if (KtCompilerPluginInfo in t) 27 ] 28 29kt_compiler_plugin_visitor = struct( 30 name = "compiler_plugins", 31 visit_target = _get_exported_plugins, 32 filter_edge = None, 33 finish_expansion = None, 34 process_unvisited_target = None, 35) 36