1
2genrule {
3    name: "android_util_StatsLog.cpp",
4    tools: ["stats-log-api-gen"],
5    cmd: "$(location stats-log-api-gen) --jni $(genDir)/android_util_StatsLog.cpp",
6    out: [
7        "android_util_StatsLog.cpp",
8    ],
9}
10
11cc_library_shared {
12    name: "libandroid_runtime",
13
14    cflags: [
15        "-Wno-unused-parameter",
16        "-Wno-non-virtual-dtor",
17        "-Wno-maybe-uninitialized",
18        "-Wno-parentheses",
19
20        "-DGL_GLEXT_PROTOTYPES",
21        "-DEGL_EGLEXT_PROTOTYPES",
22
23        "-DU_USING_ICU_NAMESPACE=0",
24
25        "-Wall",
26        "-Werror",
27        "-Wno-error=deprecated-declarations",
28        "-Wunused",
29        "-Wunreachable-code",
30
31        // TODO: Linear blending should be enabled by default, but we are
32        // TODO: making it an opt-in while it's a work in progress
33        //"-DANDROID_ENABLE_LINEAR_BLENDING",
34    ],
35
36    cppflags: ["-Wno-conversion-null"],
37    cpp_std: "c++17",
38
39    srcs: [
40        "AndroidRuntime.cpp",
41        "com_android_internal_content_NativeLibraryHelper.cpp",
42        "com_google_android_gles_jni_EGLImpl.cpp",
43        "com_google_android_gles_jni_GLImpl.cpp", // TODO: .arm
44        "android_app_Activity.cpp",
45        "android_app_NativeActivity.cpp",
46        "android_app_admin_SecurityLog.cpp",
47        "android_opengl_EGL14.cpp",
48        "android_opengl_EGLExt.cpp",
49        "android_opengl_GLES10.cpp",
50        "android_opengl_GLES10Ext.cpp",
51        "android_opengl_GLES11.cpp",
52        "android_opengl_GLES11Ext.cpp",
53        "android_opengl_GLES20.cpp",
54        "android_opengl_GLES30.cpp",
55        "android_opengl_GLES31.cpp",
56        "android_opengl_GLES31Ext.cpp",
57        "android_opengl_GLES32.cpp",
58        "android_database_CursorWindow.cpp",
59        "android_database_SQLiteCommon.cpp",
60        "android_database_SQLiteConnection.cpp",
61        "android_database_SQLiteGlobal.cpp",
62        "android_database_SQLiteDebug.cpp",
63        "android_graphics_drawable_AnimatedVectorDrawable.cpp",
64        "android_graphics_drawable_VectorDrawable.cpp",
65        "android_view_DisplayEventReceiver.cpp",
66        "android_view_DisplayListCanvas.cpp",
67        "android_view_TextureLayer.cpp",
68        "android_view_InputChannel.cpp",
69        "android_view_InputDevice.cpp",
70        "android_view_InputEventReceiver.cpp",
71        "android_view_InputEventSender.cpp",
72        "android_view_InputQueue.cpp",
73        "android_view_KeyCharacterMap.cpp",
74        "android_view_KeyEvent.cpp",
75        "android_view_MotionEvent.cpp",
76        "android_view_PointerIcon.cpp",
77        "android_view_RenderNode.cpp",
78        "android_view_RenderNodeAnimator.cpp",
79        "android_view_Surface.cpp",
80        "android_view_SurfaceControl.cpp",
81        "android_view_SurfaceSession.cpp",
82        "android_view_TextureView.cpp",
83        "android_view_ThreadedRenderer.cpp",
84        "android_view_VelocityTracker.cpp",
85        "android_text_AndroidCharacter.cpp",
86        "android_text_Hyphenator.cpp",
87        "android_text_MeasuredParagraph.cpp",
88        "android_text_StaticLayout.cpp",
89        "android_os_Debug.cpp",
90        "android_os_GraphicsEnvironment.cpp",
91        "android_os_HidlSupport.cpp",
92        "android_os_HwBinder.cpp",
93        "android_os_HwBlob.cpp",
94        "android_os_HwParcel.cpp",
95        "android_os_HwRemoteBinder.cpp",
96        "android_os_MemoryFile.cpp",
97        "android_os_MessageQueue.cpp",
98        "android_os_Parcel.cpp",
99        "android_os_SELinux.cpp",
100        "android_os_SharedMemory.cpp",
101        "android_os_SystemClock.cpp",
102        "android_os_SystemProperties.cpp",
103        "android_os_Trace.cpp",
104        "android_os_UEventObserver.cpp",
105        "android_os_VintfObject.cpp",
106        "android_os_VintfRuntimeInfo.cpp",
107        "android_net_LocalSocketImpl.cpp",
108        "android_net_NetUtils.cpp",
109        "android_nio_utils.cpp",
110        "android_util_AssetManager.cpp",
111        "android_util_Binder.cpp",
112        "android_util_EventLog.cpp",
113        "android_util_Log.cpp",
114        "android_util_MemoryIntArray.cpp",
115        "android_util_PathParser.cpp",
116        "android_util_Process.cpp",
117        "android_util_StringBlock.cpp",
118        "android_util_XmlBlock.cpp",
119        "android_util_jar_StrictJarFile.cpp",
120        "android_graphics_Canvas.cpp",
121        "android_graphics_Picture.cpp",
122        "android/graphics/AnimatedImageDrawable.cpp",
123        "android/graphics/Bitmap.cpp",
124        "android/graphics/BitmapFactory.cpp",
125        "android/graphics/ByteBufferStreamAdaptor.cpp",
126        "android/graphics/Camera.cpp",
127        "android/graphics/CanvasProperty.cpp",
128        "android/graphics/ColorFilter.cpp",
129        "android/graphics/DrawFilter.cpp",
130        "android/graphics/FontFamily.cpp",
131        "android/graphics/FontUtils.cpp",
132        "android/graphics/CreateJavaOutputStreamAdaptor.cpp",
133        "android/graphics/GIFMovie.cpp",
134        "android/graphics/GraphicBuffer.cpp",
135        "android/graphics/Graphics.cpp",
136        "android/graphics/HarfBuzzNGFaceSkia.cpp",
137        "android/graphics/ImageDecoder.cpp",
138        "android/graphics/Interpolator.cpp",
139        "android/graphics/MaskFilter.cpp",
140        "android/graphics/Matrix.cpp",
141        "android/graphics/Movie.cpp",
142        "android/graphics/MovieImpl.cpp",
143        "android/graphics/NinePatch.cpp",
144        "android/graphics/NinePatchPeeker.cpp",
145        "android/graphics/Paint.cpp",
146        "android/graphics/Path.cpp",
147        "android/graphics/PathMeasure.cpp",
148        "android/graphics/PathEffect.cpp",
149        "android/graphics/Picture.cpp",
150        "android/graphics/BitmapRegionDecoder.cpp",
151        "android/graphics/Region.cpp",
152        "android/graphics/Shader.cpp",
153        "android/graphics/SurfaceTexture.cpp",
154        "android/graphics/Typeface.cpp",
155        "android/graphics/Utils.cpp",
156        "android/graphics/YuvToJpegEncoder.cpp",
157        "android/graphics/pdf/PdfDocument.cpp",
158        "android/graphics/pdf/PdfEditor.cpp",
159        "android/graphics/pdf/PdfRenderer.cpp",
160        "android/graphics/pdf/PdfUtils.cpp",
161        "android_media_AudioRecord.cpp",
162        "android_media_AudioSystem.cpp",
163        "android_media_AudioTrack.cpp",
164        "android_media_DeviceCallback.cpp",
165        "android_media_JetPlayer.cpp",
166        "android_media_MediaMetricsJNI.cpp",
167        "android_media_MicrophoneInfo.cpp",
168        "android_media_RemoteDisplay.cpp",
169        "android_media_ToneGenerator.cpp",
170        "android_hardware_Camera.cpp",
171        "android_hardware_camera2_CameraMetadata.cpp",
172        "android_hardware_camera2_legacy_LegacyCameraDevice.cpp",
173        "android_hardware_camera2_legacy_PerfMeasurement.cpp",
174        "android_hardware_camera2_DngCreator.cpp",
175        "android_hardware_display_DisplayViewport.cpp",
176        "android_hardware_HardwareBuffer.cpp",
177        "android_hardware_SensorManager.cpp",
178        "android_hardware_SerialPort.cpp",
179        "android_hardware_SoundTrigger.cpp",
180        "android_hardware_UsbDevice.cpp",
181        "android_hardware_UsbDeviceConnection.cpp",
182        "android_hardware_UsbRequest.cpp",
183        "android_hardware_location_ActivityRecognitionHardware.cpp",
184        "android_util_FileObserver.cpp",
185        "android/opengl/poly_clip.cpp", // TODO: .arm
186        "android/opengl/util.cpp",
187        "android_server_NetworkManagementSocketTagger.cpp",
188        "android_ddm_DdmHandleNativeHeap.cpp",
189        "android_backup_BackupDataInput.cpp",
190        "android_backup_BackupDataOutput.cpp",
191        "android_backup_FileBackupHelperBase.cpp",
192        "android_backup_BackupHelperDispatcher.cpp",
193        "android_app_backup_FullBackup.cpp",
194        "android_content_res_ApkAssets.cpp",
195        "android_content_res_ObbScanner.cpp",
196        "android_content_res_Configuration.cpp",
197        "android_animation_PropertyValuesHolder.cpp",
198        "android_security_Scrypt.cpp",
199        "com_android_internal_net_NetworkStatsFactory.cpp",
200        "com_android_internal_os_ClassLoaderFactory.cpp",
201        "com_android_internal_os_FuseAppLoop.cpp",
202        "com_android_internal_os_Zygote.cpp",
203        "com_android_internal_os_ZygoteInit.cpp",
204        "com_android_internal_util_VirtualRefBasePtr.cpp",
205        "com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp",
206        "hwbinder/EphemeralStorage.cpp",
207        "fd_utils.cpp",
208    ],
209
210    include_dirs: [
211        // we need to access the private Bionic header
212        // <bionic_tls.h> in com_google_android_gles_jni_GLImpl.cpp
213        "bionic/libc/private",
214
215        "external/skia/include/private",
216        "external/skia/src/codec",
217        "external/skia/src/core",
218        "external/skia/src/effects",
219        "external/skia/src/image",
220        "external/skia/src/images",
221        "frameworks/base/media/jni",
222        "libcore/include",
223        "system/media/camera/include",
224        "system/media/private/camera/include",
225    ],
226
227    static_libs: [
228        "libgif",
229        "libseccomp_policy",
230        "libselinux",
231        "libgrallocusage",
232        "libscrypt_static",
233    ],
234
235    shared_libs: [
236        "libbpf",
237        "libnetdutils",
238        "libmemtrack",
239        "libandroidfw",
240        "libappfuse",
241        "libbase",
242        "libcrypto",
243        "libnativehelper",
244        "liblog",
245        "libcutils",
246        "libdebuggerd_client",
247        "libutils",
248        "libbinder",
249        "libui",
250        "libgraphicsenv",
251        "libgui",
252        "libsensor",
253        "libinput",
254        "libcamera_client",
255        "libcamera_metadata",
256        "libsqlite",
257        "libEGL",
258        "libGLESv1_CM",
259        "libGLESv2",
260        "libvulkan",
261        "libziparchive",
262        "libETC1",
263        "libhardware",
264        "libhardware_legacy",
265        "libselinux",
266        "libicuuc",
267        "libmedia",
268        "libmediametrics",
269        "libaudioclient",
270        "libjpeg",
271        "libusbhost",
272        "libharfbuzz_ng",
273        "libz",
274        "libpdfium",
275        "libimg_utils",
276        "libnetd_client",
277        "libsoundtrigger",
278        "libminikin",
279        "libprocessgroup",
280        "libnativebridge",
281        "libnativeloader",
282        "libmemunreachable",
283        "libhidlbase",
284        "libhidltransport",
285        "libhwbinder",
286        "libvintf",
287        "libnativewindow",
288        "libhwui",
289        "libdl",
290        "libstatslog",
291    ],
292
293    generated_sources: ["android_util_StatsLog.cpp"],
294
295    local_include_dirs: ["android/graphics"],
296    export_include_dirs: [
297        ".",
298        "include",
299    ],
300    export_shared_lib_headers: [
301        // AndroidRuntime.h depends on nativehelper/jni.h
302        "libnativehelper",
303
304        // our headers include libnativewindow's public headers
305        "libnativewindow",
306
307        // GraphicsJNI.h includes hwui headers
308        "libhwui",
309    ],
310}
311