// 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.

// We need this "trampoline" rule to force soong to give a host-side jar to
// framework-minus-apex.ravenwood-base. Otherwise, soong would mix up the arch (?) and we'd get
// a dex jar.
java_library {
    name: "framework-minus-apex-for-hoststubgen",
    installable: false, // host only jar.
    static_libs: [
        "framework-minus-apex",
    ],
    sdk_version: "core_platform",
    visibility: ["//visibility:private"],
}

// Process framework-all with hoststubgen for Ravenwood.
// This step takes several tens of seconds, so we manually shard it to multiple modules.
// All the copies have to be kept in sync.
// TODO: Do the sharding better, either by making hostsubgen support sharding natively, or
// making a better build rule.

genrule_defaults {
    name: "framework-minus-apex.ravenwood-base_defaults",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    tools: ["hoststubgen"],
    srcs: [
        ":framework-minus-apex-for-hoststubgen",
        ":ravenwood-framework-policies",
        ":ravenwood-standard-options",
        ":ravenwood-annotation-allowed-classes",
    ],
    out: [
        "ravenwood.jar",
        "hoststubgen_framework-minus-apex.log",
    ],
}

framework_minus_apex_cmd = "$(location hoststubgen) " +
    "@$(location :ravenwood-standard-options) " +
    "--debug-log $(location hoststubgen_framework-minus-apex.log) " +
    "--out-impl-jar $(location ravenwood.jar) " +
    "--in-jar $(location :framework-minus-apex-for-hoststubgen) " +
    "--policy-override-file $(location :ravenwood-framework-policies) " +
    "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) "

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X0",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 0",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X1",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 1",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X2",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 2",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X3",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 3",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X4",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 4",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X5",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 5",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X6",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 6",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X7",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 7",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X8",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 8",
}

java_genrule {
    name: "framework-minus-apex.ravenwood-base_X9",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 9",
}

// Build framework-minus-apex.ravenwood-base without sharding.
// We extract the various dump files from this one, rather than the sharded ones, because
// some dumps use the output from other classes (e.g. base classes) which may not be in the
// same shard. Also some of the dump files ("apis") may be slow even when sharded, because
// the output contains the information from all the input classes, rather than the output classes.
// Not using sharding is fine for this module because it's only used for collecting the
// dump / stats files, which don't have to happen regularly.
java_genrule {
    name: "framework-minus-apex.ravenwood-base_all",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd +
        "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " +

        "--gen-keep-all-file $(location hoststubgen_framework-minus-apex_keep_all.txt) " +
        "--gen-input-dump-file $(location hoststubgen_framework-minus-apex_dump.txt) ",

    out: [
        "hoststubgen_framework-minus-apex_keep_all.txt",
        "hoststubgen_framework-minus-apex_dump.txt",
        "hoststubgen_framework-minus-apex_stats.csv",
        "hoststubgen_framework-minus-apex_apis.csv",
    ],
}

// Marge all the sharded jars
java_genrule {
    name: "framework-minus-apex.ravenwood",
    defaults: ["ravenwood-internal-only-visibility-java"],
    cmd: "$(location merge_zips) $(out) $(in)",
    tools: ["merge_zips"],
    srcs: [
        ":framework-minus-apex.ravenwood-base_X0{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X1{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X2{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X3{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X4{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X5{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X6{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X7{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X8{ravenwood.jar}",
        ":framework-minus-apex.ravenwood-base_X9{ravenwood.jar}",
    ],
    out: [
        "framework-minus-apex.ravenwood.jar",
    ],
}

java_library {
    name: "services.core-for-hoststubgen",
    installable: false, // host only jar.
    static_libs: [
        "services.core",
    ],
    sdk_version: "core_platform",
    visibility: ["//visibility:private"],
}

java_genrule {
    name: "services.core.ravenwood-base",
    tools: ["hoststubgen"],
    cmd: "$(location hoststubgen) " +
        "@$(location :ravenwood-standard-options) " +

        "--debug-log $(location hoststubgen_services.core.log) " +
        "--stats-file $(location hoststubgen_services.core_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " +

        "--out-impl-jar $(location ravenwood.jar) " +

        "--gen-keep-all-file $(location hoststubgen_services.core_keep_all.txt) " +
        "--gen-input-dump-file $(location hoststubgen_services.core_dump.txt) " +

        "--in-jar $(location :services.core-for-hoststubgen) " +
        "--policy-override-file $(location :ravenwood-services-policies) " +
        "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ",
    srcs: [
        ":services.core-for-hoststubgen",
        ":ravenwood-services-policies",
        ":ravenwood-standard-options",
        ":ravenwood-annotation-allowed-classes",
    ],
    out: [
        "ravenwood.jar",

        // Following files are created just as FYI.
        "hoststubgen_services.core_keep_all.txt",
        "hoststubgen_services.core_dump.txt",

        "hoststubgen_services.core.log",
        "hoststubgen_services.core_stats.csv",
        "hoststubgen_services.core_apis.csv",
    ],
    defaults: ["ravenwood-internal-only-visibility-genrule"],
}

java_genrule {
    name: "services.core.ravenwood",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [
        ":services.core.ravenwood-base{ravenwood.jar}",
    ],
    out: [
        "services.core.ravenwood.jar",
    ],
}

// TODO(b/313930116) This jarjar is a bit slow. We should use hoststubgen for renaming,
// but services.core.ravenwood has complex dependencies, so it'll take more than
// just using hoststubgen "rename"s.
java_library {
    name: "services.core.ravenwood-jarjar",
    defaults: ["ravenwood-internal-only-visibility-java"],
    installable: false,
    static_libs: [
        "services.core.ravenwood",
    ],
    jarjar_rules: ":ravenwood-services-jarjar-rules",
}

// Jars in "ravenwood-runtime" are set to the classpath, sorted alphabetically.
// Rename some of the dependencies to make sure they're included in the intended order.
java_library {
    name: "100-framework-minus-apex.ravenwood",
    defaults: ["ravenwood-internal-only-visibility-java"],
    static_libs: [
        "framework-minus-apex.ravenwood",
    ],
    sdk_version: "core_platform",
    // See b/313930116. Jarjar is too slow on this jar. We use HostStubGen to do the rename.
    // jarjar_rules: ":ravenwood-framework-jarjar-rules",
}

java_genrule {
    // Use 200 to make sure it comes before the mainline stub ("all-updatable...").
    name: "200-kxml2-android",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [":kxml2-android"],
    out: ["200-kxml2-android.jar"],
}

java_genrule {
    name: "z00-all-updatable-modules-system-stubs",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [":all-updatable-modules-system-stubs"],
    out: ["z00-all-updatable-modules-system-stubs.jar"],
}
