# Description:
#
# Plugin source jars for Android Studio, accessed remotely.

package(default_visibility = ["//visibility:public"])

java_import(
    name = "sdk",
    jars = glob(["android-studio/lib/*.jar"]),
    deps = ["@error_prone_annotations//jar"],
    tags = ["intellij-provided-by-sdk"],
)

java_import(
    name = "android_plugin",
    jars = glob([
        "android-studio/plugins/android/lib/*.jar",
        "android-studio/plugins/android-ndk/lib/*.jar",
        "android-studio/plugins/sdk-updates/lib/*.jar",
    ]),
)

java_import(
    name = "test_recorder",
    jars = glob([
        "android-studio/plugins/test-recorder/lib/*.jar",
    ]),
)

java_import(
    name = "junit",
    jars = glob(["android-studio/plugins/junit/lib/*.jar"]),
)

java_import(
    name = "guava",
    jars = glob(["android-studio/lib/guava-*.jar"]),
)

# The plugins required by ASwB. We need to include them
# when running integration tests.
java_import(
    name = "bundled_plugins",
    jars = glob(
        [
            "android-studio/plugins/gradle/lib/*.jar",
            "android-studio/plugins/Groovy/lib/*.jar",
            "android-studio/plugins/java-i18n/lib/*.jar",
            "android-studio/plugins/junit/lib/*.jar",
            "android-studio/plugins/ndk-workspace/lib/*.jar",
            "android-studio/plugins/properties/lib/*.jar",
            "android-studio/plugins/smali/lib/*.jar",
        ],
        exclude = [
            # Conflict with lib/guava-*.jar
            "android-studio/plugins/gradle/lib/guava-*.jar",
        ],
    ),
    tags = ["intellij-provided-by-sdk"],
)

filegroup(
    name = "application_info_jar",
    srcs = ["android-studio/lib/resources.jar"],
)
