//
// Copyright (C) 2011 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.
//

art_cc_defaults {
    name: "libart-dex2oat-defaults",
    defaults: ["art_defaults"],
    host_supported: true,
    srcs: [
        "dex/dex_to_dex_compiler.cc",
        "dex/quick_compiler_callbacks.cc",
        "driver/compiler_driver.cc",
        "linker/elf_writer.cc",
        "linker/elf_writer_quick.cc",
        "linker/image_writer.cc",
        "linker/multi_oat_relative_patcher.cc",
        "linker/oat_writer.cc",
        "linker/relative_patcher.cc",
    ],

    codegen: {
        arm: {
            srcs: [
                "linker/arm/relative_patcher_arm_base.cc",
                "linker/arm/relative_patcher_thumb2.cc",
            ],
        },
        arm64: {
            srcs: [
                "linker/arm64/relative_patcher_arm64.cc",
            ],
        },
        x86: {
            srcs: [
                "linker/x86/relative_patcher_x86.cc",
                "linker/x86/relative_patcher_x86_base.cc",
            ],
        },
        x86_64: {
            srcs: [
                "linker/x86_64/relative_patcher_x86_64.cc",
            ],
        },
    },

    generated_sources: ["art_dex2oat_operator_srcs"],
    shared_libs: [
        "libbase",

        // For SHA-1 checksumming of build ID
        "libcrypto",

        "libz",
    ],
    export_include_dirs: ["."],
}

cc_defaults {
    name: "libart-dex2oat_static_base_defaults",
    static_libs: [
        "libbase",
        "libcrypto",
        "libz",
    ],
}

gensrcs {
    name: "art_dex2oat_operator_srcs",
    cmd: "$(location generate_operator_out) art/dex2oat $(in) > $(out)",
    tools: ["generate_operator_out"],
    srcs: [
        "dex/dex_to_dex_compiler.h",
        "driver/compiler_driver.h",
        "linker/image_writer.h",
    ],
    output_extension: "operator_out.cc",
}

art_cc_library_static {
    name: "libart-dex2oat",
    defaults: ["libart-dex2oat-defaults"],
    shared_libs: [
        "libart-compiler",
        "libart-dexlayout",
        "libart",
        "libartpalette",
        "libprofile",
    ],
    apex_available: [
        "com.android.art.release",
        "com.android.art.debug",
    ],
}

cc_defaults {
    name: "libart-dex2oat_static_defaults",
    defaults: [
        "libart-dex2oat_static_base_defaults",
        "libart_static_defaults",
        "libprofile_static_defaults",
    ],
    static_libs: [
        "libart-compiler",
        "libart-dexlayout",
        "libart-dex2oat",
    ],
}

art_cc_library_static {
    name: "libartd-dex2oat",
    defaults: [
        "art_debug_defaults",
        "libart-dex2oat-defaults",
    ],
    shared_libs: [
        "libartd-compiler",
        "libartd-dexlayout",
        "libartd",
        "libartpalette",
        "libprofiled",
    ],
    apex_available: [
        "com.android.art.debug",
    ],
}

cc_defaults {
    name: "libartd-dex2oat_static_defaults",
    defaults: [
        "libart-dex2oat_static_base_defaults",
        "libartd_static_defaults",
        "libprofiled_static_defaults",
    ],
    static_libs: [
        "libartd-compiler",
        "libartd-dexlayout",
        "libartd-dex2oat",
    ],
}

cc_library_headers {
    name: "dex2oat_headers",
    visibility: [
        // TODO(b/133140750): Clean this up.
        "//frameworks/native/cmds/installd",
    ],
    host_supported: true,
    export_include_dirs: ["include"],

    apex_available: [
        "//apex_available:platform",
        "com.android.art.release",
        "com.android.art.debug",
    ],
}

cc_defaults {
    name: "dex2oat-defaults",
    host_supported: true,
    defaults: ["art_defaults"],
    srcs: [
        "dex2oat_options.cc",
        "dex2oat.cc",
    ],

    target: {
        android: {
            compile_multilib: "both",
        },
    },
    header_libs: [
        "dex2oat_headers",
        "art_cmdlineparser_headers",
    ],
}

cc_defaults {
    name: "dex2oat-pgo-defaults",
    defaults_visibility: [
        "//art:__subpackages__",
        "//external/vixl",
    ],
    pgo: {
        instrumentation: true,
        benchmarks: ["dex2oat"],
    },
    target: {
        android_arm64: {
            pgo: {
                profile_file: "art/dex2oat_arm_arm64.profdata",
            },
        },
        android_arm: {
            pgo: {
                profile_file: "art/dex2oat_arm_arm64.profdata",
            },
        },
        android_x86_64: {
            pgo: {
                profile_file: "art/dex2oat_x86_x86_64.profdata",
            },
        },
        android_x86: {
            pgo: {
                profile_file: "art/dex2oat_x86_x86_64.profdata",
            },
        },
    },
}

art_cc_binary {
    name: "dex2oat",
    defaults: [
        "dex2oat-defaults",
        "dex2oat-pgo-defaults",
    ],
    // Modules that do dexpreopting, e.g. android_app, depend implicitly on
    // either dex2oat or dex2oatd in ART source builds.
    visibility: ["//visibility:public"],
    shared_libs: [
        "libprofile",
        "libart-compiler",
        "libart-dexlayout",
        "libart",
        "libcrypto",
        "libdexfile",
        "libartbase",
        "libartpalette",
        "libbase",
        "libsigchain",
        "libz",
    ],
    static_libs: [
        "libart-dex2oat",
    ],

    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },

    pgo: {
        // Additional cflags just for dex2oat during PGO instrumentation
        cflags: [
            // Ignore frame-size increase resulting from instrumentation.
            "-Wno-frame-larger-than=",
            "-DART_PGO_INSTRUMENTATION",
        ],
    },
    target: {
        android: {
            lto: {
                thin: true,
            },
        },
        host: {
            // Override the prefer32 added by art_cc_binary when
            // HOST_PREFER_32_BIT is in use. Necessary because the logic in
            // Soong for setting ctx.Config().BuildOSTarget (used in
            // dexpreopt.RegisterToolDeps) doesn't take host prefer32 into
            // account. Note that this override cannot be in cc_defaults because
            // it'd get overridden by the load hook even when it uses
            // PrependProperties.
            compile_multilib: "64",
            symlink_preferred_arch: true,
        },
    },
    apex_available: [
        "com.android.art.release",
        "com.android.art.debug",
    ],
}

art_cc_binary {
    name: "dex2oatd",
    defaults: [
        "art_debug_defaults",
        "dex2oat-defaults",
    ],
    // Modules that do dexpreopting, e.g. android_app, depend implicitly on
    // either dex2oat or dex2oatd in ART source builds.
    visibility: ["//visibility:public"],
    shared_libs: [
        "libprofiled",
        "libartd-compiler",
        "libartd-dexlayout",
        "libartd",
        "libcrypto",
        "libdexfiled",
        "libartbased",
        "libartpalette",
        "libbase",
        "libsigchain",
        "libz",
    ],
    static_libs: [
        "libartd-dex2oat",
    ],
    target: {
        host: {
            // Override the prefer32 added by art_cc_binary when
            // HOST_PREFER_32_BIT is in use. Necessary because the logic in
            // Soong for setting ctx.Config().BuildOSTarget (used in
            // dexpreopt.RegisterToolDeps) doesn't take host prefer32 into
            // account. Note that this override cannot be in cc_defaults because
            // it'd get overridden by the load hook even when it uses
            // PrependProperties.
            compile_multilib: "64",
            symlink_preferred_arch: true,
        },
    },
    apex_available: [
        "com.android.art.debug",
    ],

    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },
}

cc_defaults {
    name: "dex2oats-defaults",
    device_supported: false,
    static_executable: true,
    defaults: [
        "dex2oat-defaults",
    ],
    target: {
        darwin: {
            enabled: false,
        },
    },
    ldflags: [
        // We need this because GC stress mode makes use of
        // _Unwind_GetIP and _Unwind_Backtrace and the symbols are also
        // defined in libgcc_eh.a(unwind-dw2.o)
        // TODO: Having this is not ideal as it might obscure errors.
        // Try to get rid of it.
        "-z muldefs",
    ],
    static_libs: [
        "libbase",
        "libsigchain_dummy",
        "libz",
    ],
}

art_cc_binary {
    name: "dex2oats",
    defaults: [
        "dex2oats-defaults",
        "libart_static_defaults",
        "libart-compiler_static_defaults",
        "libart-dexlayout_static_defaults",
        "libartbase_static_defaults",
        "libdexfile_static_defaults",
        "libprofile_static_defaults",
        "libart-dex2oat_static_defaults",
    ],
}

art_cc_binary {
    name: "dex2oatds",
    defaults: [
        "art_debug_defaults",
        "dex2oats-defaults",
        "libartd_static_defaults",
        "libartd-compiler_static_defaults",
        "libartd-dexlayout_static_defaults",
        "libartbased_static_defaults",
        "libdexfiled_static_defaults",
        "libprofiled_static_defaults",
        "libartd-dex2oat_static_defaults",
    ],
    target: {
        linux_glibc_x86_64: {
            use_clang_lld: true,
        },
    },
}

art_cc_library_static {
    name: "libart-dex2oat-gtest",
    defaults: ["libart-gtest-defaults"],
    srcs: [
        "common_compiler_driver_test.cc",
    ],
    shared_libs: [
        "libartd-compiler",
        "libartd-disassembler",
        "libart-compiler-gtest",
        "libart-runtime-gtest",
        "libbase",
    ],
    static_libs: [
        "libartd-dex2oat",
    ],
}

art_cc_test {
    name: "art_dex2oat_tests",
    defaults: [
        "art_gtest_defaults",
    ],
    data: [
        ":art-gtest-jars-AbstractMethod",
        ":art-gtest-jars-DefaultMethods",
        ":art-gtest-jars-DexToDexDecompiler",
        ":art-gtest-jars-ImageLayoutA",
        ":art-gtest-jars-ImageLayoutB",
        ":art-gtest-jars-LinkageTest",
        ":art-gtest-jars-Main",
        ":art-gtest-jars-MainEmptyUncompressed",
        ":art-gtest-jars-MainEmptyUncompressedAligned",
        ":art-gtest-jars-MainStripped",
        ":art-gtest-jars-MainUncompressedAligned",
        ":art-gtest-jars-ManyMethods",
        ":art-gtest-jars-MultiDex",
        ":art-gtest-jars-MultiDexModifiedSecondary",
        ":art-gtest-jars-MyClassNatives",
        ":art-gtest-jars-Nested",
        ":art-gtest-jars-ProfileTestMultiDex",
        ":art-gtest-jars-StaticLeafMethods",
        ":art-gtest-jars-Statics",
        ":art-gtest-jars-StringLiterals",
        ":art-gtest-jars-VerifierDeps",
        ":art-gtest-jars-VerifierDepsMulti",
        ":art-gtest-jars-VerifySoftFailDuringClinit",
    ],
    srcs: [
        "dex2oat_test.cc",
        "dex2oat_image_test.cc",
        "dex/dex_to_dex_decompiler_test.cc",
        "driver/compiler_driver_test.cc",
        "linker/elf_writer_test.cc",
        "linker/image_test.cc",
        "linker/image_write_read_test.cc",
        "linker/index_bss_mapping_encoder_test.cc",
        "linker/multi_oat_relative_patcher_test.cc",
        "linker/oat_writer_test.cc",
        "verifier_deps_test.cc",
    ],
    required: ["dex2oatd"],

    codegen: {
        arm: {
            srcs: [
                "linker/arm/relative_patcher_thumb2_test.cc",
            ],
        },
        arm64: {
            srcs: [
                "linker/arm64/relative_patcher_arm64_test.cc",
            ],
        },
        x86: {
            srcs: [
                "linker/x86/relative_patcher_x86_test.cc",
            ],
        },
        x86_64: {
            srcs: [
                "linker/x86_64/relative_patcher_x86_64_test.cc",
            ],
        },
    },

    header_libs: ["dex2oat_headers"],
    shared_libs: [
        "libartbased",
        "libartd-compiler",
        "libartd-dexlayout",
        "libartpalette",
        "libbase",
        "libcrypto",
        "libprofiled",
        "libsigchain",
        "libziparchive",
    ],
    static_libs: [
        "libart-dex2oat-gtest",
        "libartd-dex2oat",
    ],
}
