package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_base_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_base_license"],

    // OWNER: g/ravenwood
    // Bug component: 25698
    default_team: "trendy_team_ravenwood",
}

// Visibility only for ravenwood prototype uses.
genrule_defaults {
    name: "ravenwood-internal-only-visibility-genrule",
    visibility: [
        ":__subpackages__",
        "//frameworks/base",
        "//frameworks/base/ravenwood:__subpackages__",
    ],
}

// Visibility only for ravenwood prototype uses.
java_defaults {
    name: "ravenwood-internal-only-visibility-java",
    visibility: [
        ":__subpackages__",
        "//frameworks/base",
        "//frameworks/base/ravenwood:__subpackages__",
    ],
}

// Visibility only for ravenwood prototype uses.
filegroup_defaults {
    name: "ravenwood-internal-only-visibility-filegroup",
    visibility: [
        ":__subpackages__",
        "//frameworks/base",
        "//frameworks/base/ravenwood:__subpackages__",
    ],
}

// This library contains the standard hoststubgen annotations.
// This is only for the prototype. The productionized version is "ravenwood-annotations".
java_library {
    name: "hoststubgen-annotations",
    defaults: ["ravenwood-internal-only-visibility-java"],
    srcs: [
        "annotations-src/**/*.java",
    ],
    host_supported: true,

    sdk_version: "core_current",
}

// This library contains helper classes used in the host side test environment at runtime.
// This library is _not_ specific to Android APIs.
java_library_host {
    name: "hoststubgen-helper-runtime",
    defaults: ["ravenwood-internal-only-visibility-java"],
    srcs: [
        "helper-runtime-src/**/*.java",
    ],
    libs: [
        "junit",
    ],
    static_libs: [
        "guava",
    ],
    jarjar_rules: "jarjar-rules.txt",
}

java_library {
    name: "hoststubgen-helper-runtime.ravenwood",
    defaults: ["ravenwood-internal-only-visibility-java"],
    srcs: [
        "helper-runtime-src/**/*.java",
    ],
    libs: [
        "junit",
    ],
    static_libs: [
        "guava",
    ],
    jarjar_rules: "jarjar-rules.txt",
}

// For sharing the code with other tools
java_library_host {
    name: "hoststubgen-lib",
    defaults: ["ravenwood-internal-only-visibility-java"],
    srcs: ["src/**/*.kt"],
    static_libs: [
        "hoststubgen-helper-runtime",
    ],
    libs: [
        "junit",
        "ow2-asm",
        "ow2-asm-analysis",
        "ow2-asm-commons",
        "ow2-asm-tree",
        "ow2-asm-util",
    ],
}

// Host-side stub generator tool.
java_binary_host {
    name: "hoststubgen",
    main_class: "com.android.hoststubgen.HostStubGenMain",
    static_libs: [
        "hoststubgen-lib",
        "junit",
        "ow2-asm",
        "ow2-asm-analysis",
        "ow2-asm-commons",
        "ow2-asm-tree",
        "ow2-asm-util",
    ],
    visibility: ["//visibility:public"],
}

java_test_host {
    name: "hoststubgentest",
    srcs: ["test/**/*.kt"],
    static_libs: [
        "hoststubgen",
        "truth",
    ],
    test_suites: ["general-tests"],
    visibility: ["//visibility:private"],
}

// File that contains the standard command line argumetns to hoststubgen.
// This is only for the prototype. The productionized version is "ravenwood-standard-options".
filegroup {
    name: "hoststubgen-standard-options",
    defaults: ["ravenwood-internal-only-visibility-filegroup"],
    srcs: [
        "hoststubgen-standard-options.txt",
    ],
}

hoststubgen_common_options = "$(location hoststubgen) " +
    // "--in-jar $(location :framework-all) " +
    // "--policy-override-file $(location framework-policy-override.txt) " +
    "@$(location :hoststubgen-standard-options) " +

    "--out-jar $(location host.jar) " +

    // "--keep-all-classes " + // Used it for an experiment. See KeepAllClassesFilter.
    "--gen-keep-all-file $(location hoststubgen_keep_all.txt) " +
    "--gen-input-dump-file $(location hoststubgen_dump.txt) " +
    ""

// Common defaults for stub generation.
// This one is not specific to Android APIs.
genrule_defaults {
    name: "hoststubgen-command-defaults",
    tools: ["hoststubgen"],
    srcs: [
        ":hoststubgen-standard-options",
    ],
    out: [
        "host.jar",

        // Following files are created just as FYI.
        "hoststubgen_keep_all.txt",
        "hoststubgen_dump.txt",
    ],
}
