1// Shared library for target 2// ======================================================== 3cc_defaults { 4 name: "libnativeloader-defaults", 5 defaults: ["art_defaults"], 6 cppflags: [ 7 "-fvisibility=hidden", 8 ], 9 header_libs: ["libnativeloader-headers"], 10 export_header_lib_headers: ["libnativeloader-headers"], 11} 12 13cc_library { 14 name: "libnativeloader", 15 defaults: ["libnativeloader-defaults"], 16 visibility: [ 17 "//frameworks/base/cmds/app_process", 18 // TODO(b/133140750): Clean this up. 19 "//frameworks/base/native/webview/loader", 20 ], 21 apex_available: [ 22 "com.android.art.release", 23 "com.android.art.debug", 24 ], 25 host_supported: true, 26 srcs: [ 27 "native_loader.cpp", 28 ], 29 header_libs: ["libnativehelper_header_only"], 30 shared_libs: [ 31 "liblog", 32 "libnativebridge", 33 "libbase", 34 ], 35 target: { 36 android: { 37 srcs: [ 38 "library_namespaces.cpp", 39 "native_loader_namespace.cpp", 40 "public_libraries.cpp", 41 ], 42 shared_libs: [ 43 "libdl_android", 44 ], 45 whole_static_libs: [ 46 "PlatformProperties", 47 ], 48 }, 49 }, 50 stubs: { 51 symbol_file: "libnativeloader.map.txt", 52 versions: ["1"], 53 }, 54} 55 56// TODO(b/124250621) eliminate the need for this library 57cc_library { 58 name: "libnativeloader_lazy", 59 defaults: ["libnativeloader-defaults"], 60 visibility: [ 61 "//frameworks/base/core/jni", 62 "//frameworks/native/opengl/libs", 63 "//frameworks/native/vulkan/libvulkan", 64 ], 65 host_supported: false, 66 srcs: ["native_loader_lazy.cpp"], 67 required: ["libnativeloader"], 68} 69 70cc_library_headers { 71 name: "libnativeloader-headers", 72 apex_available: [ 73 "//apex_available:platform", 74 "com.android.art.debug", 75 "com.android.art.release", 76 ], 77 visibility: [ 78 "//art:__subpackages__", 79 // TODO(b/133140750): Clean this up. 80 "//frameworks/av/media/libstagefright", 81 "//frameworks/native/libs/graphicsenv", 82 "//frameworks/native/vulkan/libvulkan", 83 ], 84 host_supported: true, 85 export_include_dirs: ["include"], 86} 87 88cc_test { 89 name: "libnativeloader_test", 90 srcs: [ 91 "native_loader_test.cpp", 92 "native_loader.cpp", 93 "library_namespaces.cpp", 94 "native_loader_namespace.cpp", 95 "public_libraries.cpp", 96 ], 97 cflags: ["-DANDROID"], 98 static_libs: [ 99 "libbase", 100 "liblog", 101 "libgmock", 102 "PlatformProperties", 103 ], 104 header_libs: [ 105 "libnativebridge-headers", 106 "libnativehelper_header_only", 107 "libnativeloader-headers", 108 ], 109 // native_loader_test.cpp mocks libdl APIs so system_shared_libs 110 // are used to include C libraries without libdl. 111 system_shared_libs: [ 112 "libc", 113 "libm", 114 ], 115 test_suites: ["device-tests"], 116} 117