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

// Keep the __jit_debug_register_code symbol as a unique symbol during ICF for architectures where
// we use gold as the linker (arm, x86, x86_64). The symbol is used by the debuggers to detect when
// new jit code is generated. We don't want it to be called when a different function with the same
// (empty) body is called.
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"],
}

JIT_DEBUG_REGISTER_CODE_LDFLAGS = [
    "-Wl,--keep-unique,__jit_debug_register_code",
    "-Wl,--keep-unique,__dex_debug_register_code",
]

// These are defaults for native shared libaries that are expected to be
// in stack traces often.
libart_cc_defaults {
    name: "libart_nativeunwind_defaults",
    target: {
        android_arm: {
            // Arm 32 bit does not produce complete exidx unwind information
            // so keep the .debug_frame which is relatively small and does
            // include needed unwind information.
            // See b/132992102 and b/145790995 for details.
            strip: {
                keep_symbols_and_debug_frame: true,
            },
        },
        // For all other architectures, leave the symbols in the shared library
        // so that stack unwinders can produce meaningful name resolution.
        android_arm64: {
            strip: {
                keep_symbols: true,
            },
        },
        android_x86: {
            strip: {
                keep_symbols: true,
            },
        },
        android_x86_64: {
            strip: {
                keep_symbols: true,
            },
        },
    },
}

cc_library_headers {
    name: "libart_headers",
    defaults: ["art_defaults"],
    host_supported: true,

    export_include_dirs: ["."],

    // ART's macros.h depends on libbase's macros.h.
    // Note: runtime_options.h depends on cmdline. But we don't really want to export this
    //       generically. dex2oat takes care of it itself.
    header_libs: ["art_libartbase_headers"],
    export_header_lib_headers: ["art_libartbase_headers"],

    // We optimize Thread::Current() with a direct TLS access. This requires
    // access to a platform specific Bionic header.
    target: {
        android: {
            header_libs: ["bionic_libc_platform_headers"],
            export_header_lib_headers: ["bionic_libc_platform_headers"],
        },
        linux_bionic: {
            header_libs: ["bionic_libc_platform_headers"],
            export_header_lib_headers: ["bionic_libc_platform_headers"],
        },
    },

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

libart_cc_defaults {
    name: "libart_defaults",
    defaults: ["art_defaults"],
    host_supported: true,
    srcs: [
        "app_info.cc",
        "aot_class_linker.cc",
        "art_field.cc",
        "sdk_checker.cc",
        "art_method.cc",
        "backtrace_helper.cc",
        "barrier.cc",
        "base/locks.cc",
        "base/mem_map_arena_pool.cc",
        "base/mutex.cc",
        "base/quasi_atomic.cc",
        "base/timing_logger.cc",
        "cha.cc",
        "class_linker.cc",
        "class_loader_context.cc",
        "class_root.cc",
        "class_table.cc",
        "common_throws.cc",
        "compat_framework.cc",
        "debug_print.cc",
        "debugger.cc",
        "dex/dex_file_annotations.cc",
        "dex_register_location.cc",
        "elf_file.cc",
        "exec_utils.cc",
        "fault_handler.cc",
        "gc/allocation_record.cc",
        "gc/allocator/dlmalloc.cc",
        "gc/allocator/rosalloc.cc",
        "gc/accounting/bitmap.cc",
        "gc/accounting/card_table.cc",
        "gc/accounting/heap_bitmap.cc",
        "gc/accounting/mod_union_table.cc",
        "gc/accounting/remembered_set.cc",
        "gc/accounting/space_bitmap.cc",
        "gc/collector/concurrent_copying.cc",
        "gc/collector/garbage_collector.cc",
        "gc/collector/immune_region.cc",
        "gc/collector/immune_spaces.cc",
        "gc/collector/mark_sweep.cc",
        "gc/collector/partial_mark_sweep.cc",
        "gc/collector/semi_space.cc",
        "gc/collector/sticky_mark_sweep.cc",
        "gc/gc_cause.cc",
        "gc/heap.cc",
        "gc/reference_processor.cc",
        "gc/reference_queue.cc",
        "gc/scoped_gc_critical_section.cc",
        "gc/space/bump_pointer_space.cc",
        "gc/space/dlmalloc_space.cc",
        "gc/space/image_space.cc",
        "gc/space/large_object_space.cc",
        "gc/space/malloc_space.cc",
        "gc/space/region_space.cc",
        "gc/space/rosalloc_space.cc",
        "gc/space/space.cc",
        "gc/space/zygote_space.cc",
        "gc/task_processor.cc",
        "gc/verification.cc",
        "handle.cc",
        "hidden_api.cc",
        "hprof/hprof.cc",
        "image.cc",
        "index_bss_mapping.cc",
        "indirect_reference_table.cc",
        "instrumentation.cc",
        "intern_table.cc",
        "interpreter/interpreter.cc",
        "interpreter/interpreter_cache.cc",
        "interpreter/interpreter_common.cc",
        "interpreter/interpreter_intrinsics.cc",
        "interpreter/interpreter_switch_impl0.cc",
        "interpreter/interpreter_switch_impl1.cc",
        "interpreter/interpreter_switch_impl2.cc",
        "interpreter/interpreter_switch_impl3.cc",
        "interpreter/lock_count_data.cc",
        "interpreter/shadow_frame.cc",
        "interpreter/unstarted_runtime.cc",
        "java_frame_root_info.cc",
        "javaheapprof/javaheapsampler.cc",
        "jit/debugger_interface.cc",
        "jit/jit.cc",
        "jit/jit_code_cache.cc",
        "jit/jit_memory_region.cc",
        "jit/profiling_info.cc",
        "jit/profile_saver.cc",
        "jni/check_jni.cc",
        "jni/java_vm_ext.cc",
        "jni/jni_env_ext.cc",
        "jni/jni_id_manager.cc",
        "jni/jni_internal.cc",
        "linear_alloc.cc",
        "method_handles.cc",
        "metrics/reporter.cc",
        "mirror/array.cc",
        "mirror/class.cc",
        "mirror/class_ext.cc",
        "mirror/dex_cache.cc",
        "mirror/emulated_stack_frame.cc",
        "mirror/executable.cc",
        "mirror/field.cc",
        "mirror/method.cc",
        "mirror/method_handle_impl.cc",
        "mirror/method_handles_lookup.cc",
        "mirror/method_type.cc",
        "mirror/object.cc",
        "mirror/stack_trace_element.cc",
        "mirror/string.cc",
        "mirror/throwable.cc",
        "mirror/var_handle.cc",
        "monitor.cc",
        "monitor_objects_stack_visitor.cc",
        "native_bridge_art_interface.cc",
        "native_stack_dump.cc",
        "native/dalvik_system_DexFile.cc",
        "native/dalvik_system_BaseDexClassLoader.cc",
        "native/dalvik_system_VMDebug.cc",
        "native/dalvik_system_VMRuntime.cc",
        "native/dalvik_system_VMStack.cc",
        "native/dalvik_system_ZygoteHooks.cc",
        "native/java_lang_Class.cc",
        "native/java_lang_Object.cc",
        "native/java_lang_String.cc",
        "native/java_lang_StringFactory.cc",
        "native/java_lang_System.cc",
        "native/java_lang_Thread.cc",
        "native/java_lang_Throwable.cc",
        "native/java_lang_VMClassLoader.cc",
        "native/java_lang_invoke_MethodHandle.cc",
        "native/java_lang_invoke_MethodHandleImpl.cc",
        "native/java_lang_ref_FinalizerReference.cc",
        "native/java_lang_ref_Reference.cc",
        "native/java_lang_reflect_Array.cc",
        "native/java_lang_reflect_Constructor.cc",
        "native/java_lang_reflect_Executable.cc",
        "native/java_lang_reflect_Field.cc",
        "native/java_lang_reflect_Method.cc",
        "native/java_lang_reflect_Parameter.cc",
        "native/java_lang_reflect_Proxy.cc",
        "native/java_util_concurrent_atomic_AtomicLong.cc",
        "native/libcore_io_Memory.cc",
        "native/libcore_util_CharsetUtils.cc",
        "native/org_apache_harmony_dalvik_ddmc_DdmServer.cc",
        "native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc",
        "native/sun_misc_Unsafe.cc",
        "native/jdk_internal_misc_Unsafe.cc",
        "non_debuggable_classes.cc",
        "nterp_helpers.cc",
        "oat.cc",
        "oat_file.cc",
        "oat_file_assistant.cc",
        "oat_file_manager.cc",
        "oat_quick_method_header.cc",
        "object_lock.cc",
        "offsets.cc",
        "parsed_options.cc",
        "plugin.cc",
        "quick_exception_handler.cc",
        "read_barrier.cc",
        "reference_table.cc",
        "reflection.cc",
        "reflective_handle_scope.cc",
        "reflective_value_visitor.cc",
        "runtime.cc",
        "runtime_callbacks.cc",
        "runtime_common.cc",
        "runtime_intrinsics.cc",
        "runtime_options.cc",
        "scoped_thread_state_change.cc",
        "signal_catcher.cc",
        "stack.cc",
        "stack_map.cc",
        "string_builder_append.cc",
        "thread.cc",
        "thread_list.cc",
        "thread_pool.cc",
        "ti/agent.cc",
        "trace.cc",
        "transaction.cc",
        "var_handles.cc",
        "vdex_file.cc",
        "verifier/class_verifier.cc",
        "verifier/instruction_flags.cc",
        "verifier/method_verifier.cc",
        "verifier/reg_type.cc",
        "verifier/reg_type_cache.cc",
        "verifier/register_line.cc",
        "verifier/verifier_deps.cc",
        "verify_object.cc",
        "well_known_classes.cc",

        "arch/context.cc",
        "arch/instruction_set_features.cc",
        "arch/memcmp16.cc",
        "arch/arm/instruction_set_features_arm.cc",
        "arch/arm/registers_arm.cc",
        "arch/arm64/instruction_set_features_arm64.cc",
        "arch/arm64/registers_arm64.cc",
        "arch/x86/instruction_set_features_x86.cc",
        "arch/x86/registers_x86.cc",
        "arch/x86_64/registers_x86_64.cc",
        "entrypoints/entrypoint_utils.cc",
        "entrypoints/jni/jni_entrypoints.cc",
        "entrypoints/math_entrypoints.cc",
        "entrypoints/quick/quick_alloc_entrypoints.cc",
        "entrypoints/quick/quick_cast_entrypoints.cc",
        "entrypoints/quick/quick_deoptimization_entrypoints.cc",
        "entrypoints/quick/quick_dexcache_entrypoints.cc",
        "entrypoints/quick/quick_entrypoints_enum.cc",
        "entrypoints/quick/quick_field_entrypoints.cc",
        "entrypoints/quick/quick_fillarray_entrypoints.cc",
        "entrypoints/quick/quick_jni_entrypoints.cc",
        "entrypoints/quick/quick_lock_entrypoints.cc",
        "entrypoints/quick/quick_math_entrypoints.cc",
        "entrypoints/quick/quick_string_builder_append_entrypoints.cc",
        "entrypoints/quick/quick_thread_entrypoints.cc",
        "entrypoints/quick/quick_throw_entrypoints.cc",
        "entrypoints/quick/quick_trampoline_entrypoints.cc",
    ],

    arch: {
        arm: {
            srcs: [
                "interpreter/mterp/nterp.cc",
                ":libart_mterp.armng",
                "arch/arm/context_arm.cc",
                "arch/arm/entrypoints_init_arm.cc",
                "arch/arm/instruction_set_features_assembly_tests.S",
                "arch/arm/jni_entrypoints_arm.S",
                "arch/arm/memcmp16_arm.S",
                "arch/arm/quick_entrypoints_arm.S",
                "arch/arm/quick_entrypoints_cc_arm.cc",
                "arch/arm/thread_arm.cc",
                "arch/arm/fault_handler_arm.cc",
            ],
        },
        arm64: {
            srcs: [
                "interpreter/mterp/nterp.cc",
                ":libart_mterp.arm64ng",
                "arch/arm64/context_arm64.cc",
                "arch/arm64/entrypoints_init_arm64.cc",
                "arch/arm64/jni_entrypoints_arm64.S",
                "arch/arm64/memcmp16_arm64.S",
                "arch/arm64/quick_entrypoints_arm64.S",
                "arch/arm64/thread_arm64.cc",
                "monitor_pool.cc",
                "arch/arm64/fault_handler_arm64.cc",
            ],
        },
        x86: {
            srcs: [
                "interpreter/mterp/nterp.cc",
                ":libart_mterp.x86ng",
                "arch/x86/context_x86.cc",
                "arch/x86/entrypoints_init_x86.cc",
                "arch/x86/jni_entrypoints_x86.S",
                "arch/x86/memcmp16_x86.S",
                "arch/x86/quick_entrypoints_x86.S",
                "arch/x86/thread_x86.cc",
                "arch/x86/fault_handler_x86.cc",
            ],
            avx: {
                asflags: ["-DMTERP_USE_AVX"],
            },
            avx2: {
                asflags: ["-DMTERP_USE_AVX"],
            },
        },
        x86_64: {
            srcs: [
                // Note that the fault_handler_x86.cc is not a mistake.  This file is
                // shared between the x86 and x86_64 architectures.
                "interpreter/mterp/nterp.cc",
                ":libart_mterp.x86_64ng",
                "arch/x86_64/context_x86_64.cc",
                "arch/x86_64/entrypoints_init_x86_64.cc",
                "arch/x86_64/jni_entrypoints_x86_64.S",
                "arch/x86_64/memcmp16_x86_64.S",
                "arch/x86_64/quick_entrypoints_x86_64.S",
                "arch/x86_64/thread_x86_64.cc",
                "monitor_pool.cc",
                "arch/x86/fault_handler_x86.cc",
            ],
            avx: {
                asflags: ["-DMTERP_USE_AVX"],
            },
            avx2: {
                asflags: ["-DMTERP_USE_AVX"],
            },
        },
    },

    target: {
        android: {
            srcs: [
                "monitor_android.cc",
                "runtime_android.cc",
                "thread_android.cc",
                "metrics/statsd.cc",
            ],
            header_libs: [
                "libnativeloader-headers", // For dlext_namespaces.h
            ],
            shared_libs: [
                "libdl_android",
                "libstatssocket",
                "libz", // For adler32.
                "heapprofd_client_api",
            ],
            static_libs: [
                "libstatslog_art",
                "libtinyxml2",
            ],
            generated_sources: [
                "apex-info-list-tinyxml",
            ],
        },
        android_arm: {
            ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
        },
        android_arm64: {
            ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
        },
        android_x86: {
            ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
        },
        android_x86_64: {
            ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
        },
        host: {
            srcs: [
                "monitor_linux.cc",
                "runtime_linux.cc",
                "thread_linux.cc",
            ],
            shared_libs: [
                "libz", // For adler32.
            ],
        },
    },

    generated_sources: [
        "art_operator_srcs",
    ],
    // asm_support_gen.h (used by asm_support.h) is generated with cpp-define-generator
    generated_headers: ["cpp-define-generator-asm-support"],
    // export our headers so the libart(d)-gtest targets can use it as well.
    export_generated_headers: ["cpp-define-generator-asm-support"],

    header_libs: [
        "art_cmdlineparser_headers",
        "cpp-define-generator-definitions",
        "jni_platform_headers",
        "libart_headers",
        "libnativehelper_header_only",
    ],
    export_header_lib_headers: ["libart_headers"],
    whole_static_libs: [
        "libcpu_features",
    ],
    shared_libs: [
        "libartpalette",
        "libbacktrace",
        "libbase", // For common macros.
        "liblog",
        "liblz4",
        "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib.
        "libnativebridge",
        "libnativeloader",
        "libsigchain",
        "libunwindstack",
    ],
    static_libs: ["libodrstatslog"],

    runtime_libs: [
        // Libraries loaded at runtime. Exceptions:
        // - libart(d)-compiler.so and libopenjdk(d).so cannot be listed here
        //   due to cyclic dependency.
        // - libicu_jni.so is only loaded to handle dependency order in VM
        //   startup (see Runtime::InitNativeMethods), but its API is internal
        //   to com.android.i18n and not used by ART/libcore. Therefore it's not
        //   listed here to avoid visibility issues. Instead it's linked from
        //   the ART module namespace through an entry in requireNativeLibs in
        //   manifest-art.json.
        "libjavacore",
    ],
}

libart_static_cc_defaults {
    name: "libart_static_base_defaults",
    whole_static_libs: [
        "libartpalette",
        "libbacktrace",
        "libbase",
        "liblog",
        "liblz4",
        "liblzma", // libelffile dependency; must be repeated here since it's a static lib.
        "libnativebridge",
        "libnativeloader",
        "libodrstatslog",
        "libsigchain_fake",
        "libunwindstack",
        "libz",
    ],
    target: {
        bionic: {
            whole_static_libs: [
                "libasync_safe", // libunwindstack dependency on Bionic.
            ],
        },
    },
}

cc_defaults {
    name: "libart_static_defaults",
    defaults: [
        "libart_static_base_defaults",
        "libartbase_static_defaults",
        "libdexfile_static_defaults",
        "libdexfile_support_static_defaults",
        "libprofile_static_defaults",
    ],
    whole_static_libs: [
        "libart",
        "libelffile",
    ],
}

cc_defaults {
    name: "libartd_static_defaults",
    defaults: [
        "libart_static_base_defaults",
        "libartbased_static_defaults",
        "libdexfiled_static_defaults",
        "libdexfiled_support_static_defaults",
        "libprofiled_static_defaults",
    ],
    whole_static_libs: [
        "libartd",
        "libelffiled",
    ],
}

gensrcs {
    name: "art_operator_srcs",
    cmd: "$(location generate_operator_out) art/runtime $(in) > $(out)",
    tools: ["generate_operator_out"],
    srcs: [
        "base/callee_save_type.h",
        "base/locks.h",
        "class_status.h",
        "compilation_kind.h",
        "gc_root.h",
        "gc/allocator_type.h",
        "gc/allocator/rosalloc.h",
        "gc/collector_type.h",
        "gc/collector/gc_type.h",
        "gc/space/region_space.h",
        "gc/space/space.h",
        "gc/weak_root_state.h",
        "image.h",
        "instrumentation.h",
        "indirect_reference_table.h",
        "jdwp_provider.h",
        "jni_id_type.h",
        "lock_word.h",
        "oat_file.h",
        "process_state.h",
        "reflective_value_visitor.h",
        "stack.h",
        "suspend_reason.h",
        "thread.h",
        "thread_state.h",
        "trace.h",
        "verifier/verifier_enums.h",
    ],
    output_extension: "operator_out.cc",
}

// We always build dex2oat and dependencies, even if the host build is otherwise disabled, since
// they are used to cross compile for the target.

// Properties common to `libart` and `libart-broken`.
art_cc_defaults {
    name: "libart_common_defaults",
    defaults: [
        "libart_defaults",
        "libart_nativeunwind_defaults",
        "art_hugepage_defaults",
    ],
    whole_static_libs: [
    ],
    static_libs: [
        "libelffile",
    ],
    shared_libs: [
        "libartbase",
        "libdexfile",
        "libprofile",
    ],
    export_shared_lib_headers: [
        "libdexfile",
    ],
    target: {
        android: {
            lto: {
                thin: true,
            },
        },
    },
}

// Release version of the ART runtime library.
art_cc_library {
    name: "libart",
    defaults: ["libart_common_defaults"],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
    afdo: true,
}

// "Broken" version of the ART runtime library, used only for testing.
art_cc_test_library {
    name: "libart-broken",
    defaults: ["libart_common_defaults"],
    stem: "libart",
    gtest: false,
    cflags: ["-DART_CRASH_RUNTIME_DELIBERATELY"],
    apex_available: [
        "test_broken_com.android.art",
    ],
}

// Debug version of the ART runtime library.
art_cc_library {
    name: "libartd",
    defaults: [
        "art_debug_defaults",
        "libart_defaults",
    ],
    whole_static_libs: [
    ],
    static_libs: [
        "libelffiled",
    ],
    shared_libs: [
        "libartbased",
        "libdexfiled",
        "libprofiled",
    ],
    export_shared_lib_headers: [
        "libdexfiled",
    ],
    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 libsigchain.
        "com.android.art",
    ],
}

art_cc_defaults {
    name: "libart-runtime-gtest-defaults",
    tidy_timeout_srcs: [
        "common_runtime_test.cc",
    ],
    srcs: [
        "common_runtime_test.cc",
        "dexopt_test.cc",
    ],
    shared_libs: [
        "libbase",
    ],
    static_libs: [
        "libprocinfo",
    ],
    header_libs: [
        "libnativehelper_header_only",
    ],
}

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

art_cc_library {
    name: "libartd-runtime-gtest",
    defaults: [
        "libart-runtime-gtest-defaults",
        "libartd-gtest-defaults",
    ],
    shared_libs: [
        "libartd",
        "libartbased-art-gtest",
    ],
}

art_cc_defaults {
    name: "art_runtime_tests_defaults",
    data: [
        ":art-gtest-jars-AllFields",
        ":art-gtest-jars-ErroneousA",
        ":art-gtest-jars-ErroneousB",
        ":art-gtest-jars-ErroneousInit",
        ":art-gtest-jars-Extension1",
        ":art-gtest-jars-Extension2",
        ":art-gtest-jars-ForClassLoaderA",
        ":art-gtest-jars-ForClassLoaderB",
        ":art-gtest-jars-ForClassLoaderC",
        ":art-gtest-jars-ForClassLoaderD",
        ":art-gtest-jars-HiddenApiSignatures",
        ":art-gtest-jars-IMTA",
        ":art-gtest-jars-IMTB",
        ":art-gtest-jars-Instrumentation",
        ":art-gtest-jars-Interfaces",
        ":art-gtest-jars-LinkageTest",
        ":art-gtest-jars-Main",
        ":art-gtest-jars-MainStripped",
        ":art-gtest-jars-MainUncompressedAligned",
        ":art-gtest-jars-MethodTypes",
        ":art-gtest-jars-MultiDex",
        ":art-gtest-jars-MultiDexModifiedSecondary",
        ":art-gtest-jars-MultiDexUncompressedAligned",
        ":art-gtest-jars-MyClass",
        ":art-gtest-jars-MyClassNatives",
        ":art-gtest-jars-Nested",
        ":art-gtest-jars-Packages",
        ":art-gtest-jars-ProfileTestMultiDex",
        ":art-gtest-jars-ProtoCompare",
        ":art-gtest-jars-ProtoCompare2",
        ":art-gtest-jars-StaticLeafMethods",
        ":art-gtest-jars-Statics",
        ":art-gtest-jars-StaticsFromCode",
        ":art-gtest-jars-Transaction",
        ":art-gtest-jars-VerifierDeps",
        ":art-gtest-jars-VerifierDepsMulti",
        ":art-gtest-jars-XandY",
    ],
    tidy_timeout_srcs: [
        "arch/stub_test.cc",
        "class_linker_test.cc",
        "class_loader_context_test.cc",
        "hidden_api_test.cc",
        "instrumentation_test.cc",
        "interpreter/unstarted_runtime_test.cc",
        "jni/jni_internal_test.cc",
        "method_handles_test.cc",
        "mirror/object_test.cc",
        "mirror/var_handle_test.cc",
        "oat_file_assistant_test.cc",
        "runtime_callbacks_test.cc",
        "subtype_check_test.cc",
        "transaction_test.cc",
        "verifier/reg_type_test.cc",
    ],
    srcs: [
        "app_info_test.cc",
        "arch/arch_test.cc",
        "arch/instruction_set_features_test.cc",
        "arch/memcmp16_test.cc",
        "arch/stub_test.cc",
        "arch/arm/instruction_set_features_arm_test.cc",
        "arch/arm64/instruction_set_features_arm64_test.cc",
        "arch/x86/instruction_set_features_x86_test.cc",
        "arch/x86_64/instruction_set_features_x86_64_test.cc",
        "barrier_test.cc",
        "base/message_queue_test.cc",
        "base/mutex_test.cc",
        "base/timing_logger_test.cc",
        "cha_test.cc",
        "class_linker_test.cc",
        "class_loader_context_test.cc",
        "class_table_test.cc",
        "entrypoints/math_entrypoints_test.cc",
        "entrypoints/quick/quick_trampoline_entrypoints_test.cc",
        "entrypoints_order_test.cc",
        "exec_utils_test.cc",
        "gc/accounting/card_table_test.cc",
        "gc/accounting/mod_union_table_test.cc",
        "gc/accounting/space_bitmap_test.cc",
        "gc/collector/immune_spaces_test.cc",
        "gc/heap_test.cc",
        "gc/heap_verification_test.cc",
        "gc/reference_queue_test.cc",
        "gc/space/dlmalloc_space_static_test.cc",
        "gc/space/dlmalloc_space_random_test.cc",
        "gc/space/image_space_test.cc",
        "gc/space/large_object_space_test.cc",
        "gc/space/rosalloc_space_static_test.cc",
        "gc/space/rosalloc_space_random_test.cc",
        "gc/space/space_create_test.cc",
        "gc/system_weak_test.cc",
        "gc/task_processor_test.cc",
        "gtest_test.cc",
        "handle_scope_test.cc",
        "hidden_api_test.cc",
        "imtable_test.cc",
        "indirect_reference_table_test.cc",
        "instrumentation_test.cc",
        "intern_table_test.cc",
        "interpreter/safe_math_test.cc",
        "interpreter/unstarted_runtime_test.cc",
        "jit/jit_memory_region_test.cc",
        "jit/profile_saver_test.cc",
        "jit/profiling_info_test.cc",
        "jni/java_vm_ext_test.cc",
        "jni/jni_internal_test.cc",
        "method_handles_test.cc",
        "metrics/reporter_test.cc",
        "mirror/dex_cache_test.cc",
        "mirror/method_type_test.cc",
        "mirror/object_test.cc",
        "mirror/var_handle_test.cc",
        "monitor_pool_test.cc",
        "monitor_test.cc",
        "oat_file_test.cc",
        "oat_file_assistant_test.cc",
        "parsed_options_test.cc",
        "prebuilt_tools_test.cc",
        "proxy_test.cc",
        "reference_table_test.cc",
        "runtime_callbacks_test.cc",
        "runtime_test.cc",
        "subtype_check_info_test.cc",
        "subtype_check_test.cc",
        "thread_pool_test.cc",
        "transaction_test.cc",
        "two_runtimes_test.cc",
        "vdex_file_test.cc",
        "verifier/method_verifier_test.cc",
        "verifier/reg_type_test.cc",
    ],
    shared_libs: [
        "libbacktrace",
    ],
    header_libs: [
        "art_cmdlineparser_headers", // For parsed_options_test.
    ],
}

// Version of ART gtest `art_runtime_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_runtime_tests",
    defaults: [
        "art_gtest_defaults",
        "art_runtime_tests_defaults",
    ],
    target: {
        host: {
            required: ["dex2oatd"],
        },
    },
}

// Standalone version of ART gtest `art_runtime_tests`, not bundled with the ART APEX on target.
art_cc_test {
    name: "art_standalone_runtime_tests",
    defaults: [
        "art_standalone_gtest_defaults",
        "art_runtime_tests_defaults",
    ],
    target: {
        host: {
            required: ["dex2oat"],
        },
    },
    // Some tests are currently failing (observed on
    // `aosp_cf_x86_64_phone-userdebug`); use a special test configuration for
    // `art_standalone_runtime_tests` to filter them out for now.
    // TODO(b/204649079): Investigate these failures and re-enable these tests.
    test_config: "art_standalone_runtime_tests.xml",
}

art_cc_defaults {
    name: "art_runtime_compiler_tests_defaults",
    tidy_timeout_srcs: [
        "reflection_test.cc",
    ],
    srcs: [
        "reflection_test.cc",
    ],
    data: [
        ":art-gtest-jars-Main",
        ":art-gtest-jars-NonStaticLeafMethods",
        ":art-gtest-jars-StaticLeafMethods",
    ],
}

// Version of ART gtest `art_runtime_compiler_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_runtime_compiler_tests",
    defaults: [
        "art_gtest_defaults",
        "art_runtime_compiler_tests_defaults",
    ],
    shared_libs: [
        "libartd-compiler",
    ],
    target: {
        host: {
            required: ["dex2oatd"],
        },
    },
}

// Standalone version of ART gtest `art_runtime_compiler_tests`, not bundled with the ART APEX on
// target.
art_cc_test {
    name: "art_standalone_runtime_compiler_tests",
    defaults: [
        "art_standalone_gtest_defaults",
        "art_runtime_compiler_tests_defaults",
    ],
    shared_libs: [
        "libart-compiler",
    ],
    target: {
        host: {
            required: ["dex2oat"],
        },
    },
    test_config: "art_standalone_runtime_compiler_tests.xml",
}

genrule {
    name: "libart_mterp.x86ng",
    out: ["mterp_x86ng.S"],
    srcs: [
        "interpreter/mterp/x86ng/*.S",
    ],
    tool_files: [
        "interpreter/mterp/gen_mterp.py",
        "interpreter/mterp/common/gen_setup.py",
        ":art_libdexfile_dex_instruction_list_header",
    ],
    cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
}

genrule {
    name: "libart_mterp.x86_64ng",
    out: ["mterp_x86_64ng.S"],
    srcs: [
        "interpreter/mterp/x86_64ng/*.S",
    ],
    tool_files: [
        "interpreter/mterp/gen_mterp.py",
        "interpreter/mterp/common/gen_setup.py",
        ":art_libdexfile_dex_instruction_list_header",
    ],
    cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
}

genrule {
    name: "libart_mterp.arm64ng",
    out: ["mterp_arm64ng.S"],
    srcs: [
        "interpreter/mterp/arm64ng/*.S",
    ],
    tool_files: [
        "interpreter/mterp/gen_mterp.py",
        "interpreter/mterp/common/gen_setup.py",
        ":art_libdexfile_dex_instruction_list_header",
    ],
    cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
}

genrule {
    name: "libart_mterp.armng",
    out: ["mterp_armng.S"],
    srcs: [
        "interpreter/mterp/armng/*.S",
    ],
    tool_files: [
        "interpreter/mterp/gen_mterp.py",
        "interpreter/mterp/common/gen_setup.py",
        ":art_libdexfile_dex_instruction_list_header",
    ],
    cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
}

cc_library_static {
    name: "libstatslog_art",
    defaults: ["art_defaults"],
    generated_sources: ["statslog_art.cpp"],
    generated_headers: ["statslog_art.h"],
    export_generated_headers: ["statslog_art.h"],
    shared_libs: [
        "liblog",
        "libstatssocket",
        "libutils",
    ],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
}

genrule {
    name: "statslog_art.h",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_art.h --module art --namespace art,metrics,statsd",
    out: [
        "statslog_art.h",
    ],
}

genrule {
    name: "statslog_art.cpp",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_art.cpp --module art --namespace art,metrics,statsd --importHeader statslog_art.h",
    out: [
        "statslog_art.cpp",
    ],
}
