blob: 30c5327d3135b08b7649804a53d0336529a32ddd [file] [log] [blame]
def _get_dependency_attribute(rule, attr):
if hasattr(rule.attr, attr):
to_add = getattr(rule.attr, attr)
if type(to_add) == "list":
return [t for t in to_add if type(t) == "Target"]
elif type(to_add) == "Target":
return [to_add]
return []
def _get_followed_kotlin_dependencies(rule):
deps = []
if rule.kind in ["kt_jvm_library_helper", "kt_jvm_library", "kt_android_library", "android_library"]:
deps.extend(_get_dependency_attribute(rule, "_toolchain"))
if rule.kind in ["kt_jvm_toolchain"]:
deps.extend(_get_dependency_attribute(rule, "kotlin_libs"))
return deps
def _get_kotlin_info(target, rule):
if rule.kind in ["kt_jvm_toolchain"]:
# Kotlin stdlib is provided through toolchain attributes.
return struct()
return None
IDE_KOTLIN = struct(
srcs_attributes = [
"kotlin_srcs",
"kotlin_test_srcs",
"common_srcs",
],
follow_attributes = [],
follow_additional_attributes = [
"_toolchain",
"kotlin_libs",
],
followed_dependencies = _get_followed_kotlin_dependencies,
toolchains_aspects = [],
get_kotlin_info = _get_kotlin_info,
)