blob: 12bba441ed59ff2f6f63c28f424b7750840a0b36 [file] [log] [blame]
Orion Hodson9b16e342019-10-09 13:29:16 +01001// Shared library for target
2// ========================================================
3cc_defaults {
4 name: "libnativeloader-defaults",
Martin Stjernholm3bb009a2019-10-17 21:29:01 +01005 defaults: ["art_defaults"],
Orion Hodson9b16e342019-10-09 13:29:16 +01006 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"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010016 visibility: [
Orion Hodsonc78860b2019-10-11 11:30:01 +010017 "//frameworks/base/cmds/app_process",
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010018 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010019 "//frameworks/base/native/webview/loader",
20 ],
Jiyong Park066dd9022019-12-19 02:11:59 +000021 apex_available: [
22 "com.android.art.release",
23 "com.android.art.debug",
24 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010025 host_supported: true,
26 srcs: [
27 "native_loader.cpp",
28 ],
29 shared_libs: [
30 "libnativehelper",
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 },
46 },
47 required: [
48 "llndk.libraries.txt",
49 "vndksp.libraries.txt",
50 ],
51 stubs: {
52 symbol_file: "libnativeloader.map.txt",
53 versions: ["1"],
54 },
55}
56
57// TODO(b/124250621) eliminate the need for this library
58cc_library {
59 name: "libnativeloader_lazy",
60 defaults: ["libnativeloader-defaults"],
Orion Hodsonc78860b2019-10-11 11:30:01 +010061 visibility: [
62 "//frameworks/base/core/jni",
63 "//frameworks/native/opengl/libs",
64 "//frameworks/native/vulkan/libvulkan",
65 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010066 host_supported: false,
67 srcs: ["native_loader_lazy.cpp"],
68 required: ["libnativeloader"],
69}
70
71cc_library_headers {
72 name: "libnativeloader-headers",
Orion Hodsonc78860b2019-10-11 11:30:01 +010073 visibility: [
Martin Stjernholm3bb009a2019-10-17 21:29:01 +010074 "//art:__subpackages__",
75 // TODO(b/133140750): Clean this up.
Orion Hodsonc78860b2019-10-11 11:30:01 +010076 "//frameworks/av/media/libstagefright",
77 "//frameworks/native/libs/graphicsenv",
78 "//frameworks/native/vulkan/libvulkan",
79 ],
Orion Hodson9b16e342019-10-09 13:29:16 +010080 host_supported: true,
81 export_include_dirs: ["include"],
82}
83
84cc_test {
85 name: "libnativeloader_test",
86 srcs: [
87 "native_loader_test.cpp",
88 "native_loader.cpp",
89 "library_namespaces.cpp",
90 "native_loader_namespace.cpp",
91 "public_libraries.cpp",
92 ],
93 cflags: ["-DANDROID"],
94 static_libs: [
95 "libbase",
96 "liblog",
97 "libnativehelper",
98 "libgmock",
99 ],
100 header_libs: [
101 "libnativebridge-headers",
102 "libnativeloader-headers",
103 ],
Orion Hodson43464992019-10-11 11:10:03 +0100104 // native_loader_test.cpp mocks libdl APIs so system_shared_libs
105 // are used to include C libraries without libdl.
Orion Hodson9b16e342019-10-09 13:29:16 +0100106 system_shared_libs: [
107 "libc",
108 "libm",
109 ],
110 test_suites: ["device-tests"],
111}