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

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

cc_defaults {
    name: "libartbase_defaults",
    defaults: ["art_defaults"],
    host_supported: true,
    srcs: [
        "arch/instruction_set.cc",
        "base/allocator.cc",
        "base/arena_allocator.cc",
        "base/arena_bit_vector.cc",
        "base/bit_vector.cc",
        "base/compiler_filter.cc",
        "base/enums.cc",
        "base/file_magic.cc",
        "base/file_utils.cc",
        "base/flags.cc",
        "base/hex_dump.cc",
        "base/logging.cc",
        "base/malloc_arena_pool.cc",
        "base/membarrier.cc",
        "base/memfd.cc",
        "base/memory_region.cc",
        "base/mem_map.cc",
        // "base/mem_map_fuchsia.cc", put in target when fuchsia supported by soong
        "base/metrics/metrics_common.cc",
        "base/os_linux.cc",
        "base/runtime_debug.cc",
        "base/safe_copy.cc",
        "base/scoped_arena_allocator.cc",
        "base/scoped_flock.cc",
        "base/socket_peer_is_trusted.cc",
        "base/time_utils.cc",
        "base/unix_file/fd_file.cc",
        "base/unix_file/random_access_file_utils.cc",
        "base/utils.cc",
        "base/zip_archive.cc",
    ],
    target: {
        android: {
            srcs: [
                "base/globals_unix.cc",
                "base/mem_map_unix.cc",
            ],
            static_libs: [
                "libcap",
                // ZipArchive support, the order matters here to get all symbols.
                "libziparchive",
            ],
            whole_static_libs: ["libtinyxml2"],
            shared_libs: [
                "libz",
                "liblog",
                // For ashmem.
                "libartpalette",
                // For common macros.
                "libbase",
            ],
            export_shared_lib_headers: ["libbase"], // ART's macros.h depends on libbase's macros.h.
            export_static_lib_headers: [
                "libcap",
            ],
        },
        not_windows: {
            srcs: [
                "base/globals_unix.cc",
                "base/mem_map_unix.cc",
            ],
            static: {
                cflags: ["-DART_STATIC_LIBARTBASE"],
            },
            whole_static_libs: ["libtinyxml2"],
            shared_libs: [
                "libziparchive",
                "libz",
                "liblog",
                // For ashmem.
                "libartpalette",
                // For common macros.
                "libbase",
            ],
            export_shared_lib_headers: ["libbase"], // ART's macros.h depends on libbase's macros.h.
        },
        linux_glibc: {
            static_libs: [
                "libcap",
            ],
            export_static_lib_headers: [
                "libcap",
            ],
        },
        windows: {
            srcs: [
                "base/mem_map_windows.cc",
            ],
            static_libs: [
                "libziparchive",
                "libz",
                "liblog",
                // For ashmem.
                "libartpalette",
                // For common macros.
                "libbase",
            ],
            whole_static_libs: ["libtinyxml2"],
            export_static_lib_headers: ["libbase"], // ART's macros.h depends on libbase's macros.h.

            cflags: ["-Wno-thread-safety"],
        },
        darwin: {
            enabled: true, // for libdexfile.
        },
    },
    generated_sources: ["art_libartbase_operator_srcs"],

    export_include_dirs: ["."],
}

cc_defaults {
    name: "libartbase_static_base_defaults",
    whole_static_libs: [
        "libbase",
        "libartpalette",
        "liblog",
        "libz",
        "libziparchive",
    ],
    target: {
        android: {
            whole_static_libs: [
                "libcap",
            ],
        },
        linux_glibc: {
            whole_static_libs: [
                "libcap",
            ],
        },
    },
}

cc_defaults {
    name: "libartbase_static_defaults",
    defaults: ["libartbase_static_base_defaults"],
    whole_static_libs: ["libartbase"],
}

cc_defaults {
    name: "libartbased_static_defaults",
    defaults: ["libartbase_static_base_defaults"],
    whole_static_libs: ["libartbased"],
}

gensrcs {
    name: "art_libartbase_operator_srcs",
    cmd: "$(location generate_operator_out) art/libartbase $(in) > $(out)",
    tools: ["generate_operator_out"],
    srcs: [
        "arch/instruction_set.h",
        "base/allocator.h",
        "base/unix_file/fd_file.h",
    ],
    output_extension: "operator_out.cc",
}

art_cc_library {
    name: "libartbase",
    defaults: [
        "libartbase_defaults",
        "libart_nativeunwind_defaults",
    ],
    visibility: [
        // TODO(b/183483755): Please visibility checks when the prebuilt
        // libartbase is present but not preferred, and the prebuilt libdexfile
        // hence depends on the source instead.
        // TODO(b/172480617): Alternatively, clean up when we no longer need to
        // support both prebuilts and sources present simultaneously.
        "//prebuilts/module_sdk/art/current/host-exports",
        // TODO(b/133140750): Clean this up.
        "//packages/modules/NetworkStack/tests:__subpackages__",
    ],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],

    shared_libs: [
        "libbase",
        "libziparchive",
    ],
    export_shared_lib_headers: ["libbase"],
    target: {
        windows: {
            enabled: true,
            shared: {
                enabled: false,
            },
        },
    },
    afdo: true,
}

art_cc_library {
    name: "libartbased",
    defaults: [
        "art_debug_defaults",
        "libartbase_defaults",
    ],
    apex_available: [
        "com.android.art.debug",
    ],
    shared_libs: [
        "libbase",
        "libziparchive",
    ],
    export_shared_lib_headers: ["libbase"],
    target: {
        windows: {
            enabled: true,
            shared: {
                enabled: false,
            },
        },
    },
}

art_cc_defaults {
    name: "libartbase-art-gtest-defaults",
    srcs: [
        "base/common_art_test.cc",
    ],
    shared_libs: [
        "libbase",
        "libunwindstack",
    ],
    header_libs: [
        "libnativehelper_header_only",
    ],
    static: {
        whole_static_libs: [
            "libc++fs",
            "libcap",
        ],
    },
    shared: {
        static_libs: [
            "libc++fs",
            "libcap",
        ],
    },
}

art_cc_library {
    name: "libartbase-art-gtest",
    defaults: [
        "libart-gtest-defaults",
        "libartbase-art-gtest-defaults",
    ],
    shared_libs: [
        "libartbase",
        "libartbase-testing",
        "libdexfile",
    ],
}

art_cc_library {
    name: "libartbased-art-gtest",
    defaults: [
        "libartd-gtest-defaults",
        "libartbase-art-gtest-defaults",
    ],
    shared_libs: [
        "libartbased",
        "libartbased-testing",
        "libdexfiled",
    ],
}

art_cc_defaults {
    name: "libartbase-testing-defaults",
    defaults: [
        "art_defaults",
    ],
    host_supported: true,
    srcs: [
        "base/testing.cc",
    ],
    shared_libs: [
        "libbase",
    ],
    apex_available: [
        "com.android.art.debug",
        // TODO(b/183882457): This lib doesn't go into com.android.art, but
        // apex_available lists need to be the same for internal libs to avoid
        // stubs, and this depends on libdexfiled and others.
        "com.android.art",
    ],
}

art_cc_library {
    name: "libartbase-testing",
    defaults: [
        "libartbase-testing-defaults",
    ],
    shared_libs: [
        "libartbase",
    ],
}

art_cc_library {
    name: "libartbased-testing",
    defaults: [
        "libartbase-testing-defaults",
    ],
    shared_libs: [
        "libartbased",
    ],
}

art_cc_defaults {
    name: "art_libartbase_tests_defaults",
    tidy_timeout_srcs: [
        "base/bit_utils_test.cc",
        "base/intrusive_forward_list_test.cc",
    ],
    srcs: [
        "arch/instruction_set_test.cc",
        "base/arena_allocator_test.cc",
        "base/bit_field_test.cc",
        "base/bit_memory_region_test.cc",
        "base/bit_string_test.cc",
        "base/bit_struct_test.cc",
        "base/bit_table_test.cc",
        "base/bit_utils_test.cc",
        "base/bit_vector_test.cc",
        "base/compiler_filter_test.cc",
        "base/file_utils_test.cc",
        "base/flags_test.cc",
        "base/hash_map_test.cc",
        "base/hash_set_test.cc",
        "base/hex_dump_test.cc",
        "base/histogram_test.cc",
        "base/indenter_test.cc",
        "base/intrusive_forward_list_test.cc",
        "base/leb128_test.cc",
        "base/logging_test.cc",
        "base/memfd_test.cc",
        "base/membarrier_test.cc",
        "base/memory_region_test.cc",
        "base/mem_map_test.cc",
        "base/metrics/metrics_test.cc",
        "base/safe_copy_test.cc",
        "base/scoped_flock_test.cc",
        "base/time_utils_test.cc",
        "base/transform_array_ref_test.cc",
        "base/transform_iterator_test.cc",
        "base/unix_file/fd_file_test.cc",
        "base/utils_test.cc",
        "base/variant_map_test.cc",
        "base/zip_archive_test.cc",
    ],
    shared_libs: [
        "libbase",
    ],
    static_libs: [
        "libgmock",
    ],
}

// Version of ART gtest `art_libartbase_tests` bundled with the ART APEX on target.
// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
art_cc_test {
    name: "art_libartbase_tests",
    defaults: [
        "art_gtest_defaults",
        "art_libartbase_tests_defaults",
    ],
}

// Standalone version of ART gtest `art_libartbase_tests`, not bundled with the ART APEX on target.
art_cc_test {
    name: "art_standalone_libartbase_tests",
    defaults: [
        "art_standalone_gtest_defaults",
        "art_libartbase_tests_defaults",
    ],
    data: [":generate-boot-image"],
    test_config_template: ":art-gtests-target-standalone-with-boot-image-template",
}

cc_library_headers {
    name: "art_libartbase_headers",
    defaults: ["art_defaults"],
    host_supported: true,
    export_include_dirs: ["."],
    shared_libs: ["libbase"],
    export_shared_lib_headers: ["libbase"],

    whole_static_libs: ["libtinyxml2"],

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