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