blob: 769afc58f50df00d38d6b5033da5ca61817ff5a1 [file] [log] [blame]
Colin Crossf6298102017-04-19 15:25:25 -07001cc_defaults {
2 name: "hwui_defaults",
3 defaults: [
4 "hwui_static_deps",
Pirama Arumuga Nainar0dfd4be2017-11-16 22:40:00 -08005 "skia_deps",
Colin Crossf6298102017-04-19 15:25:25 -07006 //"hwui_bugreport_font_cache_usage",
7 //"hwui_compile_for_perf",
Pirama Arumuga Nainar0dfd4be2017-11-16 22:40:00 -08008 "hwui_pgo",
Pirama Arumuga Nainarb7913e12018-03-09 00:03:57 +00009 "hwui_lto",
Colin Crossf6298102017-04-19 15:25:25 -070010 ],
11
John Reck283bb462018-12-13 16:40:14 -080012 cpp_std: "experimental",
13
Colin Crossf6298102017-04-19 15:25:25 -070014 cflags: [
15 "-DEGL_EGLEXT_PROTOTYPES",
16 "-DGL_GLEXT_PROTOTYPES",
17 "-DATRACE_TAG=ATRACE_TAG_VIEW",
18 "-DLOG_TAG=\"OpenGLRenderer\"",
19 "-Wall",
20 "-Wno-unused-parameter",
21 "-Wunreachable-code",
22 "-Werror",
23 "-fvisibility=hidden",
24
25 // GCC false-positives on this warning, and since we -Werror that's
26 // a problem
27 "-Wno-free-nonheap-object",
Colin Crossf6298102017-04-19 15:25:25 -070028 ],
29
30 include_dirs: [
31 "external/skia/include/private",
32 "external/skia/src/core",
Colin Crossf6298102017-04-19 15:25:25 -070033 ],
34
35 product_variables: {
John Reck27294182018-07-11 11:21:09 -070036 eng: {
37 lto: {
38 never: true,
39 },
40 },
Colin Crossf6298102017-04-19 15:25:25 -070041 },
Fedor Kudasov182cbf92019-06-05 10:30:20 +010042
43 target: {
44 android: {
45 include_dirs: [
46 "external/skia/src/effects",
47 "external/skia/src/image",
48 "external/skia/src/utils",
49 "external/skia/src/gpu",
50 "external/skia/src/shaders",
51 ],
52 },
53 host: {
54 include_dirs: [
55 "external/vulkan-headers/include",
56 ],
57 cflags: [
58 "-Wno-unused-variable",
59 ],
60 }
61 }
Colin Crossf6298102017-04-19 15:25:25 -070062}
63
64cc_defaults {
65 name: "hwui_static_deps",
66 shared_libs: [
Jerome Gaillarda02a12d2019-05-28 18:07:56 +010067 "libbase",
Colin Crossf6298102017-04-19 15:25:25 -070068 "libharfbuzz_ng",
Colin Crossf6298102017-04-19 15:25:25 -070069 "libminikin",
Colin Crossf6298102017-04-19 15:25:25 -070070 ],
Fedor Kudasov182cbf92019-06-05 10:30:20 +010071
Alec Mouri45238012020-01-29 11:04:40 -080072 static_libs: [
73 "libui-types",
74 ],
75
Fedor Kudasov182cbf92019-06-05 10:30:20 +010076 target: {
77 android: {
78 shared_libs: [
79 "liblog",
80 "libcutils",
81 "libstatslog",
82 "libutils",
83 "libEGL",
84 "libGLESv1_CM",
85 "libGLESv2",
86 "libGLESv3",
87 "libvulkan",
Alec Mouri22d753f2019-09-05 17:11:45 -070088 "libnativedisplay",
Derek Sollenbergere78f7c92019-07-31 15:18:47 -040089 "libnativewindow",
Fedor Kudasov182cbf92019-06-05 10:30:20 +010090 "libprotobuf-cpp-lite",
91 "libft2",
92 "libandroidfw",
93 "libcrypto",
94 "libsync",
Stan Ilievc9043812020-02-03 16:57:09 -050095 "libstatspull",
96 "libstatssocket",
Fedor Kudasov182cbf92019-06-05 10:30:20 +010097 ],
98 static_libs: [
99 "libEGL_blobCache",
Stan Ilievc9043812020-02-03 16:57:09 -0500100 "libprotoutil",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100101 ],
102 },
103 host: {
104 static_libs: [
105 "libandroidfw",
106 "libutils",
107 ],
108 }
109 }
Colin Crossf6298102017-04-19 15:25:25 -0700110}
111
112cc_defaults {
113 name: "hwui_bugreport_font_cache_usage",
Colin Crossf6298102017-04-19 15:25:25 -0700114 cflags: ["-DBUGREPORT_FONT_CACHE_USAGE"],
115}
116
117cc_defaults {
118 name: "hwui_compile_for_perf",
119 // TODO: Non-arm?
120 cflags: [
121 "-fno-omit-frame-pointer",
122 "-marm",
123 "-mapcs",
124 ],
125}
126
Pirama Arumuga Nainar0dfd4be2017-11-16 22:40:00 -0800127// Build libhwui with PGO by default.
128// Location of PGO profile data is defined in build/soong/cc/pgo.go
129// and is separate from hwui.
130// To turn it off, set ANDROID_PGO_NO_PROFILE_USE environment variable
131// or set enable_profile_use property to false.
132cc_defaults {
133 name: "hwui_pgo",
134
135 pgo: {
136 instrumentation: true,
137 profile_file: "hwui/hwui.profdata",
138 benchmarks: ["hwui"],
Zhizhou Yang58e1b782017-12-06 16:59:06 -0800139 enable_profile_use: true,
Pirama Arumuga Nainar0dfd4be2017-11-16 22:40:00 -0800140 },
141}
142
Zhizhou Yangf30f1122018-02-26 17:59:38 -0800143// Build hwui library with ThinLTO by default.
144cc_defaults {
145 name: "hwui_lto",
146 target: {
147 android: {
148 lto: {
149 thin: true,
150 },
151 },
152 },
153}
154
Colin Crossf6298102017-04-19 15:25:25 -0700155// ------------------------
Alec Mourief37c242020-03-02 21:38:09 +0000156// framework-graphics jar
157// ------------------------
158
159java_library {
160 name: "framework-graphics",
161
162 srcs: [
163 ":framework-graphics-srcs",
164 ],
165
166 permitted_packages: [
167 "android.graphics",
168 ],
169
170 sdk_version: "module_current",
171
172 // TODO: once framework-graphics is officially part of the
173 // UI-rendering module this line would no longer be
174 // needed.
175 installable: true,
176
177 // Enable detection of apis used by this module
178 plugins: ["java_api_finder",],
179}
180
181filegroup {
182 name: "framework-graphics-srcs",
183 srcs: [
184 "apex/java/**/*.java",
185 ],
186 path: "apex/java"
187}
188
189stubs_defaults {
190 name: "framework-graphics-stubs-srcs-defaults",
191 srcs: [ ":framework-graphics-srcs"],
192}
193
194droidstubs {
195 name: "framework-graphics-api-module_libs_api",
196 defaults: [
197 "framework-graphics-stubs-srcs-defaults",
198 "framework-module-api-defaults-module_libs_api",
199 ],
200}
201
202droidstubs {
203 name: "framework-graphics-stubs-srcs-module_libs_api",
204 defaults: [
205 "framework-graphics-stubs-srcs-defaults",
206 "framework-module-stubs-defaults-module_libs_api",
207 ],
208}
209
210droidstubs {
211 name: "framework-graphics-stubs-srcs-publicapi",
212 defaults: [
213 "framework-graphics-stubs-srcs-defaults",
214 "framework-module-stubs-defaults-publicapi",
215 ],
216}
217
218droidstubs {
219 name: "framework-graphics-stubs-srcs-systemapi",
220 defaults: [
221 "framework-graphics-stubs-srcs-defaults",
222 "framework-module-stubs-defaults-systemapi",
223 ],
224}
225
226java_library {
227 name: "framework-graphics-stubs-module_libs_api",
228 srcs: [":framework-graphics-stubs-srcs-module_libs_api"],
229 sdk_version: "system_current",
230 visibility: [
231 "//frameworks/base", // Framework
232 "//frameworks/base/libs/hwui", // UI-rendering module
233 ],
234}
235
236java_library {
237 name: "framework-graphics-stubs-publicapi",
238 srcs: [":framework-graphics-stubs-srcs-publicapi"],
239 sdk_version: "current",
240 visibility: [
241 "//frameworks/base", // Framework
242 "//frameworks/base/libs/hwui", // UI-rendering module
243 ],
244}
245
246java_library {
247 name: "framework-graphics-stubs-systemapi",
248 srcs: [":framework-graphics-stubs-srcs-systemapi"],
249 sdk_version: "system_current",
250 visibility: [
251 "//frameworks/base", // Framework
252 "//frameworks/base/libs/hwui", // UI-rendering module
253 ],
254}
255
256// ------------------------
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400257// APEX
258// ------------------------
259
260cc_library_headers {
261 name: "android_graphics_apex_headers",
262
263 host_supported: true,
264 export_include_dirs: [
265 "apex/include",
266 ],
267 target: {
268 windows: {
269 enabled: true,
270 },
271 }
272}
273
274cc_defaults {
275 name: "android_graphics_apex",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400276 cflags: [
277 "-Wno-unused-parameter",
278 "-Wno-non-virtual-dtor",
279 "-Wno-maybe-uninitialized",
280 "-Wno-parentheses",
281 "-Wall",
282 "-Werror",
283 "-Wno-error=deprecated-declarations",
284 "-Wunused",
285 "-Wunreachable-code",
286 ],
287
288 cppflags: ["-Wno-conversion-null"],
289
290 srcs: [
291 "apex/android_matrix.cpp",
292 "apex/android_paint.cpp",
293 "apex/android_region.cpp",
294 ],
295
296 header_libs: [ "android_graphics_apex_headers" ],
297
298 target: {
299 android: {
300 srcs: [ // sources that depend on android only libraries
301 "apex/android_bitmap.cpp",
302 "apex/android_canvas.cpp",
303 "apex/jni_runtime.cpp",
304 "apex/renderthread.cpp",
305 ],
306 },
Derek Sollenbergerc5882c42019-10-25 11:11:32 -0400307 host: {
308 srcs: [
309 "apex/LayoutlibLoader.cpp",
310 ],
311 }
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400312 },
313}
314
315// ------------------------
316// Android Graphics JNI
317// ------------------------
318
319cc_library_headers {
320 name: "android_graphics_jni_headers",
321
322 host_supported: true,
323 export_include_dirs: [
324 "jni",
325 ],
326 target: {
327 windows: {
328 enabled: true,
329 },
330 }
331}
332
333cc_defaults {
334 name: "android_graphics_jni",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400335 cflags: [
336 "-Wno-unused-parameter",
337 "-Wno-non-virtual-dtor",
338 "-Wno-maybe-uninitialized",
339 "-Wno-parentheses",
340
341 "-DGL_GLEXT_PROTOTYPES",
342 "-DEGL_EGLEXT_PROTOTYPES",
343
344 "-DU_USING_ICU_NAMESPACE=0",
345
346 "-Wall",
347 "-Werror",
348 "-Wno-error=deprecated-declarations",
349 "-Wunused",
350 "-Wunreachable-code",
351 ],
352
353 cppflags: ["-Wno-conversion-null"],
354
355 srcs: [
356 "jni/android_graphics_animation_NativeInterpolatorFactory.cpp",
357 "jni/android_graphics_animation_RenderNodeAnimator.cpp",
358 "jni/android_graphics_Canvas.cpp",
359 "jni/android_graphics_ColorSpace.cpp",
360 "jni/android_graphics_drawable_AnimatedVectorDrawable.cpp",
361 "jni/android_graphics_drawable_VectorDrawable.cpp",
362 "jni/android_graphics_HardwareRendererObserver.cpp",
363 "jni/android_graphics_Matrix.cpp",
364 "jni/android_graphics_Picture.cpp",
365 "jni/android_graphics_DisplayListCanvas.cpp",
366 "jni/android_graphics_RenderNode.cpp",
367 "jni/android_nio_utils.cpp",
368 "jni/android_util_PathParser.cpp",
369
370 "jni/Bitmap.cpp",
371 "jni/BitmapFactory.cpp",
372 "jni/ByteBufferStreamAdaptor.cpp",
373 "jni/Camera.cpp",
374 "jni/CanvasProperty.cpp",
375 "jni/ColorFilter.cpp",
376 "jni/CreateJavaOutputStreamAdaptor.cpp",
377 "jni/FontFamily.cpp",
378 "jni/FontUtils.cpp",
379 "jni/Graphics.cpp",
380 "jni/ImageDecoder.cpp",
381 "jni/Interpolator.cpp",
382 "jni/MaskFilter.cpp",
383 "jni/NinePatch.cpp",
384 "jni/NinePatchPeeker.cpp",
385 "jni/Paint.cpp",
386 "jni/PaintFilter.cpp",
387 "jni/Path.cpp",
388 "jni/PathEffect.cpp",
389 "jni/PathMeasure.cpp",
390 "jni/Picture.cpp",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400391 "jni/Shader.cpp",
392 "jni/Typeface.cpp",
393 "jni/Utils.cpp",
394 "jni/YuvToJpegEncoder.cpp",
395 "jni/fonts/Font.cpp",
396 "jni/fonts/FontFamily.cpp",
397 "jni/text/LineBreaker.cpp",
398 "jni/text/MeasuredText.cpp",
399 ],
400
401 header_libs: [ "android_graphics_jni_headers" ],
402
403 include_dirs: [
404 "external/skia/include/private",
405 "external/skia/src/codec",
406 "external/skia/src/core",
407 "external/skia/src/effects",
408 "external/skia/src/image",
409 "external/skia/src/images",
410 ],
411
412 shared_libs: [
413 "libbase",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400414 "libcutils",
415 "libharfbuzz_ng",
416 "liblog",
417 "libminikin",
418 "libnativehelper",
419 "libz",
420 "libziparchive",
421 "libjpeg",
422 ],
423
424 target: {
425 android: {
426 srcs: [ // sources that depend on android only libraries
427 "jni/AnimatedImageDrawable.cpp",
428 "jni/android_graphics_TextureLayer.cpp",
429 "jni/android_graphics_HardwareRenderer.cpp",
430 "jni/BitmapRegionDecoder.cpp",
431 "jni/GIFMovie.cpp",
432 "jni/GraphicsStatsService.cpp",
433 "jni/Movie.cpp",
434 "jni/MovieImpl.cpp",
Derek Sollenberger15da7e22020-02-14 14:16:34 -0500435 "jni/Region.cpp", // requires libbinder_ndk
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400436 "jni/pdf/PdfDocument.cpp",
437 "jni/pdf/PdfEditor.cpp",
438 "jni/pdf/PdfRenderer.cpp",
439 "jni/pdf/PdfUtils.cpp",
440 ],
441 shared_libs: [
442 "libandroidfw",
Derek Sollenberger42c50042020-02-18 14:51:17 -0500443 "libbinder",
Derek Sollenberger15da7e22020-02-14 14:16:34 -0500444 "libbinder_ndk",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400445 "libmediandk",
446 "libnativedisplay",
447 "libnativewindow",
448 "libstatspull",
449 "libstatssocket",
450 "libpdfium",
John Recka18d7c82020-03-02 09:41:33 -0800451 "libbinder_ndk",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400452 ],
453 static_libs: [
454 "libgif",
455 "libstatslog",
456 ],
457 },
458 host: {
459 cflags: [
460 "-Wno-unused-const-variable",
461 "-Wno-unused-function",
462 ],
463 static_libs: [
464 "libandroidfw",
465 ],
466 }
467 },
468}
469
470// ------------------------
Colin Crossf6298102017-04-19 15:25:25 -0700471// library
472// ------------------------
473
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400474cc_library_headers {
475 name: "libhwui_internal_headers",
476
477 host_supported: true,
478 export_include_dirs: [
479 ".",
480 ],
481 header_libs: [ "android_graphics_jni_headers" ],
482 export_header_lib_headers: [ "android_graphics_jni_headers" ],
483}
484
Colin Crossf6298102017-04-19 15:25:25 -0700485cc_defaults {
486 name: "libhwui_defaults",
487 defaults: ["hwui_defaults"],
Derek Sollenbergerd938e5a2017-07-24 09:42:07 -0400488
489 whole_static_libs: ["libskia"],
490
Colin Crossf6298102017-04-19 15:25:25 -0700491 srcs: [
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100492 "pipeline/skia/SkiaDisplayList.cpp",
493 "pipeline/skia/SkiaRecordingCanvas.cpp",
494 "pipeline/skia/RenderNodeDrawable.cpp",
495 "pipeline/skia/ReorderBarrierDrawables.cpp",
Fedor Kudasov666f8a52019-07-03 15:21:14 +0100496 "renderthread/Frame.cpp",
497 "renderthread/RenderTask.cpp",
498 "renderthread/TimeLord.cpp",
Derek Sollenberger2d142132018-01-22 10:25:26 -0500499 "hwui/AnimatedImageDrawable.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700500 "hwui/Bitmap.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700501 "hwui/Canvas.cpp",
Leon Scroggins III753a56f2019-12-11 11:02:15 -0500502 "hwui/ImageDecoder.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700503 "hwui/MinikinSkia.cpp",
504 "hwui/MinikinUtils.cpp",
505 "hwui/PaintImpl.cpp",
506 "hwui/Typeface.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700507 "utils/Blur.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100508 "utils/Color.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700509 "utils/LinearAllocator.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700510 "utils/VectorDrawableUtils.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100511 "AnimationContext.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700512 "Animator.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100513 "AnimatorManager.cpp",
514 "CanvasTransform.cpp",
515 "DamageAccumulator.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700516 "Interpolator.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100517 "LightingInfo.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700518 "Matrix.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700519 "PathParser.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700520 "Properties.cpp",
521 "PropertyValuesAnimatorSet.cpp",
522 "PropertyValuesHolder.cpp",
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100523 "RecordingCanvas.cpp",
524 "RenderNode.cpp",
525 "RenderProperties.cpp",
Fedor Kudasov09cfce02019-07-04 09:41:13 +0100526 "RootRenderNode.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700527 "SkiaCanvas.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700528 "VectorDrawable.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700529 ],
530
Kweku Adams228b6d22018-04-12 13:09:04 -0700531 proto: {
532 export_proto_headers: true,
533 },
534
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100535 target: {
536 android: {
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100537 srcs: [
Jerome Gaillardf9a4dc42020-01-29 15:23:26 +0000538 "hwui/AnimatedImageThread.cpp",
Stan Ilieve0fae232020-01-07 17:21:49 -0500539 "pipeline/skia/ATraceMemoryDump.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100540 "pipeline/skia/GLFunctorDrawable.cpp",
541 "pipeline/skia/LayerDrawable.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100542 "pipeline/skia/ShaderCache.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100543 "pipeline/skia/SkiaMemoryTracer.cpp",
544 "pipeline/skia/SkiaOpenGLPipeline.cpp",
545 "pipeline/skia/SkiaPipeline.cpp",
546 "pipeline/skia/SkiaProfileRenderer.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100547 "pipeline/skia/SkiaVulkanPipeline.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100548 "pipeline/skia/VkFunctorDrawable.cpp",
549 "pipeline/skia/VkInteropFunctorDrawable.cpp",
550 "renderstate/RenderState.cpp",
551 "renderthread/CacheManager.cpp",
552 "renderthread/CanvasContext.cpp",
553 "renderthread/DrawFrameTask.cpp",
554 "renderthread/EglManager.cpp",
555 "renderthread/ReliableSurface.cpp",
556 "renderthread/VulkanManager.cpp",
557 "renderthread/VulkanSurface.cpp",
558 "renderthread/RenderProxy.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100559 "renderthread/RenderThread.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100560 "service/GraphicsStatsService.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100561 "thread/CommonPool.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100562 "utils/GLUtils.cpp",
Alec Mouri45238012020-01-29 11:04:40 -0800563 "utils/NdkUtils.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100564 "utils/StringUtils.cpp",
Stan Ilievaaa9e832019-09-17 14:07:23 -0400565 "AutoBackendTextureRelease.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100566 "DeferredLayerUpdater.cpp",
567 "DeviceInfo.cpp",
568 "FrameInfo.cpp",
569 "FrameInfoVisualizer.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100570 "HardwareBitmapUploader.cpp",
571 "HWUIProperties.sysprop",
572 "JankTracker.cpp",
573 "Layer.cpp",
574 "LayerUpdateQueue.cpp",
575 "ProfileData.cpp",
576 "ProfileDataContainer.cpp",
577 "Readback.cpp",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100578 "TreeInfo.cpp",
579 "WebViewFunctorManager.cpp",
580 "protos/graphicsstats.proto",
581 ],
582
583 // Allow implicit fallthroughs in HardwareBitmapUploader.cpp until they are fixed.
584 cflags: ["-Wno-implicit-fallthrough"],
585 },
586 host: {
Fedor Kudasov86bd2142019-06-18 15:51:57 +0100587 srcs: [
588 "utils/HostColorSpace.cpp",
589 ],
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100590 export_static_lib_headers: [
591 "libarect",
592 ],
593 }
594 }
Colin Crossf6298102017-04-19 15:25:25 -0700595}
596
597cc_library {
598 name: "libhwui",
Fedor Kudasov182cbf92019-06-05 10:30:20 +0100599 host_supported: true,
Chris Craikd17b63c2017-06-01 10:45:36 -0700600 defaults: [
601 "libhwui_defaults",
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400602 "android_graphics_apex",
603 "android_graphics_jni",
Zhizhou Yang17371ec2017-10-13 11:42:13 -0700604 ],
Derek Sollenberger83ccff72019-10-24 11:49:54 -0400605 export_header_lib_headers: ["android_graphics_apex_headers"],
Derek Sollenberger2c5d6342020-04-09 09:44:54 -0400606 target: {
607 android: {
608 version_script: "libhwui.map.txt",
609 }
610 },
Colin Crossf6298102017-04-19 15:25:25 -0700611}
612
Colin Crossf6298102017-04-19 15:25:25 -0700613cc_library_static {
John Reck23462d82019-05-29 16:55:06 -0700614 name: "libhwui_static",
Colin Crossf6298102017-04-19 15:25:25 -0700615 defaults: [
616 "libhwui_defaults",
Colin Crossf6298102017-04-19 15:25:25 -0700617 ],
Colin Crossf6298102017-04-19 15:25:25 -0700618}
619
620cc_defaults {
621 name: "hwui_test_defaults",
622 defaults: ["hwui_defaults"],
623 test_suites: ["device-tests"],
Alec Mouri680414e2020-01-28 09:22:33 -0800624 target: {
625 android: {
626 shared_libs: [
627 "libgui",
Alec Mouri45238012020-01-29 11:04:40 -0800628 "libui",
Alec Mouri680414e2020-01-28 09:22:33 -0800629 ],
630 }
631 },
Colin Crossf6298102017-04-19 15:25:25 -0700632 srcs: [
633 "tests/common/scenes/*.cpp",
634 "tests/common/LeakChecker.cpp",
635 "tests/common/TestListViewSceneBase.cpp",
636 "tests/common/TestContext.cpp",
637 "tests/common/TestScene.cpp",
638 "tests/common/TestUtils.cpp",
639 ],
640}
641
642// ------------------------
643// unit tests
644// ------------------------
645
646cc_test {
647 name: "hwui_unit_tests",
Derek Sollenbergerd3e9eec2020-04-06 11:43:59 -0400648 defaults: [
649 "hwui_test_defaults",
650 "android_graphics_apex",
651 "android_graphics_jni",
652 ],
Colin Crossf6298102017-04-19 15:25:25 -0700653
654 static_libs: [
655 "libgmock",
John Reck23462d82019-05-29 16:55:06 -0700656 "libhwui_static",
Colin Crossf6298102017-04-19 15:25:25 -0700657 ],
Tej Singhbb8554a2018-01-26 11:59:14 -0800658 shared_libs: [
659 "libmemunreachable",
Tej Singhbb8554a2018-01-26 11:59:14 -0800660 ],
Colin Crossf6298102017-04-19 15:25:25 -0700661
662 srcs: [
663 "tests/unit/main.cpp",
Derek Sollenbergerd3e9eec2020-04-06 11:43:59 -0400664 "tests/unit/ABitmapTests.cpp",
Derek Sollenbergerf9e45d12017-06-01 13:07:39 -0400665 "tests/unit/CacheManagerTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700666 "tests/unit/CanvasContextTests.cpp",
John Reck322b8ab2019-03-14 13:15:28 -0700667 "tests/unit/CommonPoolTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700668 "tests/unit/DamageAccumulatorTests.cpp",
669 "tests/unit/DeferredLayerUpdaterTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700670 "tests/unit/FatVectorTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700671 "tests/unit/GraphicsStatsServiceTests.cpp",
672 "tests/unit/LayerUpdateQueueTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700673 "tests/unit/LinearAllocatorTests.cpp",
674 "tests/unit/MatrixTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700675 "tests/unit/PathInterpolatorTests.cpp",
676 "tests/unit/RenderNodeDrawableTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700677 "tests/unit/RenderNodeTests.cpp",
678 "tests/unit/RenderPropertiesTests.cpp",
John Reck700079e2019-02-19 10:38:50 -0800679 "tests/unit/RenderThreadTests.cpp",
Stan Ilievd495f432017-10-09 15:49:32 -0400680 "tests/unit/ShaderCacheTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700681 "tests/unit/SkiaBehaviorTests.cpp",
682 "tests/unit/SkiaDisplayListTests.cpp",
683 "tests/unit/SkiaPipelineTests.cpp",
684 "tests/unit/SkiaRenderPropertiesTests.cpp",
685 "tests/unit/SkiaCanvasTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700686 "tests/unit/StringUtilsTests.cpp",
687 "tests/unit/TestUtilsTests.cpp",
John Reckf8441e62017-10-23 13:10:41 -0700688 "tests/unit/ThreadBaseTests.cpp",
689 "tests/unit/TypefaceTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700690 "tests/unit/VectorDrawableTests.cpp",
John Reck283bb462018-12-13 16:40:14 -0800691 "tests/unit/WebViewFunctorManagerTests.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700692 ],
693}
694
695// ------------------------
696// Macro-bench app
697// ------------------------
698
699cc_benchmark {
700 name: "hwuimacro",
701 defaults: ["hwui_test_defaults"],
702
John Reck23462d82019-05-29 16:55:06 -0700703 static_libs: ["libhwui"],
Tej Singhbb8554a2018-01-26 11:59:14 -0800704 shared_libs: [
705 "libmemunreachable",
Tej Singhbb8554a2018-01-26 11:59:14 -0800706 ],
Colin Crossf6298102017-04-19 15:25:25 -0700707
708 srcs: [
709 "tests/macrobench/TestSceneRunner.cpp",
710 "tests/macrobench/main.cpp",
711 ],
712}
713
714// ------------------------
715// Micro-bench app
716// ---------------------
717
718cc_benchmark {
719 name: "hwuimicro",
720 defaults: ["hwui_test_defaults"],
721
John Reck23462d82019-05-29 16:55:06 -0700722 static_libs: ["libhwui_static"],
Tej Singhbb8554a2018-01-26 11:59:14 -0800723 shared_libs: [
724 "libmemunreachable",
Tej Singhbb8554a2018-01-26 11:59:14 -0800725 ],
Colin Crossf6298102017-04-19 15:25:25 -0700726
727 srcs: [
728 "tests/microbench/main.cpp",
729 "tests/microbench/DisplayListCanvasBench.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700730 "tests/microbench/LinearAllocatorBench.cpp",
731 "tests/microbench/PathParserBench.cpp",
732 "tests/microbench/RenderNodeBench.cpp",
Colin Crossf6298102017-04-19 15:25:25 -0700733 ],
734}
Pirama Arumuga Nainarbc1e1772017-11-17 11:32:16 -0800735
736// ----------------------------------------
737// Phony target to build benchmarks for PGO
738// ----------------------------------------
739
740phony {
741 name: "pgo-targets-hwui",
742 required: [
743 "hwuimicro",
744 "hwuimacro",
745 ]
746}