1e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain GuyLOCAL_PATH:= $(call my-dir)
2e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guyinclude $(CLEAR_VARS)
388ba339aefd74ffe0ea978ebb659a430f82940f0Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
4e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
55bb5626599c936fdbea9f0fea30505924d784c73sergeyvBUGREPORT_FONT_CACHE_USAGE := false
6b565df13a9e5c7b1d7d93bdfa4a793752d66d3ccChris Craik
7975591a7af883d866d86ab819e164c6004694744John Reck# Enables fine-grained GLES error checking
8975591a7af883d866d86ab819e164c6004694744John Reck# If set to true, every GLES call is wrapped & error checked
9975591a7af883d866d86ab819e164c6004694744John Reck# Has moderate overhead
10005275d238454dcadc21f4946d4104380f691b24Chris CraikHWUI_ENABLE_OPENGL_VALIDATION := false
11975591a7af883d866d86ab819e164c6004694744John Reck
12d2e72141797e92ced2f076f6b3899a6b450966b4John Reckhwui_src_files := \
13c1c54062f8cc9d47bdea820ae5ab6aef260b4488sergeyv    hwui/Bitmap.cpp \
14d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    font/CacheTexture.cpp \
15d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    font/Font.cpp \
16dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    hwui/Canvas.cpp \
17dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    hwui/MinikinSkia.cpp \
18dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    hwui/MinikinUtils.cpp \
19dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    hwui/PaintImpl.cpp \
20bad99183916ba2bac6659efc8a28273e344ba511sergeyv    hwui/Typeface.cpp \
21021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    pipeline/skia/GLFunctorDrawable.cpp \
22021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    pipeline/skia/LayerDrawable.cpp \
23021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    pipeline/skia/RenderNodeDrawable.cpp \
24021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    pipeline/skia/ReorderBarrierDrawables.cpp \
25021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    pipeline/skia/SkiaDisplayList.cpp \
26500a0c30d4dcd012218c3e44a62926a1c34a259fStan Iliev    pipeline/skia/SkiaOpenGLPipeline.cpp \
27c4fbada76aa840105553b2c2bce2204e673d2983Derek Sollenberger    pipeline/skia/SkiaOpenGLReadback.cpp \
28500a0c30d4dcd012218c3e44a62926a1c34a259fStan Iliev    pipeline/skia/SkiaPipeline.cpp \
29cf2c05c652190ddc66f873192c17d193478138a1Matt Sarett    pipeline/skia/SkiaProfileRenderer.cpp \
30021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    pipeline/skia/SkiaRecordingCanvas.cpp \
31500a0c30d4dcd012218c3e44a62926a1c34a259fStan Iliev    pipeline/skia/SkiaVulkanPipeline.cpp \
32d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/Blend.cpp \
33d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/MeshState.cpp \
349fded232a9548a304e0145011df8849fba0dcda7Chris Craik    renderstate/OffscreenBufferPool.cpp \
35d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/PixelBufferState.cpp \
36d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/RenderState.cpp \
37d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/Scissor.cpp \
38d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/Stencil.cpp \
39d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderstate/TextureState.cpp \
40d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/CanvasContext.cpp \
41768e39335b668e8ef25fef30ab42b2d6d29a4735Stan Iliev    renderthread/OpenGLPipeline.cpp \
42d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/DrawFrameTask.cpp \
43d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/EglManager.cpp \
440e3cba31460e0698def0310003b7d291f1174afaDerek Sollenberger    renderthread/VulkanManager.cpp \
45d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/RenderProxy.cpp \
46d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/RenderTask.cpp \
47d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/RenderThread.cpp \
48d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    renderthread/TimeLord.cpp \
49cd55852fcd840f7f4c4d7a0a7253a2995c77afa2Greg Daniel    renderthread/Frame.cpp \
50df1742ed47da1e9b61afeae16fa448d5302a8aa0John Reck    service/GraphicsStatsService.cpp \
51d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    thread/TaskManager.cpp \
52d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    utils/Blur.cpp \
53caaaa66e57293e4a6f312649bf472eab84d5c7feRomain Guy    utils/Color.cpp \
54d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    utils/GLUtils.cpp \
55d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    utils/LinearAllocator.cpp \
566e6646c03788f198a9878763680c05342d7622f3Chris Craik    utils/StringUtils.cpp \
57b2f5bd2d6043132d8c1d0f3e2e7e454c2693f499Tom Hudson    utils/TestWindowContext.cpp \
58804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu    utils/VectorDrawableUtils.cpp \
59d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    AmbientShadow.cpp \
60d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    AnimationContext.cpp \
61d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Animator.cpp \
62d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    AnimatorManager.cpp \
635e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    BakedOpDispatcher.cpp \
645e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    BakedOpRenderer.cpp \
655e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    BakedOpState.cpp \
66d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Caches.cpp \
67d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    CanvasState.cpp \
68d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    ClipArea.cpp \
69d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    DamageAccumulator.cpp \
70d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    DeferredLayerUpdater.cpp \
71704bed0da7cc75d0c517d425445de70ceb58060bJohn Reck    DeviceInfo.cpp \
72d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    DisplayList.cpp \
73d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Extensions.cpp \
74d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    FboCache.cpp \
75d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    FontRenderer.cpp \
765e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    FrameBuilder.cpp \
77d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    FrameInfo.cpp \
78d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    FrameInfoVisualizer.cpp \
79d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    GammaFontRenderer.cpp \
808cd3edfa15cc9cdbffa935d19ab894426b08d174Greg Daniel    GlLayer.cpp \
81d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    GlopBuilder.cpp \
8238e0c32852e3b9d8ca4a9d3791577f52536419cbJohn Reck    GpuMemoryTracker.cpp \
83d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    GradientCache.cpp \
84d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Image.cpp \
85d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Interpolator.cpp \
86d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    JankTracker.cpp \
87d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Layer.cpp \
885e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    LayerBuilder.cpp \
890b7e8245db728d127ada698be63d78b33fc6e4daChris Craik    LayerUpdateQueue.cpp \
90d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Matrix.cpp \
915e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    OpDumper.cpp \
92c4fbada76aa840105553b2c2bce2204e673d2983Derek Sollenberger    OpenGLReadback.cpp \
93d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Patch.cpp \
94d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    PatchCache.cpp \
95d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    PathCache.cpp \
9630bcf69df9cfae40b621335958656cb0e4afd7d5Doris Liu    PathParser.cpp \
975e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    PathTessellator.cpp \
98d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    PixelBuffer.cpp \
99de97307362c26b64e2376b21ccde8414088cdc8bMatt Sarett    ProfileRenderer.cpp \
100d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Program.cpp \
101d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    ProgramCache.cpp \
102d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Properties.cpp \
103766431aa57c16ece8842287a92b2e7208e3b8ac3Doris Liu    PropertyValuesAnimatorSet.cpp \
1045e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    PropertyValuesHolder.cpp \
1055e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    RecordingCanvas.cpp \
106d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    RenderBufferCache.cpp \
107d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    RenderNode.cpp \
108d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    RenderProperties.cpp \
109d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    ResourceCache.cpp \
110d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    ShadowTessellator.cpp \
111d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    SkiaCanvas.cpp \
112d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    SkiaCanvasProxy.cpp \
113d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    SkiaShader.cpp \
114d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Snapshot.cpp \
115d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    SpotShadow.cpp \
116d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    TessellationCache.cpp \
117d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    TextDropShadowCache.cpp \
118d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    Texture.cpp \
119e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reck    TextureCache.cpp \
1204bbc2931263b232fba61807fca00e127573eff42Doris Liu    VectorDrawable.cpp \
12145ec62ba72c5017fae7d8baab20bfb0d4c99c627Greg Daniel    VkLayer.cpp \
122e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reck    protos/hwui.proto
123d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
1248160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craikhwui_test_common_src_files := \
12527e58b4f54d693ff1db7ab2edb5d47ca296c1278Chris Craik    $(call all-cpp-files-under, tests/common/scenes) \
1267dc370bfe3223dfbcb368e0006c688dfd668ab01sergeyv    tests/common/LeakChecker.cpp \
12706a62f6f5379aa5f11f6da3e7ee066e9f640b91asergeyv    tests/common/TestListViewSceneBase.cpp \
12827e58b4f54d693ff1db7ab2edb5d47ca296c1278Chris Craik    tests/common/TestContext.cpp \
12927e58b4f54d693ff1db7ab2edb5d47ca296c1278Chris Craik    tests/common/TestScene.cpp \
1308160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/common/TestUtils.cpp
1318160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik
1328bd5edf804d5995fe266f3f612b70ee0ee104130sergeyvhwui_debug_common_src_files := \
1338bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    debug/wrap_gles.cpp \
1348bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    debug/DefaultGlesDriver.cpp \
1358bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    debug/GlesErrorCheckWrapper.cpp \
1368bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    debug/GlesDriver.cpp \
1378bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    debug/FatalBaseDriver.cpp \
1388bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    debug/NullGlesDriver.cpp
1398bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv
140d2e72141797e92ced2f076f6b3899a6b450966b4John Reckhwui_cflags := \
141d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES \
142d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \
14382f5e0c5cd0fcbacd8094b7963a50a2e30e0846fJohn Reck    -Wall -Wno-unused-parameter -Wunreachable-code -Werror
144d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
1452d5b8d73929a38b019c6b6276d4a19542b990f0cJohn Reckifeq ($(TARGET_USES_HWC2),true)
1462d5b8d73929a38b019c6b6276d4a19542b990f0cJohn Reck    hwui_cflags += -DUSE_HWC2
1472d5b8d73929a38b019c6b6276d4a19542b990f0cJohn Reckendif
1482d5b8d73929a38b019c6b6276d4a19542b990f0cJohn Reck
149253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guy# TODO: Linear blending should be enabled by default, but we are
150253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guy# TODO: making it an opt-in while it's a work in progress
151253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guy# TODO: The final test should be:
152253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guy# TODO: ifneq ($(TARGET_ENABLE_LINEAR_BLENDING),false)
153253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guyifeq ($(TARGET_ENABLE_LINEAR_BLENDING),true)
154253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guy    hwui_cflags += -DANDROID_ENABLE_LINEAR_BLENDING
155253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guyendif
156253f2c213f6ecda63b6872aee77bd30d5ec07c82Romain Guy
157c90ed759cf06072f2aecc57dc82d7be8cbfd6d73John Reck# GCC false-positives on this warning, and since we -Werror that's
158c90ed759cf06072f2aecc57dc82d7be8cbfd6d73John Reck# a problem
159c90ed759cf06072f2aecc57dc82d7be8cbfd6d73John Reckhwui_cflags += -Wno-free-nonheap-object
160c90ed759cf06072f2aecc57dc82d7be8cbfd6d73John Reck
161f1480761c1a83aecd09cdd473ec797a41d1a2f3fJohn Reck# clang's warning is broken, see: https://llvm.org/bugs/show_bug.cgi?id=21629
162f1480761c1a83aecd09cdd473ec797a41d1a2f3fJohn Reckhwui_cflags += -Wno-missing-braces
163f1480761c1a83aecd09cdd473ec797a41d1a2f3fJohn Reck
164af102bee518191f1e6ad843f06dcd7a64611462dsergeyvifeq (true, $(BUGREPORT_FONT_CACHE_USAGE))
165af102bee518191f1e6ad843f06dcd7a64611462dsergeyv    hwui_src_files += \
166af102bee518191f1e6ad843f06dcd7a64611462dsergeyv        font/FontCacheHistoryTracker.cpp
167af102bee518191f1e6ad843f06dcd7a64611462dsergeyv    hwui_cflags += -DBUGREPORT_FONT_CACHE_USAGE
168af102bee518191f1e6ad843f06dcd7a64611462dsergeyvendif
169af102bee518191f1e6ad843f06dcd7a64611462dsergeyv
170d2e72141797e92ced2f076f6b3899a6b450966b4John Reckifndef HWUI_COMPILE_SYMBOLS
171d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    hwui_cflags += -fvisibility=hidden
172d2e72141797e92ced2f076f6b3899a6b450966b4John Reckendif
173d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
174d2e72141797e92ced2f076f6b3899a6b450966b4John Reckifdef HWUI_COMPILE_FOR_PERF
175d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    # TODO: Non-arm?
176d2e72141797e92ced2f076f6b3899a6b450966b4John Reck    hwui_cflags += -fno-omit-frame-pointer -marm -mapcs
177d2e72141797e92ced2f076f6b3899a6b450966b4John Reckendif
178d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
179e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reck# This has to be lazy-resolved because it depends on the LOCAL_MODULE_CLASS
180e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reck# which varies depending on what is being built
181e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reckdefine hwui_proto_include
182e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reck$(call local-generated-sources-dir)/proto/$(LOCAL_PATH)
183e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reckendef
184e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn Reck
185d2e72141797e92ced2f076f6b3899a6b450966b4John Reckhwui_c_includes += \
186550780745fa28ae9a87d02331841ca5ce4f9c763Leon Scroggins III    external/skia/include/private \
187dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    external/skia/src/core \
188021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    external/skia/src/effects \
189db45a4bfaff1120a9b23073e46a0cc6d39f56023Stan Iliev    external/skia/src/image \
19082c581dac38490d582bd61986776f0bac3aa4967Leon Scroggins III    external/skia/src/utils \
19146c6f4c5ea7846fee4e6ef40c035ef2bee1adcbbRoozbeh Pournader    external/icu/icu4c/source/common \
192dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    external/harfbuzz_ng/src \
193dccca44ffda4836b56a21da95a046c9708ffd49csergeyv    external/freetype/include
194d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
195c5ae595e6f71798109c730cd835a2cca79a8877cPo-Chien Hsueh# enable RENDERSCRIPT
196c5ae595e6f71798109c730cd835a2cca79a8877cPo-Chien Hsuehhwui_c_includes += \
197c5ae595e6f71798109c730cd835a2cca79a8877cPo-Chien Hsueh    $(call intermediates-dir-for,STATIC_LIBRARIES,TARGET,) \
198c5ae595e6f71798109c730cd835a2cca79a8877cPo-Chien Hsueh    frameworks/rs/cpp \
199c5ae595e6f71798109c730cd835a2cca79a8877cPo-Chien Hsueh    frameworks/rs
200d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
201d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
202d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# static library
203d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
204d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
205d2e72141797e92ced2f076f6b3899a6b450966b4John Reckinclude $(CLEAR_VARS)
206d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
207d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MODULE_CLASS := STATIC_LIBRARIES
208d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MODULE := libhwui_static
209d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_CFLAGS := $(hwui_cflags)
210d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_SRC_FILES := $(hwui_src_files)
2118bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv
2128bd5edf804d5995fe266f3f612b70ee0ee104130sergeyvifeq (true, $(HWUI_ENABLE_OPENGL_VALIDATION))
2138bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    LOCAL_CFLAGS += -include debug/wrap_gles.h
2148bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    LOCAL_CFLAGS += -DDEBUG_OPENGL=3
2158bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    LOCAL_SRC_FILES += $(hwui_debug_common_src_files)
2168bd5edf804d5995fe266f3f612b70ee0ee104130sergeyvendif
2178bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv
218e248bd1b2c3fcf8088429507e73b31f45ee2544bJohn ReckLOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
219991da31d4073396768f215c5c3e77e54368da75fDerek SollenbergerLOCAL_EXPORT_C_INCLUDE_DIRS := \
220991da31d4073396768f215c5c3e77e54368da75fDerek Sollenberger        $(LOCAL_PATH) \
221991da31d4073396768f215c5c3e77e54368da75fDerek Sollenberger        $(call hwui_proto_include)
222d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
223991da31d4073396768f215c5c3e77e54368da75fDerek Sollenbergerinclude $(LOCAL_PATH)/hwui_static_deps.mk
224d2e72141797e92ced2f076f6b3899a6b450966b4John Reckinclude $(BUILD_STATIC_LIBRARY)
225d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
226d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
2275fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik# static library null gpu
2285fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik# ------------------------
2295fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik
2305fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craikinclude $(CLEAR_VARS)
2315fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik
2325fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris CraikLOCAL_MODULE_CLASS := STATIC_LIBRARIES
2338bd5edf804d5995fe266f3f612b70ee0ee104130sergeyvLOCAL_MODULE := libhwui_static_debug
2345fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris CraikLOCAL_CFLAGS := \
2355fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik        $(hwui_cflags) \
2368bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv        -include debug/wrap_gles.h \
2375fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik        -DHWUI_NULL_GPU
2385fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris CraikLOCAL_SRC_FILES := \
2395fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik        $(hwui_src_files) \
2408bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv        $(hwui_debug_common_src_files) \
2418bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv        debug/nullegl.cpp
2425fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris CraikLOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
243991da31d4073396768f215c5c3e77e54368da75fDerek SollenbergerLOCAL_EXPORT_C_INCLUDE_DIRS := \
244991da31d4073396768f215c5c3e77e54368da75fDerek Sollenberger        $(LOCAL_PATH) \
245991da31d4073396768f215c5c3e77e54368da75fDerek Sollenberger        $(call hwui_proto_include)
2465fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik
247991da31d4073396768f215c5c3e77e54368da75fDerek Sollenbergerinclude $(LOCAL_PATH)/hwui_static_deps.mk
2485fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craikinclude $(BUILD_STATIC_LIBRARY)
2495fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik
2505fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris Craik# ------------------------
251d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# shared library
252d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
253d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
254d2e72141797e92ced2f076f6b3899a6b450966b4John Reckinclude $(CLEAR_VARS)
255d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
256a2732a2bf98f7dbd063f4e5679f5b8bfcbec2698John ReckLOCAL_MODULE_CLASS := SHARED_LIBRARIES
257a2732a2bf98f7dbd063f4e5679f5b8bfcbec2698John ReckLOCAL_MODULE := libhwui
258d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
259991da31d4073396768f215c5c3e77e54368da75fDerek SollenbergerLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
260e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
261991da31d4073396768f215c5c3e77e54368da75fDerek Sollenbergerinclude $(LOCAL_PATH)/hwui_static_deps.mk
262a2732a2bf98f7dbd063f4e5679f5b8bfcbec2698John Reckinclude $(BUILD_SHARED_LIBRARY)
263edaecc1db0584fa017822dfc2da0c968b53967e6Andreas Gampe
264d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
265d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# unit tests
266d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
267d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
268d2e72141797e92ced2f076f6b3899a6b450966b4John Reckinclude $(CLEAR_VARS)
269d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
270d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MODULE := hwui_unit_tests
271d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MODULE_TAGS := tests
2728bd5edf804d5995fe266f3f612b70ee0ee104130sergeyvLOCAL_STATIC_LIBRARIES := libgmock libhwui_static_debug
273dc87c52cd5645dd87380114462211574b63e6353John ReckLOCAL_SHARED_LIBRARIES := libmemunreachable
27498787e6c9b2c10b1ab7820bdac168686025b924aChris CraikLOCAL_CFLAGS := \
27598787e6c9b2c10b1ab7820bdac168686025b924aChris Craik        $(hwui_cflags) \
2768bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv        -include debug/wrap_gles.h \
27798787e6c9b2c10b1ab7820bdac168686025b924aChris Craik        -DHWUI_NULL_GPU
278e9c205be2cc3d7c591d9db6580aa99882e12014fDan WillemsenLOCAL_C_INCLUDES := $(hwui_c_includes)
279d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
280d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_SRC_FILES += \
2818160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    $(hwui_test_common_src_files) \
282dc87c52cd5645dd87380114462211574b63e6353John Reck    tests/unit/main.cpp \
2835e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/BakedOpDispatcherTests.cpp \
2845e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/BakedOpRendererTests.cpp \
2855e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/BakedOpStateTests.cpp \
28671c4477bee8297189e12a666bbb178f461ad2859sergeyv    tests/unit/BitmapTests.cpp \
287daf7229047c44947b9b02ee187fe5b13f30ebd4bDerek Sollenberger    tests/unit/CanvasContextTests.cpp \
2888160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/CanvasStateTests.cpp \
2898160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/ClipAreaTests.cpp \
2908160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/DamageAccumulatorTests.cpp \
29156ad6ec42f814e9e61030ff819cac4e5d31def8bDerek Sollenberger    tests/unit/DeferredLayerUpdaterTests.cpp \
2928160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/DeviceInfoTests.cpp \
2938160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/FatVectorTests.cpp \
294f3754a84289680782b2c7caac30fda18207a5c23Chris Craik    tests/unit/FontRendererTests.cpp \
2955e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/FrameBuilderTests.cpp \
296f42bf3e2573bccb01babec448f925e9395bf224csergeyv    tests/unit/GlopBuilderTests.cpp \
29738e0c32852e3b9d8ca4a9d3791577f52536419cbJohn Reck    tests/unit/GpuMemoryTrackerTests.cpp \
29804d46eb69fb4f4c4c332c36c6ae845da3b2ae848Chris Craik    tests/unit/GradientCacheTests.cpp \
299df1742ed47da1e9b61afeae16fa448d5302a8aa0John Reck    tests/unit/GraphicsStatsServiceTests.cpp \
3008160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/LayerUpdateQueueTests.cpp \
3015e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/LeakCheckTests.cpp \
3028160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/LinearAllocatorTests.cpp \
303261725fdb2962271c222a049fcdf57bbdc8363c7Chris Craik    tests/unit/MatrixTests.cpp \
3048bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv    tests/unit/MeshStateTests.cpp \
3058160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/unit/OffscreenBufferPoolTests.cpp \
3065e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/OpDumperTests.cpp \
3079e9eeeeb78d94804cda00c2b36e56fdaca5552d6Doris Liu    tests/unit/PathInterpolatorTests.cpp \
308021693b967a2c5556dddd183eb0247df4079e1adStan Iliev    tests/unit/RenderNodeDrawableTests.cpp \
3095e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/RecordingCanvasTests.cpp \
31044b49f070aafe8ad44efae87341121cce49ff11cJohn Reck    tests/unit/RenderNodeTests.cpp \
311d4fe4d3b30aaefcaaae6a6d1b8dc4bf59e034768Chris Craik    tests/unit/RenderPropertiesTests.cpp \
31207d8d59e21125fe7cba09b10e3dd7ecb9c49e8d8Chris Craik    tests/unit/SkiaBehaviorTests.cpp \
3130df6209a02d0ea99d2dff3a46ed9febd5925df4bDerek Sollenberger    tests/unit/SkiaDisplayListTests.cpp \
314500a0c30d4dcd012218c3e44a62926a1c34a259fStan Iliev    tests/unit/SkiaPipelineTests.cpp \
31552771272f4f018f4fc6846224bf047497e784af1Stan Iliev    tests/unit/SkiaRenderPropertiesTests.cpp \
3165e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/SkiaCanvasTests.cpp \
31704d46eb69fb4f4c4c332c36c6ae845da3b2ae848Chris Craik    tests/unit/SnapshotTests.cpp \
31806f5bc70a667a02b14e31d3f53f91d3661e30666Andres Morales    tests/unit/StringUtilsTests.cpp \
31937413289478a965336239c731ebfea37ac4dde28Chris Craik    tests/unit/TestUtilsTests.cpp \
32007d8d59e21125fe7cba09b10e3dd7ecb9c49e8d8Chris Craik    tests/unit/TextDropShadowCacheTests.cpp \
32183809fec686b47da73ee0aaa80d226de7e33aab9sergeyv    tests/unit/TextureCacheTests.cpp \
322373b15bda93c8b400c5e1271bc93cbef26af503fSeigo Nonaka    tests/unit/TypefaceTests.cpp \
3235e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/unit/VectorDrawableTests.cpp \
324b565df13a9e5c7b1d7d93bdfa4a793752d66d3ccChris Craik
325991da31d4073396768f215c5c3e77e54368da75fDerek Sollenbergerinclude $(LOCAL_PATH)/hwui_static_deps.mk
326d2e72141797e92ced2f076f6b3899a6b450966b4John Reckinclude $(BUILD_NATIVE_TEST)
327d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
328d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
3298160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik# Macro-bench app
330d2e72141797e92ced2f076f6b3899a6b450966b4John Reck# ------------------------
331d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
332d2e72141797e92ced2f076f6b3899a6b450966b4John Reckinclude $(CLEAR_VARS)
333d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
334d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
335202c10b7b54a7a344415b19d4c3f93266de4ad25sergeyvLOCAL_MODULE:= hwuimacro
336d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MODULE_TAGS := tests
337d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_MULTILIB := both
338d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_CFLAGS := $(hwui_cflags)
339e9c205be2cc3d7c591d9db6580aa99882e12014fDan WillemsenLOCAL_C_INCLUDES := $(hwui_c_includes)
340d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
3418bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv# set to libhwui_static_debug to skip actual GL commands
3425fbd9db67a8b2f11f472358fd70e2e6f0cc236e8Chris CraikLOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
3437dc370bfe3223dfbcb368e0006c688dfd668ab01sergeyvLOCAL_SHARED_LIBRARIES := libmemunreachable
344d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
345d2e72141797e92ced2f076f6b3899a6b450966b4John ReckLOCAL_SRC_FILES += \
3468160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    $(hwui_test_common_src_files) \
3478160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/macrobench/TestSceneRunner.cpp \
3488160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/macrobench/main.cpp
349d2e72141797e92ced2f076f6b3899a6b450966b4John Reck
350991da31d4073396768f215c5c3e77e54368da75fDerek Sollenbergerinclude $(LOCAL_PATH)/hwui_static_deps.mk
351202c10b7b54a7a344415b19d4c3f93266de4ad25sergeyvinclude $(BUILD_NATIVE_BENCHMARK)
3524a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck
3534a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck# ------------------------
3544a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck# Micro-bench app
3554a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck# ---------------------
3564a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reckinclude $(CLEAR_VARS)
3574a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck
3584a4bc892e826849bd58606d99408f1bfbceddc3bJohn ReckLOCAL_MODULE:= hwuimicro
3594a4bc892e826849bd58606d99408f1bfbceddc3bJohn ReckLOCAL_MODULE_TAGS := tests
3608d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7Chris CraikLOCAL_CFLAGS := \
3618d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7Chris Craik        $(hwui_cflags) \
3628bd5edf804d5995fe266f3f612b70ee0ee104130sergeyv        -include debug/wrap_gles.h \
3638d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7Chris Craik        -DHWUI_NULL_GPU
3644a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck
3652bee0dd94418c8d6f48dbd9d83af7dd67717d3ffJohn ReckLOCAL_C_INCLUDES := $(hwui_c_includes)
3664a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck
3678bd5edf804d5995fe266f3f612b70ee0ee104130sergeyvLOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static_debug
3687dc370bfe3223dfbcb368e0006c688dfd668ab01sergeyvLOCAL_SHARED_LIBRARIES := libmemunreachable
3694a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck
3704a4bc892e826849bd58606d99408f1bfbceddc3bJohn ReckLOCAL_SRC_FILES += \
3718160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    $(hwui_test_common_src_files) \
3720418afa362630e69bd853121770b115750ee46a4John Reck    tests/microbench/main.cpp \
3738160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/microbench/DisplayListCanvasBench.cpp \
3742c0f93798b2c435307bfb1dfe194a6203e6e6ee5John Reck    tests/microbench/FontBench.cpp \
3755e00c7ce063116c11315639f0035aca8ad73e8ccChris Craik    tests/microbench/FrameBuilderBench.cpp \
3768160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/microbench/LinearAllocatorBench.cpp \
3778160f20b0aca8c6595d4b385d673f59b6bcd16a4Chris Craik    tests/microbench/PathParserBench.cpp \
3783acf0382da22cda88234e599cd81b1ff5441cc35John Reck    tests/microbench/RenderNodeBench.cpp \
379b251a2f51e636d036598ad27473b9cc55fdac1d7Chris Craik    tests/microbench/ShadowBench.cpp \
380b251a2f51e636d036598ad27473b9cc55fdac1d7Chris Craik    tests/microbench/TaskManagerBench.cpp
3814a4bc892e826849bd58606d99408f1bfbceddc3bJohn Reck
3820a24b146cd3dacf372ce98424044423a5b2fbf2aChris Craik
383991da31d4073396768f215c5c3e77e54368da75fDerek Sollenbergerinclude $(LOCAL_PATH)/hwui_static_deps.mk
384422e2b4829e28e422f0010e0e3ce04f45fb9efd8sergeyvinclude $(BUILD_NATIVE_BENCHMARK)
385