//
// 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"],
    default_team: "trendy_team_art_performance",
}

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/file_magic.cc",
        "base/file_utils.cc",
        "base/flags.cc",
        "base/hex_dump.cc",
        "base/logging.cc",
        "base/calloc_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/pointer_size.cc",
        "base/runtime_debug.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",
    ],
    arch: {
        riscv64: {
            srcs: [
                "arch/riscv64/sbc_v_adraln_workaround.cc",
            ],
        },
    },
    target: {
        android: {
            srcs: [
                "base/globals_unix.cc",
                "base/mem_map_unix.cc",
            ],
            static: {
                cflags: ["-DART_STATIC_LIBARTBASE"],
            },
            static_libs: [
                "libcap",
                "libmodules-utils-build",
                // 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.
        },
        host_linux: {
            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.
            // TODO(b/350967139): Move art-aconfig-flags-lib to the top level
            // when aconfig supports windows. Until then it's harder to use
            // flags in code that needs to build for them, e.g. libartbase,
            // libdexfile, and dexdump.
            static_libs: [
                "art-aconfig-flags-lib",
                "art-aconfig-rw-flags-lib",
                "libaconfig_storage_read_api_cc",
                "libcore-aconfig-flags-native-lib",
            ],
            export_static_lib_headers: [
                "art-aconfig-flags-lib",
                "art-aconfig-rw-flags-lib",
                "libcore-aconfig-flags-native-lib",
            ],
        },
        linux: {
            // TODO(b/350967139): Move art-aconfig-flags-lib to the top level
            // when aconfig supports windows. Until then it's harder to use
            // flags in code that needs to build for them, e.g. libartbase,
            // libdexfile, and dexdump.
            static_libs: [
                "art-aconfig-flags-lib",
                "art-aconfig-rw-flags-lib",
                "libaconfig_storage_read_api_cc",
                "libcore-aconfig-flags-native-lib",
            ],
            export_static_lib_headers: [
                "art-aconfig-flags-lib",
                "art-aconfig-rw-flags-lib",
                "libcore-aconfig-flags-native-lib",
            ],
        },
    },
    generated_sources: ["art_libartbase_operator_srcs"],

    export_include_dirs: ["."],
}

cc_defaults {
    name: "libartbase_static_base_defaults",
    defaults: [
        "art_liblog_static_defaults",
        "art_libz_static_defaults",
    ],
    whole_static_libs: [
        "libbase",
        "libartpalette",
        "libziparchive",
    ],
    target: {
        android: {
            whole_static_libs: [
                "libcap",
            ],
        },
        host_linux: {
            whole_static_libs: [
                "libcap",
            ],
        },
        darwin: {
            whole_static_libs: [
                "art-aconfig-flags-lib",
                "art-aconfig-rw-flags-lib",
                "libaconfig_storage_read_api_cc",
            ],
        },
        linux: {
            // TODO(b/350967139): Move art-aconfig-flags-lib to the top level
            // when aconfig supports windows. Until then it's harder to use
            // flags in code that needs to build for them, e.g. libartbase,
            // libdexfile, and dexdump.
            whole_static_libs: [
                "art-aconfig-flags-lib",
                "art-aconfig-rw-flags-lib",
                "libaconfig_storage_read_api_cc",
            ],
        },

    },
}

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",
    ],

    target: {
        windows: {
            // Control the enabled property here rather than in
            // libartbase_defaults, to ensure it overrides properties inherited
            // from other defaults.
            enabled: true,
            shared: {
                enabled: false,
            },
        },
    },
    afdo: true,
}

art_cc_library {
    name: "libartbased",
    defaults: [
        "art_debug_defaults",
        "libartbase_defaults",
    ],
    apex_available: [
        "com.android.art.debug",
    ],

    target: {
        windows: {
            // Control the enabled property here rather than in
            // libartbase_defaults, to ensure it overrides properties inherited
            // from other defaults, in particular any inherited via
            // art_debug_defaults.
            enabled: true,
            shared: {
                enabled: false,
            },
        },
    },
}

cc_defaults {
    name: "libartbase-art-gtest-defaults",
    defaults: ["libart-gtest-defaults"],
    srcs: [
        "base/common_art_test.cc",
    ],
    header_libs: [
        "libnativehelper_header_only",
        // Required for "base/mutex.h" in common_art_test.cc
        "libart_headers",
    ],
    shared_libs: [ // Since we're building static libs we're only using the headers from this.
        "libdexfile",
    ],
}

cc_library_static {
    name: "libartbase-art-gtest",
    defaults: [
        "libartbase-art-gtest-defaults",
    ],
}

cc_defaults {
    name: "libartbase-art-gtest_static_defaults",
    defaults: [
        "libartbase_static_defaults",
        "libdexfile_static_defaults",
    ],
    whole_static_libs: [
        "libartbase-art-gtest",
    ],
}

cc_library_static {
    name: "libartbased-art-gtest",
    defaults: [
        "art_debug_defaults",
        "libartbase-art-gtest-defaults",
    ],
}

cc_defaults {
    name: "libartbased-art-gtest_static_defaults",
    defaults: [
        "libartbased_static_defaults",
        "libdexfiled_static_defaults",
    ],
    whole_static_libs: [
        "libartbase-art-gtest",
    ],
}

art_cc_library_static {
    name: "libartbase-testing",
    defaults: [
        "art_defaults",
    ],
    host_supported: true,
    srcs: [
        "base/testing.cc",
    ],
    header_libs: ["art_libartbase_headers"],
    export_header_lib_headers: ["art_libartbase_headers"],
}

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/aconfig_flags_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/mem_map_test.cc",
        "base/membarrier_test.cc",
        "base/memfd_test.cc",
        "base/memory_region_test.cc",
        "base/metrics/metrics_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",
    ],
    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",
    ],
}
