//
// 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,
            },
        },
    },
}

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_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_util_CharsetUtils.cc",
        "native/org_apache_harmony_dalvik_ddmc_DdmServer.cc",
        "native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc",
        "native/sun_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",
        "libnativehelper_header_only",
    ],
    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",
    ],

    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.
    export_shared_lib_headers: ["libbase"],
}

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.

art_cc_library {
    name: "libart",
    defaults: [
        "libart_defaults",
        "libart_nativeunwind_defaults",
        "art_hugepage_defaults",
        "art_pgo_defaults",
    ],
    whole_static_libs: [
    ],
    static_libs: [
        "libelffile",
    ],
    shared_libs: [
        "libartbase",
        "libdexfile",
        "libprofile",
    ],
    export_shared_lib_headers: [
        "libdexfile",
    ],
    target: {
        android: {
            lto: {
                thin: true,
            },
        },
    },
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
}

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",
    srcs: [
        "common_runtime_test.cc",
        "dexopt_test.cc",
    ],
    shared_libs: [
        "libbase",
        "libbacktrace",
    ],
    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",
    ],
    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/162834439): Investigate these failures and re-enable these tests.
    test_config: "art_standalone_runtime_tests.xml",
}

art_cc_defaults {
    name: "art_runtime_compiler_tests_defaults",
    srcs: [
        "reflection_test.cc",
        "module_exclusion_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",
}

cc_library_headers {
    name: "libart_runtime_headers_ndk",
    host_supported: true,
    export_include_dirs: ["."],
    sdk_version: "current",

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

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