// Shared library for target // ======================================================== cc_defaults { name: "libnativeloader-defaults", defaults: ["art_defaults"], cppflags: [ "-fvisibility=hidden", ], header_libs: ["libnativeloader-headers"], export_header_lib_headers: ["libnativeloader-headers"], } art_cc_library { name: "libnativeloader", defaults: ["libnativeloader-defaults"], visibility: [ "//frameworks/base/cmds/app_process", // TODO(b/133140750): Clean this up. "//frameworks/base/native/webview/loader", ], apex_available: [ "com.android.art.release", "com.android.art.debug", ], host_supported: true, srcs: [ "native_loader.cpp", ], header_libs: [ "libnativehelper_header_only", ], shared_libs: [ "liblog", "libnativebridge", "libbase", ], target: { // Library search path needed for running host tests remotely (from testcases directory). linux_glibc_x86: { ldflags: [ "-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib", "-Wl,--enable-new-dtags", ], }, linux_glibc_x86_64: { ldflags: [ "-Wl,-rpath,$ORIGIN/../art_common/out/host/linux-x86/lib64", "-Wl,--enable-new-dtags", ], }, android: { srcs: [ "library_namespaces.cpp", "native_loader_namespace.cpp", "public_libraries.cpp", ], shared_libs: [ "libdl_android", ], whole_static_libs: [ "PlatformProperties", ], }, }, stubs: { symbol_file: "libnativeloader.map.txt", versions: ["1"], }, } // TODO(b/124250621) eliminate the need for this library cc_library { name: "libnativeloader_lazy", defaults: ["libnativeloader-defaults"], visibility: [ "//frameworks/base/core/jni", "//frameworks/native/opengl/libs", "//frameworks/native/vulkan/libvulkan", ], host_supported: false, srcs: ["native_loader_lazy.cpp"], required: ["libnativeloader"], shared_libs: ["liblog"], } cc_library_headers { name: "libnativeloader-headers", apex_available: [ "//apex_available:platform", "com.android.art.debug", "com.android.art.release", ], visibility: [ "//art:__subpackages__", // TODO(b/133140750): Clean this up. "//frameworks/av/media/libstagefright", "//frameworks/native/libs/graphicsenv", "//frameworks/native/vulkan/libvulkan", ], host_supported: true, export_include_dirs: ["include"], header_libs: ["jni_headers"], export_header_lib_headers: ["jni_headers"], } cc_test { name: "libnativeloader_test", srcs: [ "native_loader_test.cpp", "native_loader.cpp", "library_namespaces.cpp", "native_loader_namespace.cpp", "public_libraries.cpp", ], cflags: ["-DANDROID"], static_libs: [ "libbase", "liblog", "libgmock", "PlatformProperties", ], header_libs: [ "libnativebridge-headers", "libnativehelper_header_only", "libnativeloader-headers", ], // native_loader_test.cpp mocks libdl APIs so system_shared_libs // are used to include C libraries without libdl. system_shared_libs: [ "libc", "libm", ], test_suites: ["device-tests"], }