blob: cda94440affa0278086d81dbd3a9bdcf38da33f5 [file] [log] [blame]
Bob Badour8a6a2bc2021-02-12 17:07:05 -08001package {
2 default_applicable_licenses: ["frameworks_base_libs_hwui_license"],
3}
4
5// Added automatically by a large-scale-change that took the approach of
6// 'apply every license found to every target'. While this makes sure we respect
7// every license restriction, it may not be entirely correct.
8//
9// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10//
11// Please consider splitting the single license below into multiple licenses,
12// taking care not to lose any license_kind information, and overriding the
13// default license using the 'licenses: [...]' property on targets as needed.
14//
15// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16// to attach the license to, and including a comment whether the files may be
17// used in the current project.
18// See: http://go/android-license-faq
19license {
20 name: "frameworks_base_libs_hwui_license",
21 visibility: [":__subpackages__"],
22 license_kinds: [
23 "SPDX-license-identifier-Apache-2.0",
24 "SPDX-license-identifier-BSD",
25 ],
26 license_text: [
27 "NOTICE",
28 ],
29}
30
John Reckd66cdb32023-08-21 22:25:42 -040031aconfig_declarations {
32 name: "hwui_flags",
33 package: "com.android.graphics.hwui.flags",
34 srcs: [
35 "aconfig/hwui_flags.aconfig",
36 ],
37}
38
John Reckd66cdb32023-08-21 22:25:42 -040039cc_aconfig_library {
40 name: "hwui_flags_cc_lib",
Tyler Freemandcd164c2023-10-19 22:48:34 +000041 host_supported: true,
John Reckd66cdb32023-08-21 22:25:42 -040042 aconfig_declarations: "hwui_flags",
43}
44
Colin Crossf6298102017-04-19 15:25:25 -070045cc_defaults {
46 name: "hwui_defaults",
47 defaults: [
48 "hwui_static_deps",
Pirama Arumuga Nainar0dfd4be2017-11-16 22:40:00 -080049 "skia_deps",
Colin Crossf6298102017-04-19 15:25:25 -070050 //"hwui_bugreport_font_cache_usage",
51 //"hwui_compile_for_perf",
Pirama Arumuga Nainarb7913e12018-03-09 00:03:57 +000052 "hwui_lto",
Colin Crossf6298102017-04-19 15:25:25 -070053 ],
54
John Reck283bb462018-12-13 16:40:14 -080055 cpp_std: "experimental",
56
Colin Crossf6298102017-04-19 15:25:25 -070057 cflags: [
58 "-DEGL_EGLEXT_PROTOTYPES",
59 "-DGL_GLEXT_PROTOTYPES",
60 "-DATRACE_TAG=ATRACE_TAG_VIEW",
Nolan Scobie7237e472023-08-04 16:50:41 -040061 "-DLOG_TAG=\"HWUI\"",
Colin Crossf6298102017-04-19 15:25:25 -070062 "-Wall",
Siarhei Vishniakou07d35cb2021-07-03 02:22:12 +000063 "-Wthread-safety",
Colin Crossf6298102017-04-19 15:25:25 -070064 "-Wno-unused-parameter",
65 "-Wunreachable-code",
66 "-Werror",
67 "-fvisibility=hidden",
68
69 // GCC false-positives on this warning, and since we -Werror that's
70 // a problem
71 "-Wno-free-nonheap-object",
Yi Kong3ccc52f2023-03-22 17:09:50 +090072
73 // Do not de-optimise cold code paths in AFDO.
74 // Some code paths might be infrequently executed but critical to latency.
75 "-fno-profile-sample-accurate",
Colin Crossf6298102017-04-19 15:25:25 -070076 ],
77
78 include_dirs: [
79 "external/skia/include/private",
80 "external/skia/src/core",
Jerome Gaillardbea67ce2024-03-28 14:21:16 +000081 "external/skia/src/utils",
Colin Crossf6298102017-04-19 15:25:25 -070082 ],
83
Fedor Kudasov182cbf92019-06-05 10:30:20 +010084 target: {
85 android: {
86 include_dirs: [
Fedor Kudasov182cbf92019-06-05 10:30:20 +010087 "external/skia/src/image",
Fedor Kudasov182cbf92019-06-05 10:30:20 +010088 "external/skia/src/gpu",
89 "external/skia/src/shaders",
90 ],
91 },
92 host: {
93 include_dirs: [
94 "external/vulkan-headers/include",
95 ],
96 cflags: [
97 "-Wno-unused-variable",
98 ],
Tej Singh78f65b62021-03-18 16:19:55 -070099 },
100 },
Colin Crossf6298102017-04-19 15:25:25 -0700101}
102
103cc_defaults {
104 name: "hwui_static_deps",
Sally Qi3ea28f12022-08-22 14:05:45 -0700105 defaults: [
106 "android.hardware.graphics.common-ndk_shared",
107 "android.hardware.graphics.composer3-ndk_shared",
108 ],
Colin Crossf6298102017-04-19 15:25:25 -0700109 shared_libs: [
Jerome Gaillarda02a12d2019-05-28 18:07:56 +0100110 "libbase",
Colin Crossf6298102017-04-19 15:25:25 -0700111 "libharfbuzz_ng",
Colin Crossf6298102017-04-19 15:25:25 -0700112 "libminikin",
Tyler Freemandcd164c2023-10-19 22:48:34 +0000113 "server_configurable_flags",
Colin Crossf6298102017-04-19 15:25:25 -0700114 ],
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100115
Alec Mouri45238012020-01-29 11:04:40 -0800116 static_libs: [
117 "libui-types",
118 ],
119
Tyler Freemandcd164c2023-10-19 22:48:34 +0000120 whole_static_libs: ["hwui_flags_cc_lib"],
121
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100122 target: {
123 android: {
124 shared_libs: [
Alec Mourid0001fe2021-11-22 10:09:22 -0800125 "android.hardware.graphics.common@1.2",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100126 "liblog",
127 "libcutils",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100128 "libutils",
129 "libEGL",
130 "libGLESv1_CM",
131 "libGLESv2",
132 "libGLESv3",
133 "libvulkan",
Alec Mouri22d753f2019-09-05 17:11:45 -0700134 "libnativedisplay",
Derek Sollenbergere78f7c92019-07-31 15:18:47 -0400135 "libnativewindow",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100136 "libprotobuf-cpp-lite",
137 "libft2",
138 "libandroidfw",
139 "libcrypto",
140 "libsync",
John Reckac175cc2023-05-05 16:29:14 -0400141 "libui",
Seigo Nonakacd348c62023-09-12 16:05:44 +0900142 "aconfig_text_flags_c_lib",
John Reck1b152e72023-10-24 20:43:22 -0400143 "server_configurable_flags",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100144 ],
145 static_libs: [
146 "libEGL_blobCache",
Stan Ilievc9043812020-02-03 16:57:09 -0500147 "libprotoutil",
Alec Mourid0001fe2021-11-22 10:09:22 -0800148 "libshaders",
Tej Singh78f65b62021-03-18 16:19:55 -0700149 "libstatslog_hwui",
150 "libstatspull_lazy",
151 "libstatssocket_lazy",
Alec Mourid0001fe2021-11-22 10:09:22 -0800152 "libtonemap",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100153 ],
154 },
155 host: {
156 static_libs: [
157 "libandroidfw",
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000158 "libhostgraphics",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100159 "libutils",
160 ],
Tej Singh78f65b62021-03-18 16:19:55 -0700161 },
162 },
Colin Crossf6298102017-04-19 15:25:25 -0700163}
164
165cc_defaults {
166 name: "hwui_bugreport_font_cache_usage",
Colin Crossf6298102017-04-19 15:25:25 -0700167 cflags: ["-DBUGREPORT_FONT_CACHE_USAGE"],
168}
169
170cc_defaults {
171 name: "hwui_compile_for_perf",
172 // TODO: Non-arm?
173 cflags: [
174 "-fno-omit-frame-pointer",
175 "-marm",
176 "-mapcs",
177 ],
178}
179
Zhizhou Yangf30f1122018-02-26 17:59:38 -0800180// Build hwui library with ThinLTO by default.
181cc_defaults {
182 name: "hwui_lto",
183 target: {
184 android: {
185 lto: {
186 thin: true,
187 },
188 },
189 },
190}
191
Colin Crossf6298102017-04-19 15:25:25 -0700192// ------------------------
Alec Mourief37c242020-03-02 21:38:09 +0000193// framework-graphics jar
194// ------------------------
195
Paul Duffin4e006622020-05-31 16:55:13 +0100196java_sdk_library {
Alec Mourief37c242020-03-02 21:38:09 +0000197 name: "framework-graphics",
Paul Duffin4e006622020-05-31 16:55:13 +0100198 defaults: ["framework-module-defaults"],
199 visibility: [
200 "//frameworks/base", // Framework
201 ],
Alec Mourief37c242020-03-02 21:38:09 +0000202
203 srcs: [
204 ":framework-graphics-srcs",
205 ],
206
207 permitted_packages: [
208 "android.graphics",
209 ],
210
Alec Mourief37c242020-03-02 21:38:09 +0000211 // TODO: once framework-graphics is officially part of the
212 // UI-rendering module this line would no longer be
213 // needed.
214 installable: true,
215
Paul Duffin4e006622020-05-31 16:55:13 +0100216 // Disable api_lint that the defaults enable
217 // TODO: enable this
218 api_lint: {
219 enabled: false,
220 },
Anton Hansson96b08ae2020-12-21 16:59:06 +0000221 // TODO: remove this
222 unsafe_ignore_missing_latest_api: true,
Alec Mourief37c242020-03-02 21:38:09 +0000223}
224
225filegroup {
226 name: "framework-graphics-srcs",
227 srcs: [
228 "apex/java/**/*.java",
229 ],
Tej Singh78f65b62021-03-18 16:19:55 -0700230 path: "apex/java",
Alec Mourief37c242020-03-02 21:38:09 +0000231}
232
Alec Mourief37c242020-03-02 21:38:09 +0000233// ------------------------
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400234// APEX
235// ------------------------
236
237cc_library_headers {
238 name: "android_graphics_apex_headers",
239
240 host_supported: true,
241 export_include_dirs: [
242 "apex/include",
243 ],
244 target: {
245 windows: {
246 enabled: true,
247 },
Tej Singh78f65b62021-03-18 16:19:55 -0700248 },
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400249}
250
251cc_defaults {
252 name: "android_graphics_apex",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400253 cflags: [
254 "-Wno-unused-parameter",
255 "-Wno-non-virtual-dtor",
256 "-Wno-maybe-uninitialized",
257 "-Wno-parentheses",
258 "-Wall",
259 "-Werror",
260 "-Wno-error=deprecated-declarations",
261 "-Wunused",
262 "-Wunreachable-code",
263 ],
264
265 cppflags: ["-Wno-conversion-null"],
266
267 srcs: [
268 "apex/android_matrix.cpp",
269 "apex/android_paint.cpp",
270 "apex/android_region.cpp",
Leon Scroggins IIIcd9e7b42022-04-08 15:27:57 -0400271 "apex/properties.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400272 ],
273
Tej Singh78f65b62021-03-18 16:19:55 -0700274 header_libs: ["android_graphics_apex_headers"],
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400275
276 target: {
277 android: {
278 srcs: [ // sources that depend on android only libraries
279 "apex/android_bitmap.cpp",
280 "apex/android_canvas.cpp",
281 "apex/jni_runtime.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400282 ],
283 },
Derek Sollenbergerc5882c42019-10-25 11:11:32 -0400284 host: {
285 srcs: [
286 "apex/LayoutlibLoader.cpp",
287 ],
Tej Singh78f65b62021-03-18 16:19:55 -0700288 },
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400289 },
290}
291
292// ------------------------
293// Android Graphics JNI
294// ------------------------
295
296cc_library_headers {
297 name: "android_graphics_jni_headers",
298
299 host_supported: true,
300 export_include_dirs: [
301 "jni",
302 ],
303 target: {
304 windows: {
305 enabled: true,
306 },
Tej Singh78f65b62021-03-18 16:19:55 -0700307 },
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400308}
309
310cc_defaults {
311 name: "android_graphics_jni",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400312 cflags: [
313 "-Wno-unused-parameter",
314 "-Wno-non-virtual-dtor",
315 "-Wno-maybe-uninitialized",
316 "-Wno-parentheses",
317
318 "-DGL_GLEXT_PROTOTYPES",
319 "-DEGL_EGLEXT_PROTOTYPES",
320
321 "-DU_USING_ICU_NAMESPACE=0",
322
323 "-Wall",
324 "-Werror",
325 "-Wno-error=deprecated-declarations",
326 "-Wunused",
327 "-Wunreachable-code",
328 ],
329
330 cppflags: ["-Wno-conversion-null"],
331
332 srcs: [
333 "jni/android_graphics_animation_NativeInterpolatorFactory.cpp",
334 "jni/android_graphics_animation_RenderNodeAnimator.cpp",
335 "jni/android_graphics_Canvas.cpp",
336 "jni/android_graphics_ColorSpace.cpp",
337 "jni/android_graphics_drawable_AnimatedVectorDrawable.cpp",
338 "jni/android_graphics_drawable_VectorDrawable.cpp",
339 "jni/android_graphics_HardwareRendererObserver.cpp",
340 "jni/android_graphics_Matrix.cpp",
341 "jni/android_graphics_Picture.cpp",
342 "jni/android_graphics_DisplayListCanvas.cpp",
Nader Jawad5f0a8002023-02-21 17:00:51 -0800343 "jni/android_graphics_Mesh.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400344 "jni/android_graphics_RenderNode.cpp",
345 "jni/android_nio_utils.cpp",
346 "jni/android_util_PathParser.cpp",
347
Jerome Gaillard01f8f4f2024-03-19 14:24:35 +0000348 "jni/AnimatedImageDrawable.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400349 "jni/Bitmap.cpp",
Jerome Gaillardf3ff3b82024-02-26 15:49:23 +0000350 "jni/BitmapRegionDecoder.cpp",
Nader Jawad8c1d7aa2023-03-02 15:59:11 -0800351 "jni/BufferUtils.cpp",
Nader Jawada3521852023-01-30 20:23:46 -0800352 "jni/HardwareBufferHelpers.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400353 "jni/BitmapFactory.cpp",
354 "jni/ByteBufferStreamAdaptor.cpp",
355 "jni/Camera.cpp",
356 "jni/CanvasProperty.cpp",
357 "jni/ColorFilter.cpp",
358 "jni/CreateJavaOutputStreamAdaptor.cpp",
359 "jni/FontFamily.cpp",
360 "jni/FontUtils.cpp",
John Reck5bd537e2023-01-24 20:13:45 -0500361 "jni/Gainmap.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400362 "jni/Graphics.cpp",
363 "jni/ImageDecoder.cpp",
364 "jni/Interpolator.cpp",
Angel Aguayo90c46ee2022-11-08 23:42:09 +0000365 "jni/MeshSpecification.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400366 "jni/MaskFilter.cpp",
367 "jni/NinePatch.cpp",
368 "jni/NinePatchPeeker.cpp",
369 "jni/Paint.cpp",
370 "jni/PaintFilter.cpp",
371 "jni/Path.cpp",
372 "jni/PathEffect.cpp",
Chet Haase0834e9f2022-08-15 23:01:03 +0000373 "jni/PathIterator.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400374 "jni/PathMeasure.cpp",
375 "jni/Picture.cpp",
Jerome Gaillard9ce48282021-12-02 17:11:28 +0000376 "jni/Region.cpp",
Sally Qi9d2d9342023-02-06 11:11:31 -0800377 "jni/ScopedParcel.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400378 "jni/Shader.cpp",
Nader Jawad390d6e82020-09-24 21:35:03 -0700379 "jni/RenderEffect.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400380 "jni/Typeface.cpp",
381 "jni/Utils.cpp",
382 "jni/YuvToJpegEncoder.cpp",
383 "jni/fonts/Font.cpp",
384 "jni/fonts/FontFamily.cpp",
385 "jni/text/LineBreaker.cpp",
386 "jni/text/MeasuredText.cpp",
Seigo Nonakaf3a19152020-09-14 15:29:42 -0700387 "jni/text/TextShaper.cpp",
Haoyu Zhang043d23a2023-02-22 11:20:09 -0800388 "jni/text/GraphemeBreak.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400389 ],
390
Dichen Zhang3b2c0ce2022-12-14 19:58:55 +0000391 header_libs: [
392 "android_graphics_jni_headers",
393 "libnativewindow_headers",
394 ],
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400395
396 include_dirs: [
397 "external/skia/include/private",
398 "external/skia/src/codec",
399 "external/skia/src/core",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400400 ],
401
402 shared_libs: [
403 "libbase",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400404 "libcutils",
405 "libharfbuzz_ng",
Dichen Zhang3b2c0ce2022-12-14 19:58:55 +0000406 "libimage_io",
407 "libjpeg",
Dichen Zhang7087aaf2023-04-14 19:01:05 +0000408 "libultrahdr",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400409 "liblog",
410 "libminikin",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400411 "libz",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400412 ],
413
Tej Singh78f65b62021-03-18 16:19:55 -0700414 static_libs: [
415 "libnativehelper_lazy",
416 "libziparchive_for_incfs",
417 ],
Orion Hodson33cbf8b2021-02-08 16:17:07 +0000418
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400419 target: {
420 android: {
421 srcs: [ // sources that depend on android only libraries
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400422 "jni/android_graphics_TextureLayer.cpp",
423 "jni/android_graphics_HardwareRenderer.cpp",
Nader Jawada3521852023-01-30 20:23:46 -0800424 "jni/android_graphics_HardwareBufferRenderer.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400425 "jni/GIFMovie.cpp",
426 "jni/GraphicsStatsService.cpp",
427 "jni/Movie.cpp",
428 "jni/MovieImpl.cpp",
429 "jni/pdf/PdfDocument.cpp",
430 "jni/pdf/PdfEditor.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400431 "jni/pdf/PdfUtils.cpp",
432 ],
433 shared_libs: [
434 "libandroidfw",
Derek Sollenberger42c50042020-02-18 14:51:17 -0500435 "libbinder",
Derek Sollenberger15da7e22020-02-14 14:16:34 -0500436 "libbinder_ndk",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400437 "libmediandk",
438 "libnativedisplay",
439 "libnativewindow",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400440 "libpdfium",
441 ],
442 static_libs: [
443 "libgif",
Tej Singh78f65b62021-03-18 16:19:55 -0700444 "libstatslog_hwui",
445 "libstatspull_lazy",
446 "libstatssocket_lazy",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400447 ],
448 },
449 host: {
450 cflags: [
451 "-Wno-unused-const-variable",
452 "-Wno-unused-function",
453 ],
454 static_libs: [
455 "libandroidfw",
456 ],
Tej Singh78f65b62021-03-18 16:19:55 -0700457 },
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400458 },
459}
460
Tej Singh78f65b62021-03-18 16:19:55 -0700461cc_library_static {
462 name: "libstatslog_hwui",
463 generated_sources: ["statslog_hwui.cpp"],
464 generated_headers: ["statslog_hwui.h"],
465 export_generated_headers: ["statslog_hwui.h"],
466 static_libs: [
467 "libstatssocket_lazy",
468 "libstatspull_lazy",
469 ],
470}
471
472genrule {
473 name: "statslog_hwui.h",
474 tools: ["stats-log-api-gen"],
475 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_hwui.h --module hwui" +
476 " --namespace android,uirenderer,stats",
477 out: [
478 "statslog_hwui.h",
479 ],
480}
481
482genrule {
483 name: "statslog_hwui.cpp",
484 tools: ["stats-log-api-gen"],
485 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_hwui.cpp --module hwui" +
486 " --namespace android,uirenderer,stats --importHeader statslog_hwui.h",
487 out: [
488 "statslog_hwui.cpp",
489 ],
490}
491
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400492// ------------------------
Colin Crossf6298102017-04-19 15:25:25 -0700493// library
494// ------------------------
495
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400496cc_library_headers {
497 name: "libhwui_internal_headers",
498
499 host_supported: true,
500 export_include_dirs: [
501 ".",
502 ],
Tej Singh78f65b62021-03-18 16:19:55 -0700503 header_libs: ["android_graphics_jni_headers"],
504 export_header_lib_headers: ["android_graphics_jni_headers"],
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000505 target: {
506 android: {
507 export_include_dirs: ["platform/android"],
508 },
509 host: {
510 export_include_dirs: ["platform/host"],
511 },
512 windows: {
513 enabled: true,
514 },
515 },
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400516}
517
Colin Crossf6298102017-04-19 15:25:25 -0700518cc_defaults {
519 name: "libhwui_defaults",
520 defaults: ["hwui_defaults"],
Derek Sollenbergerd938e5a2017-07-24 09:42:07 -0400521
522 whole_static_libs: ["libskia"],
523
Colin Crossf6298102017-04-19 15:25:25 -0700524 srcs: [
John Reckdc95f102020-11-16 12:35:02 -0500525 "canvas/CanvasFrontend.cpp",
John Reck013127b2020-10-29 20:53:51 -0400526 "canvas/CanvasOpBuffer.cpp",
527 "canvas/CanvasOpRasterizer.cpp",
John Reck5cb290b2021-02-01 13:47:31 -0500528 "effects/StretchEffect.cpp",
John Reck115195e2023-02-01 20:57:44 -0500529 "effects/GainmapRenderer.cpp",
Dongya Jiange2b99382022-02-28 21:35:57 +0800530 "pipeline/skia/BackdropFilterDrawable.cpp",
Nader Jawad2dc632a2021-03-29 18:51:29 -0700531 "pipeline/skia/HolePunch.cpp",
Jerome Gaillardbea67ce2024-03-28 14:21:16 +0000532 "pipeline/skia/SkiaCpuPipeline.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100533 "pipeline/skia/SkiaDisplayList.cpp",
Jerome Gaillardbea67ce2024-03-28 14:21:16 +0000534 "pipeline/skia/SkiaPipeline.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100535 "pipeline/skia/SkiaRecordingCanvas.cpp",
Nader Jawad197743f2021-04-19 19:45:13 -0700536 "pipeline/skia/StretchMask.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100537 "pipeline/skia/RenderNodeDrawable.cpp",
538 "pipeline/skia/ReorderBarrierDrawables.cpp",
Nader Jawad2dc632a2021-03-29 18:51:29 -0700539 "pipeline/skia/TransformCanvas.cpp",
Fedor Kudasov666f8a52019-07-03 15:21:14 +0100540 "renderthread/Frame.cpp",
541 "renderthread/RenderTask.cpp",
542 "renderthread/TimeLord.cpp",
Derek Sollenberger2d142132018-01-22 10:25:26 -0500543 "hwui/AnimatedImageDrawable.cpp",
Jerome Gaillard01f8f4f2024-03-19 14:24:35 +0000544 "hwui/AnimatedImageThread.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700545 "hwui/Bitmap.cpp",
Mike Reed0f9dce72021-02-12 21:20:33 -0500546 "hwui/BlurDrawLooper.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700547 "hwui/Canvas.cpp",
Leon Scroggins III753a56f2019-12-11 11:02:15 -0500548 "hwui/ImageDecoder.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700549 "hwui/MinikinSkia.cpp",
550 "hwui/MinikinUtils.cpp",
551 "hwui/PaintImpl.cpp",
552 "hwui/Typeface.cpp",
Jerome Gaillard9b2b7622024-03-14 18:55:30 +0000553 "thread/CommonPool.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700554 "utils/Blur.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100555 "utils/Color.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700556 "utils/LinearAllocator.cpp",
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000557 "utils/StringUtils.cpp",
Kevin Lubick04931012023-11-15 19:17:43 +0000558 "utils/TypefaceUtils.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700559 "utils/VectorDrawableUtils.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100560 "AnimationContext.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700561 "Animator.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100562 "AnimatorManager.cpp",
563 "CanvasTransform.cpp",
564 "DamageAccumulator.cpp",
Jerome Gaillard8f6d6e02024-02-26 18:56:00 +0000565 "DeviceInfo.cpp",
Jerome Gaillardf3ff3b82024-02-26 15:49:23 +0000566 "FrameInfo.cpp",
567 "FrameInfoVisualizer.cpp",
568 "FrameMetricsReporter.cpp",
Sally Qi587fb572023-03-03 15:50:06 -0800569 "Gainmap.cpp",
Jerome Gaillardea9bf2a2024-03-13 19:32:31 +0000570 "HWUIProperties.sysprop",
Colin Crossf6298102017-04-19 15:25:25 -0700571 "Interpolator.cpp",
Jerome Gaillard6352d1c2024-02-27 12:46:21 +0000572 "JankTracker.cpp",
Jerome Gaillardbea67ce2024-03-28 14:21:16 +0000573 "LayerUpdateQueue.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100574 "LightingInfo.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700575 "Matrix.cpp",
Nader Jawad5f0a8002023-02-21 17:00:51 -0800576 "Mesh.cpp",
John Reck5f66fb82022-09-23 17:49:23 -0400577 "MemoryPolicy.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700578 "PathParser.cpp",
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000579 "ProfileData.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700580 "Properties.cpp",
581 "PropertyValuesAnimatorSet.cpp",
582 "PropertyValuesHolder.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100583 "RecordingCanvas.cpp",
584 "RenderNode.cpp",
585 "RenderProperties.cpp",
Fedor Kudasov09cfce02019-07-04 09:41:13 +0100586 "RootRenderNode.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700587 "SkiaCanvas.cpp",
Mike Reed74065272021-04-12 09:52:07 -0400588 "SkiaInterpolator.cpp",
Alec Mouridded51f2023-02-01 06:04:55 +0000589 "Tonemapper.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700590 "VectorDrawable.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700591 ],
592
Kweku Adams228b6d22018-04-12 13:09:04 -0700593 proto: {
594 export_proto_headers: true,
595 },
596
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000597 header_libs: ["libandroid_headers_private"],
598
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100599 target: {
600 android: {
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000601 header_libs: ["libtonemap_headers"],
602
603 local_include_dirs: ["platform/android"],
Jorim Jaggi71db8892021-02-03 23:19:29 +0100604
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100605 srcs: [
Stan Ilieve0fae232020-01-07 17:21:49 -0500606 "pipeline/skia/ATraceMemoryDump.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100607 "pipeline/skia/GLFunctorDrawable.cpp",
608 "pipeline/skia/LayerDrawable.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100609 "pipeline/skia/ShaderCache.cpp",
Jerome Gaillardbea67ce2024-03-28 14:21:16 +0000610 "pipeline/skia/SkiaGpuPipeline.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100611 "pipeline/skia/SkiaMemoryTracer.cpp",
612 "pipeline/skia/SkiaOpenGLPipeline.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100613 "pipeline/skia/SkiaProfileRenderer.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100614 "pipeline/skia/SkiaVulkanPipeline.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100615 "pipeline/skia/VkFunctorDrawable.cpp",
616 "pipeline/skia/VkInteropFunctorDrawable.cpp",
617 "renderstate/RenderState.cpp",
618 "renderthread/CacheManager.cpp",
619 "renderthread/CanvasContext.cpp",
620 "renderthread/DrawFrameTask.cpp",
621 "renderthread/EglManager.cpp",
622 "renderthread/ReliableSurface.cpp",
Nader Jawad086645d2021-09-24 13:42:47 -0700623 "renderthread/RenderEffectCapabilityQuery.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100624 "renderthread/VulkanManager.cpp",
625 "renderthread/VulkanSurface.cpp",
626 "renderthread/RenderProxy.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100627 "renderthread/RenderThread.cpp",
Matt Buckleye9023cf2022-11-23 22:39:25 +0000628 "renderthread/HintSessionWrapper.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100629 "service/GraphicsStatsService.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100630 "utils/GLUtils.cpp",
Alec Mouri45238012020-01-29 11:04:40 -0800631 "utils/NdkUtils.cpp",
Stan Ilievaaa9e832019-09-17 14:07:23 -0400632 "AutoBackendTextureRelease.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100633 "DeferredLayerUpdater.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100634 "HardwareBitmapUploader.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100635 "Layer.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100636 "ProfileDataContainer.cpp",
637 "Readback.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100638 "TreeInfo.cpp",
639 "WebViewFunctorManager.cpp",
640 "protos/graphicsstats.proto",
641 ],
642
643 // Allow implicit fallthroughs in HardwareBitmapUploader.cpp until they are fixed.
644 cflags: ["-Wno-implicit-fallthrough"],
645 },
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000646 host: {
Jerome Gaillard8f6d6e02024-02-26 18:56:00 +0000647 header_libs: [
648 "libnativebase_headers",
649 "libnativedisplay_headers",
650 ],
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000651
652 local_include_dirs: ["platform/host"],
653
654 srcs: [
655 "platform/host/renderthread/CacheManager.cpp",
656 "platform/host/renderthread/RenderThread.cpp",
657 "platform/host/ProfileDataContainer.cpp",
658 "platform/host/Readback.cpp",
659 "platform/host/WebViewFunctorManager.cpp",
660 ],
661
Jerome Gaillard8f6d6e02024-02-26 18:56:00 +0000662 cflags: [
663 "-DHWUI_NULL_GPU",
664 "-DNULL_GPU_MAX_TEXTURE_SIZE=4096",
665 "-Wno-unused-private-field",
666 ],
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000667 },
Tej Singh78f65b62021-03-18 16:19:55 -0700668 },
Colin Crossf6298102017-04-19 15:25:25 -0700669}
670
671cc_library {
672 name: "libhwui",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100673 host_supported: true,
Chris Craikd17b63c2017-06-01 10:45:36 -0700674 defaults: [
675 "libhwui_defaults",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400676 "android_graphics_apex",
677 "android_graphics_jni",
Collin Fijalkovichc10428f2021-04-23 14:09:16 -0700678 "linker_hugepage_aligned",
Zhizhou Yang17371ec2017-10-13 11:42:13 -0700679 ],
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400680 export_header_lib_headers: ["android_graphics_apex_headers"],
Derek Sollenberger2c5d6342020-04-09 09:44:54 -0400681 target: {
682 android: {
683 version_script: "libhwui.map.txt",
Tej Singh78f65b62021-03-18 16:19:55 -0700684 },
Derek Sollenberger2c5d6342020-04-09 09:44:54 -0400685 },
Yi Kong7c0a3ad2022-01-08 01:01:20 +0800686 afdo: true,
Colin Crossf6298102017-04-19 15:25:25 -0700687}
688
Colin Crossf6298102017-04-19 15:25:25 -0700689cc_library_static {
John Reck23462d82019-05-29 16:55:06 -0700690 name: "libhwui_static",
Colin Crossf6298102017-04-19 15:25:25 -0700691 defaults: [
692 "libhwui_defaults",
Colin Crossf6298102017-04-19 15:25:25 -0700693 ],
Colin Crossf6298102017-04-19 15:25:25 -0700694}
695
696cc_defaults {
697 name: "hwui_test_defaults",
698 defaults: ["hwui_defaults"],
Nolan Scobief89a38a2022-11-09 15:23:07 -0500699 test_suites: ["general-tests"],
Jorim Jaggi71db8892021-02-03 23:19:29 +0100700 header_libs: ["libandroid_headers_private"],
Alec Mouri680414e2020-01-28 09:22:33 -0800701 target: {
702 android: {
Jerome Gaillard87ef5242024-02-13 16:33:00 +0000703 local_include_dirs: ["platform/android"],
Alec Mouri680414e2020-01-28 09:22:33 -0800704 shared_libs: [
Tej Singh78f65b62021-03-18 16:19:55 -0700705 "libgui",
706 "libui",
707 ],
708 },
Alec Mouri680414e2020-01-28 09:22:33 -0800709 },
Colin Crossf6298102017-04-19 15:25:25 -0700710 srcs: [
711 "tests/common/scenes/*.cpp",
712 "tests/common/LeakChecker.cpp",
713 "tests/common/TestListViewSceneBase.cpp",
714 "tests/common/TestContext.cpp",
715 "tests/common/TestScene.cpp",
716 "tests/common/TestUtils.cpp",
717 ],
718}
719
720// ------------------------
721// unit tests
722// ------------------------
723
724cc_test {
725 name: "hwui_unit_tests",
Derek Sollenbergerd3e9eec2020-04-06 11:43:59 -0400726 defaults: [
727 "hwui_test_defaults",
728 "android_graphics_apex",
729 "android_graphics_jni",
730 ],
Colin Crossf6298102017-04-19 15:25:25 -0700731
732 static_libs: [
Seigo Nonakacd348c62023-09-12 16:05:44 +0900733 "libflagtest",
Colin Crossf6298102017-04-19 15:25:25 -0700734 "libgmock",
John Reck23462d82019-05-29 16:55:06 -0700735 "libhwui_static",
Colin Crossf6298102017-04-19 15:25:25 -0700736 ],
Tej Singhbb8554a2018-01-26 11:59:14 -0800737 shared_libs: [
738 "libmemunreachable",
Tej Singhbb8554a2018-01-26 11:59:14 -0800739 ],
Colin Crossf6298102017-04-19 15:25:25 -0700740 srcs: [
741 "tests/unit/main.cpp",
Derek Sollenbergerd3e9eec2020-04-06 11:43:59 -0400742 "tests/unit/ABitmapTests.cpp",
Nolan Scobie2163e412022-10-24 19:57:43 -0400743 "tests/unit/AutoBackendTextureReleaseTests.cpp",
Derek Sollenbergerf9e45d12017-06-01 13:07:39 -0400744 "tests/unit/CacheManagerTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700745 "tests/unit/CanvasContextTests.cpp",
John Reck013127b2020-10-29 20:53:51 -0400746 "tests/unit/CanvasOpTests.cpp",
John Reckdc95f102020-11-16 12:35:02 -0500747 "tests/unit/CanvasFrontendTests.cpp",
John Reck322b8ab2019-03-14 13:15:28 -0700748 "tests/unit/CommonPoolTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700749 "tests/unit/DamageAccumulatorTests.cpp",
750 "tests/unit/DeferredLayerUpdaterTests.cpp",
John Reck064650b2021-01-19 21:29:24 -0500751 "tests/unit/EglManagerTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700752 "tests/unit/FatVectorTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700753 "tests/unit/GraphicsStatsServiceTests.cpp",
Matt Buckley0c668362023-09-07 05:52:07 +0000754 "tests/unit/HintSessionWrapperTests.cpp",
Jorim Jaggi10f328c2021-01-19 00:08:02 +0100755 "tests/unit/JankTrackerTests.cpp",
Pablo Gamitodfb85a22021-08-26 01:19:05 +0200756 "tests/unit/FrameMetricsReporterTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700757 "tests/unit/LayerUpdateQueueTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700758 "tests/unit/LinearAllocatorTests.cpp",
759 "tests/unit/MatrixTests.cpp",
John Reck95735052020-12-15 13:39:22 -0500760 "tests/unit/OpBufferTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700761 "tests/unit/PathInterpolatorTests.cpp",
Nader Jawad086645d2021-09-24 13:42:47 -0700762 "tests/unit/RenderEffectCapabilityQueryTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700763 "tests/unit/RenderNodeDrawableTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700764 "tests/unit/RenderNodeTests.cpp",
765 "tests/unit/RenderPropertiesTests.cpp",
John Reck700079e2019-02-19 10:38:50 -0800766 "tests/unit/RenderThreadTests.cpp",
Stan Ilievd495f432017-10-09 15:49:32 -0400767 "tests/unit/ShaderCacheTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700768 "tests/unit/SkiaBehaviorTests.cpp",
769 "tests/unit/SkiaDisplayListTests.cpp",
770 "tests/unit/SkiaPipelineTests.cpp",
771 "tests/unit/SkiaRenderPropertiesTests.cpp",
772 "tests/unit/SkiaCanvasTests.cpp",
Nader Jawadc401b232021-05-21 12:52:05 -0700773 "tests/unit/StretchEffectTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700774 "tests/unit/StringUtilsTests.cpp",
775 "tests/unit/TestUtilsTests.cpp",
John Reckf8441e62017-10-23 13:10:41 -0700776 "tests/unit/ThreadBaseTests.cpp",
777 "tests/unit/TypefaceTests.cpp",
Seigo Nonakacd348c62023-09-12 16:05:44 +0900778 "tests/unit/UnderlineTest.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700779 "tests/unit/VectorDrawableTests.cpp",
John Reck283bb462018-12-13 16:40:14 -0800780 "tests/unit/WebViewFunctorManagerTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700781 ],
jahinimtiazd8b1dda2023-03-13 23:53:08 +0000782 data: [
783 ":hwuimicro",
784 ],
Colin Crossf6298102017-04-19 15:25:25 -0700785}
786
787// ------------------------
788// Macro-bench app
789// ------------------------
790
791cc_benchmark {
792 name: "hwuimacro",
793 defaults: ["hwui_test_defaults"],
794
John Reck23462d82019-05-29 16:55:06 -0700795 static_libs: ["libhwui"],
Tej Singhbb8554a2018-01-26 11:59:14 -0800796 shared_libs: [
797 "libmemunreachable",
Tej Singhbb8554a2018-01-26 11:59:14 -0800798 ],
Colin Crossf6298102017-04-19 15:25:25 -0700799
800 srcs: [
801 "tests/macrobench/TestSceneRunner.cpp",
802 "tests/macrobench/main.cpp",
803 ],
804}
805
806// ------------------------
807// Micro-bench app
808// ---------------------
809
810cc_benchmark {
811 name: "hwuimicro",
812 defaults: ["hwui_test_defaults"],
813
John Reck23462d82019-05-29 16:55:06 -0700814 static_libs: ["libhwui_static"],
Tej Singhbb8554a2018-01-26 11:59:14 -0800815 shared_libs: [
816 "libmemunreachable",
Tej Singhbb8554a2018-01-26 11:59:14 -0800817 ],
Colin Crossf6298102017-04-19 15:25:25 -0700818
819 srcs: [
820 "tests/microbench/main.cpp",
John Reckb5eeb182020-12-09 13:45:39 -0500821 "tests/microbench/CanvasOpBench.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700822 "tests/microbench/DisplayListCanvasBench.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700823 "tests/microbench/LinearAllocatorBench.cpp",
824 "tests/microbench/PathParserBench.cpp",
825 "tests/microbench/RenderNodeBench.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700826 ],
827}