summaryrefslogtreecommitdiff
path: root/core/jni/Android.bp
blob: f3fb0ed8f925f984aaf60592a8a1c3a8b3f3e3d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
package {
    default_applicable_licenses: ["frameworks_base_core_jni_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "frameworks_base_core_jni_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "NOTICE",
    ],
}

cc_library_shared {
    name: "libandroid_runtime",
    host_supported: true,
    cflags: [
        "-Wno-unused-parameter",
        "-Wno-non-virtual-dtor",
        "-Wno-maybe-uninitialized",
        "-Wno-parentheses",

        "-DGL_GLEXT_PROTOTYPES",
        "-DEGL_EGLEXT_PROTOTYPES",

        "-DU_USING_ICU_NAMESPACE=0",

        "-Wall",
        "-Werror",
        "-Wno-error=deprecated-declarations",
        "-Wunused",
        "-Wunreachable-code",
    ],

    cppflags: ["-Wno-conversion-null"],

    srcs: [
        "android_animation_PropertyValuesHolder.cpp",
        "android_os_SystemClock.cpp",
        "android_os_SystemProperties.cpp",
        "android_os_Trace.cpp",
        "android_text_AndroidCharacter.cpp",
        "android_util_EventLog.cpp",
        "android_util_Log.cpp",
        "android_util_StringBlock.cpp",
        "android_util_XmlBlock.cpp",
        "android_util_jar_StrictJarFile.cpp",
        "com_android_internal_util_VirtualRefBasePtr.cpp",
        ":deviceproductinfoconstants_aidl",
    ],

    include_dirs: [
        "external/skia/include/private",
        "frameworks/base/media/jni",
        "system/media/camera/include",
        "system/media/private/camera/include",
    ],

    shared_libs: [
        "libbase",
        "libcutils",
        "libharfbuzz_ng",
        "libhwui",
        "liblog",
        "libminikin",
        "libz",
    ],

    static_libs: [
        "libnativehelper_lazy",
        "libziparchive_for_incfs",
    ],

    export_include_dirs: [
        ".",
        "include",
    ],

    target: {
        android: {
            srcs: [
                "AndroidRuntime.cpp",
                "com_android_internal_content_F2fsUtils.cpp",
                "com_android_internal_content_NativeLibraryHelper.cpp",
                "com_google_android_gles_jni_EGLImpl.cpp",
                "com_google_android_gles_jni_GLImpl.cpp", // TODO: .arm
                "android_app_Activity.cpp",
                "android_app_ActivityThread.cpp",
                "android_app_NativeActivity.cpp",
                "android_app_admin_SecurityLog.cpp",
                "android_opengl_EGL14.cpp",
                "android_opengl_EGL15.cpp",
                "android_opengl_EGLExt.cpp",
                "android_opengl_GLES10.cpp",
                "android_opengl_GLES10Ext.cpp",
                "android_opengl_GLES11.cpp",
                "android_opengl_GLES11Ext.cpp",
                "android_opengl_GLES20.cpp",
                "android_opengl_GLES30.cpp",
                "android_opengl_GLES31.cpp",
                "android_opengl_GLES31Ext.cpp",
                "android_opengl_GLES32.cpp",
                "android_database_CursorWindow.cpp",
                "android_database_SQLiteCommon.cpp",
                "android_database_SQLiteConnection.cpp",
                "android_database_SQLiteGlobal.cpp",
                "android_database_SQLiteDebug.cpp",
                "android_graphics_GraphicBuffer.cpp",
                "android_graphics_SurfaceTexture.cpp",
                "android_view_CompositionSamplingListener.cpp",
                "android_view_DisplayEventReceiver.cpp",
                "android_view_InputChannel.cpp",
                "android_view_InputDevice.cpp",
                "android_view_InputEventReceiver.cpp",
                "android_view_InputEventSender.cpp",
                "android_view_InputQueue.cpp",
                "android_view_KeyCharacterMap.cpp",
                "android_view_KeyEvent.cpp",
                "android_view_MotionEvent.cpp",
                "android_view_PointerIcon.cpp",
                "android_view_Surface.cpp",
                "android_view_SurfaceControl.cpp",
                "android_view_SurfaceControlFpsListener.cpp",
                "android_view_SurfaceControlHdrLayerInfoListener.cpp",
                "android_graphics_BLASTBufferQueue.cpp",
                "android_view_SurfaceSession.cpp",
                "android_view_TextureView.cpp",
                "android_view_TunnelModeEnabledListener.cpp",
                "android_view_VelocityTracker.cpp",
                "android_view_VerifiedKeyEvent.cpp",
                "android_view_VerifiedMotionEvent.cpp",
                "android_text_Hyphenator.cpp",
                "android_os_Debug.cpp",
                "android_os_GraphicsEnvironment.cpp",
                "android_os_HidlMemory.cpp",
                "android_os_HidlSupport.cpp",
                "android_os_HwBinder.cpp",
                "android_os_HwBlob.cpp",
                "android_os_HwParcel.cpp",
                "android_os_HwRemoteBinder.cpp",
                "android_os_NativeHandle.cpp",
                "android_os_MemoryFile.cpp",
                "android_os_MessageQueue.cpp",
                "android_os_Parcel.cpp",
                "android_os_PerformanceHintManager.cpp",
                "android_os_SELinux.cpp",
                "android_os_ServiceManager.cpp",
                "android_os_SharedMemory.cpp",
                "android_os_storage_StorageManager.cpp",
                "android_os_UEventObserver.cpp",
                "android_os_VintfObject.cpp",
                "android_os_VintfRuntimeInfo.cpp",
                "android_os_incremental_IncrementalManager.cpp",
                "android_net_LocalSocketImpl.cpp",
                "android_service_DataLoaderService.cpp",
                "android_util_AssetManager.cpp",
                "android_util_Binder.cpp",
                "android_util_CharsetUtils.cpp",
                "android_util_MemoryIntArray.cpp",
                "android_util_Process.cpp",
                "android_media_AudioDeviceAttributes.cpp",
                "android_media_AudioEffectDescriptor.cpp",
                "android_media_AudioRecord.cpp",
                "android_media_AudioSystem.cpp",
                "android_media_AudioTrackCallback.cpp",
                "android_media_AudioTrack.cpp",
                "android_media_AudioAttributes.cpp",
                "android_media_AudioProductStrategies.cpp",
                "android_media_AudioVolumeGroups.cpp",
                "android_media_AudioVolumeGroupCallback.cpp",
                "android_media_DeviceCallback.cpp",
                "android_media_MediaMetricsJNI.cpp",
                "android_media_MicrophoneInfo.cpp",
                "android_media_midi.cpp",
                "android_media_RemoteDisplay.cpp",
                "android_media_ToneGenerator.cpp",
                "android_hardware_Camera.cpp",
                "android_hardware_camera2_CameraMetadata.cpp",
                "android_hardware_camera2_DngCreator.cpp",
                "android_hardware_camera2_impl_CameraExtensionJpegProcessor.cpp",
                "android_hardware_camera2_utils_SurfaceUtils.cpp",
                "android_hardware_display_DisplayManagerGlobal.cpp",
                "android_hardware_display_DisplayViewport.cpp",
                "android_hardware_HardwareBuffer.cpp",
                "android_hardware_SensorManager.cpp",
                "android_hardware_SerialPort.cpp",
                "android_hardware_UsbDevice.cpp",
                "android_hardware_UsbDeviceConnection.cpp",
                "android_hardware_UsbRequest.cpp",
                "android_hardware_location_ActivityRecognitionHardware.cpp",
                "android_util_FileObserver.cpp",
                "android/opengl/poly_clip.cpp", // TODO: .arm
                "android/opengl/util.cpp",
                "android_server_NetworkManagementSocketTagger.cpp",
                "android_ddm_DdmHandleNativeHeap.cpp",
                "android_backup_BackupDataInput.cpp",
                "android_backup_BackupDataOutput.cpp",
                "android_backup_FileBackupHelperBase.cpp",
                "android_backup_BackupHelperDispatcher.cpp",
                "android_app_backup_FullBackup.cpp",
                "android_content_res_ApkAssets.cpp",
                "android_content_res_ObbScanner.cpp",
                "android_content_res_Configuration.cpp",
                "android_security_Scrypt.cpp",
                "com_android_internal_content_om_OverlayConfig.cpp",
                "com_android_internal_net_NetworkUtilsInternal.cpp",
                "com_android_internal_os_ClassLoaderFactory.cpp",
                "com_android_internal_os_DmabufInfoReader.cpp",
                "com_android_internal_os_FuseAppLoop.cpp",
                "com_android_internal_os_KernelCpuBpfTracking.cpp",
                "com_android_internal_os_KernelCpuTotalBpfMapReader.cpp",
                "com_android_internal_os_KernelCpuUidBpfMapReader.cpp",
                "com_android_internal_os_KernelSingleProcessCpuThreadReader.cpp",
                "com_android_internal_os_KernelSingleUidTimeReader.cpp",
                "com_android_internal_os_Zygote.cpp",
                "com_android_internal_os_ZygoteCommandBuffer.cpp",
                "com_android_internal_os_ZygoteInit.cpp",
                "com_android_internal_security_VerityUtils.cpp",
                "hwbinder/EphemeralStorage.cpp",
                "fd_utils.cpp",
                "android_hardware_input_InputWindowHandle.cpp",
                "android_hardware_input_InputApplicationHandle.cpp",
            ],

            static_libs: [
                "libasync_safe",
                "libbinderthreadstateutils",
                "libdmabufinfo",
                "libgif",
                "libseccomp_policy",
                "libgrallocusage",
                "libscrypt_static",
                "libstatssocket_lazy",
            ],

            shared_libs: [
                "audioclient-types-aidl-cpp",
                "audioflinger-aidl-cpp",
                "av-types-aidl-cpp",
                "android.hardware.camera.device@3.2",
                "libandroidicu",
                "libbpf_android",
                "libnetdbpf",
                "libnetdutils",
                "libmemtrack",
                "libandroidfw",
                "libappfuse",
                "libcrypto",
                "libcutils",
                "libdebuggerd_client",
                "libutils",
                "libbinder",
                "libui",
                "libgraphicsenv",
                "libgui",
                "libmediandk",
                "libpermission",
                "libsensor",
                "libinput",
                "libcamera_client",
                "libcamera_metadata",
                "libsqlite",
                "libEGL",
                "libGLESv1_CM",
                "libGLESv2",
                "libGLESv3",
                "libincfs",
                "libdataloader",
                "libvulkan",
                "libETC1",
                "libjpeg",
                "libhardware",
                "libhardware_legacy",
                "libselinux",
                "libmedia",
                "libmedia_helper",
                "libmediametrics",
                "libmeminfo",
                "libaudioclient",
                "libaudiofoundation",
                "libaudiopolicy",
                "libusbhost",
                "libpdfium",
                "libimg_utils",
                "libnetd_client",
                "libprocessgroup",
                "libnativebridge_lazy",
                "libnativeloader_lazy",
                "libmemunreachable",
                "libhidlbase",
                "libvintf",
                "libnativedisplay",
                "libnativewindow",
                "libdl",
                "libdl_android",
                "libtimeinstate",
                "server_configurable_flags",
            ],
            export_shared_lib_headers: [
                // our headers include libnativewindow's public headers
                "libnativewindow",
            ],
            export_static_lib_headers: [
                // AndroidRuntime.h depends on nativehelper/jni.h
                "libnativehelper_lazy",
            ],
            header_libs: [
                "bionic_libc_platform_headers",
                "dnsproxyd_protocol_headers",
            ],
        },
        host: {
            cflags: [
                "-Wno-unused-const-variable",
                "-Wno-unused-function",
                "-DLOG_ALWAYS_FATAL_IF(cond, ...)=if(cond) LOG_ALWAYS_FATAL(...)",
                "-DLOG_ALWAYS_FATAL(...)=__android_log_call_aborter(\"Fatal Error\")",
                // Use all declarations in native_window.h in Layoutlib
                "-D__INTRODUCED_IN(n)=",
                "-D__ANDROID_API__=10000",
                "-D__HOST_JVM__",
            ],
            srcs: [
                "LayoutlibLoader.cpp",
            ],
            include_dirs: [
                "external/vulkan-headers/include",
                "frameworks/native/libs/math/include",
                "frameworks/native/libs/nativebase/include",
                "frameworks/native/libs/nativewindow/include",
            ],
            shared_libs: [
                "libicui18n",
                "libicuuc",
            ],
            static_libs: [
                "libandroidfw",
                "libcompiler_rt",
                "libutils",
                "libhostgraphics",
            ],
        },
        linux_glibc: {
            srcs: [
                "android_content_res_ApkAssets.cpp",
                "android_database_CursorWindow.cpp",
                "android_database_SQLiteCommon.cpp",
                "android_database_SQLiteConnection.cpp",
                "android_database_SQLiteGlobal.cpp",
                "android_database_SQLiteDebug.cpp",
                "android_hardware_input_InputApplicationHandle.cpp",
                "android_os_MessageQueue.cpp",
                "android_os_Parcel.cpp",

                "android_view_KeyCharacterMap.cpp",
                "android_view_KeyEvent.cpp",
                "android_view_InputChannel.cpp",
                "android_view_InputDevice.cpp",
                "android_view_InputEventReceiver.cpp",
                "android_view_InputEventSender.cpp",
                "android_view_MotionEvent.cpp",
                "android_view_VelocityTracker.cpp",
                "android_view_VerifiedKeyEvent.cpp",
                "android_view_VerifiedMotionEvent.cpp",

                "android_util_AssetManager.cpp",
                "android_util_Binder.cpp",

                "android_util_FileObserver.cpp",
            ],
            static_libs: [
                "libinput",
                "libbinderthreadstateutils",
                "libsqlite",
            ],
            shared_libs: [
                // libbinder needs to be shared since it has global state
                // (e.g. gDefaultServiceManager)
                "libbinder",
                "libhidlbase", // libhwbinder is in here
            ],
        },
    },

    // Workaround Clang LTO crash.
    lto: {
        never: true,
    },
}

cc_library_shared {
    name: "librobolectric-nativeruntime",
    host_supported: true,
    cflags: [
        "-Wno-unused-parameter",
    ],
    strip: {
        keep_symbols: true,
    },
    target: {
        darwin: {
            host_ldlibs: [
                "-framework AppKit",
            ],
            dist: {
                targets: ["robolectric_native_runtime"],
                dir: "robolectric/nativeruntime/mac",
            },
        },
        linux_glibc_x86_64: {
            ldflags: ["-static-libgcc"],
            dist: {
                targets: ["robolectric_native_runtime"],
                dir: "robolectric/nativeruntime/linux",
            },
        },
        windows_x86_64: {
            dist: {
                targets: ["robolectric_native_runtime"],
                dir: "robolectric/nativeruntime/windows",
            },
        },
        windows: {
            enabled: true,
        },
        host: {
            cflags: [
                "-Wno-unused-const-variable",
                "-Wno-unused-function",
                // Declarations used in native_window.h
                "-D__INTRODUCED_IN(n)=",
            ],
            srcs: [
                "android_animation_PropertyValuesHolder.cpp",
                "android_database_CursorWindow.cpp",
                "android_database_SQLiteCommon.cpp",
                "android_database_SQLiteConnection.cpp",
                "android_database_SQLiteGlobal.cpp",
                "android_database_SQLiteDebug.cpp",
                "android_util_Log.cpp",
                "android_view_Surface.cpp",
                "com_android_internal_util_VirtualRefBasePtr.cpp",
                "libcore_util_NativeAllocationRegistry.cpp",
                "RobolectricNativeRuntime.cpp",
                // Utilized to get rendered result pixels
                ":libmedia_host_common",
            ],
            static_libs: [
                "libnativehelper",
                "libsqlite",
                "libandroidfw",
                "libbase",
                "libutils",
                "liblog",
                "libcutils",
                "libhostgraphics",
                "libhwui",
                "libpng",
                "libjpeg",
                "libwebp-decode",
                "libwebp-encode",
                "libdng_sdk",
                "libft2",
                "libz",
                "libpiex",
                "libtiff_directory",
                "libbinary_parse",
                "libimage_type_recognition",
                "libicui18n",
                "libicuuc",
                "libicuuc_stubdata",
                "libminikin",
                "libharfbuzz_ng",
                "libui-types",
            ],
            include_dirs: [
                "frameworks/native/libs/nativebase/include",
                "frameworks/native/libs/nativewindow/include",
            ],
            stl: "libc++_static",
        },
    },
    export_include_dirs: [
        ".",
        "include",
    ],
}