blob: 50801a4702d9c27ff8a8c2c5d2e0f9fa79d22bcc [file] [log] [blame]
Romain Guye4d01122010-06-16 18:44:05 -07001LOCAL_PATH:= $(call my-dir)
2include $(CLEAR_VARS)
Dan Albert88ba3392014-09-11 16:20:16 -07003LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
Romain Guye4d01122010-06-16 18:44:05 -07004
Chris Craikf0a76082016-03-03 21:07:54 +00005HWUI_NEW_OPS := true
Chris Craikb565df12015-10-05 13:00:52 -07006
John Reck975591a2016-01-22 16:28:07 -08007# Enables fine-grained GLES error checking
8# If set to true, every GLES call is wrapped & error checked
9# Has moderate overhead
John Reck756619d2016-04-15 11:31:09 -070010HWUI_ENABLE_OPENGL_VALIDATION := false
John Reck975591a2016-01-22 16:28:07 -080011
John Reckd2e72142015-08-17 13:11:43 -070012hwui_src_files := \
13 font/CacheTexture.cpp \
14 font/Font.cpp \
sergeyvdccca442016-03-21 15:38:21 -070015 hwui/Canvas.cpp \
16 hwui/MinikinSkia.cpp \
17 hwui/MinikinUtils.cpp \
18 hwui/PaintImpl.cpp \
sergeyvbad99182016-03-17 11:24:22 -070019 hwui/Typeface.cpp \
John Reckd2e72142015-08-17 13:11:43 -070020 renderstate/Blend.cpp \
21 renderstate/MeshState.cpp \
Chris Craik9fded232015-11-11 16:42:34 -080022 renderstate/OffscreenBufferPool.cpp \
John Reckd2e72142015-08-17 13:11:43 -070023 renderstate/PixelBufferState.cpp \
24 renderstate/RenderState.cpp \
25 renderstate/Scissor.cpp \
26 renderstate/Stencil.cpp \
27 renderstate/TextureState.cpp \
28 renderthread/CanvasContext.cpp \
29 renderthread/DrawFrameTask.cpp \
30 renderthread/EglManager.cpp \
31 renderthread/RenderProxy.cpp \
32 renderthread/RenderTask.cpp \
33 renderthread/RenderThread.cpp \
34 renderthread/TimeLord.cpp \
35 thread/TaskManager.cpp \
36 utils/Blur.cpp \
37 utils/GLUtils.cpp \
38 utils/LinearAllocator.cpp \
Derek Sollenberger4c5efe92015-07-10 13:56:39 -040039 utils/NinePatchImpl.cpp \
Chris Craik6e6646c2015-09-14 15:54:12 -070040 utils/StringUtils.cpp \
Tom Hudsonb2f5bd22015-10-15 16:41:55 -040041 utils/TestWindowContext.cpp \
Doris Liu804618d2015-11-16 22:48:34 -080042 utils/VectorDrawableUtils.cpp \
John Reckd2e72142015-08-17 13:11:43 -070043 AmbientShadow.cpp \
44 AnimationContext.cpp \
45 Animator.cpp \
46 AnimatorManager.cpp \
47 AssetAtlas.cpp \
48 Caches.cpp \
49 CanvasState.cpp \
50 ClipArea.cpp \
51 DamageAccumulator.cpp \
52 DeferredDisplayList.cpp \
53 DeferredLayerUpdater.cpp \
John Reck704bed02015-11-05 09:22:17 -080054 DeviceInfo.cpp \
John Reckd2e72142015-08-17 13:11:43 -070055 DisplayList.cpp \
56 DisplayListCanvas.cpp \
57 Dither.cpp \
58 Extensions.cpp \
59 FboCache.cpp \
60 FontRenderer.cpp \
61 FrameInfo.cpp \
62 FrameInfoVisualizer.cpp \
63 GammaFontRenderer.cpp \
64 GlopBuilder.cpp \
John Reck38e0c322015-11-10 12:19:17 -080065 GpuMemoryTracker.cpp \
John Reckd2e72142015-08-17 13:11:43 -070066 GradientCache.cpp \
67 Image.cpp \
68 Interpolator.cpp \
69 JankTracker.cpp \
70 Layer.cpp \
71 LayerCache.cpp \
72 LayerRenderer.cpp \
Chris Craik0b7e8242015-10-28 16:50:44 -070073 LayerUpdateQueue.cpp \
John Reckd2e72142015-08-17 13:11:43 -070074 Matrix.cpp \
75 OpenGLRenderer.cpp \
76 Patch.cpp \
77 PatchCache.cpp \
78 PathCache.cpp \
79 PathTessellator.cpp \
Doris Liu30bcf692015-11-04 14:56:24 -080080 PathParser.cpp \
John Reckd2e72142015-08-17 13:11:43 -070081 PixelBuffer.cpp \
82 Program.cpp \
83 ProgramCache.cpp \
84 Properties.cpp \
Doris Liu766431a2016-02-04 22:17:11 +000085 PropertyValuesHolder.cpp \
86 PropertyValuesAnimatorSet.cpp \
John Reck10dd0582016-03-31 16:36:16 -070087 Readback.cpp \
John Reckd2e72142015-08-17 13:11:43 -070088 RenderBufferCache.cpp \
89 RenderNode.cpp \
90 RenderProperties.cpp \
91 ResourceCache.cpp \
92 ShadowTessellator.cpp \
93 SkiaCanvas.cpp \
94 SkiaCanvasProxy.cpp \
95 SkiaShader.cpp \
96 Snapshot.cpp \
97 SpotShadow.cpp \
98 TessellationCache.cpp \
99 TextDropShadowCache.cpp \
100 Texture.cpp \
John Recke248bd12015-08-05 13:53:53 -0700101 TextureCache.cpp \
Doris Liu4bbc2932015-12-01 17:59:40 -0800102 VectorDrawable.cpp \
John Recke248bd12015-08-05 13:53:53 -0700103 protos/hwui.proto
John Reckd2e72142015-08-17 13:11:43 -0700104
Chris Craik8160f202015-12-02 14:50:25 -0800105hwui_test_common_src_files := \
Chris Craik27e58b42015-12-07 10:01:38 -0800106 $(call all-cpp-files-under, tests/common/scenes) \
107 tests/common/TestContext.cpp \
108 tests/common/TestScene.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800109 tests/common/TestUtils.cpp
110
John Reckd2e72142015-08-17 13:11:43 -0700111hwui_cflags := \
112 -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES \
113 -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \
John Reck82f5e0c2015-10-22 17:07:45 -0700114 -Wall -Wno-unused-parameter -Wunreachable-code -Werror
John Reckd2e72142015-08-17 13:11:43 -0700115
John Reck2d5b8d72016-07-28 15:36:11 -0700116ifeq ($(TARGET_USES_HWC2),true)
117 hwui_cflags += -DUSE_HWC2
118endif
119
John Reckc90ed752015-11-04 07:39:44 -0800120# GCC false-positives on this warning, and since we -Werror that's
121# a problem
122hwui_cflags += -Wno-free-nonheap-object
123
Chris Craikb565df12015-10-05 13:00:52 -0700124ifeq (true, $(HWUI_NEW_OPS))
125 hwui_src_files += \
Chris Craik9e7fcfd2015-11-25 13:27:33 -0800126 BakedOpDispatcher.cpp \
Chris Craikb565df12015-10-05 13:00:52 -0700127 BakedOpRenderer.cpp \
Chris Craike4db79d2015-12-22 16:32:23 -0800128 BakedOpState.cpp \
Chris Craikf158b492016-01-12 14:45:08 -0800129 FrameBuilder.cpp \
130 LayerBuilder.cpp \
Chris Craik91eff222016-02-22 13:39:33 -0800131 OpDumper.cpp \
Chris Craikb565df12015-10-05 13:00:52 -0700132 RecordingCanvas.cpp
133
134 hwui_cflags += -DHWUI_NEW_OPS
135
136endif
137
John Reckd2e72142015-08-17 13:11:43 -0700138ifndef HWUI_COMPILE_SYMBOLS
139 hwui_cflags += -fvisibility=hidden
140endif
141
142ifdef HWUI_COMPILE_FOR_PERF
143 # TODO: Non-arm?
144 hwui_cflags += -fno-omit-frame-pointer -marm -mapcs
145endif
146
John Recke248bd12015-08-05 13:53:53 -0700147# This has to be lazy-resolved because it depends on the LOCAL_MODULE_CLASS
148# which varies depending on what is being built
149define hwui_proto_include
150$(call local-generated-sources-dir)/proto/$(LOCAL_PATH)
151endef
152
John Reckd2e72142015-08-17 13:11:43 -0700153hwui_c_includes += \
Leon Scroggins III55078072015-07-31 10:38:40 -0400154 external/skia/include/private \
sergeyvdccca442016-03-21 15:38:21 -0700155 external/skia/src/core \
156 external/harfbuzz_ng/src \
157 external/freetype/include
John Reckd2e72142015-08-17 13:11:43 -0700158
John Reckd2e72142015-08-17 13:11:43 -0700159ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
160 hwui_cflags += -DANDROID_ENABLE_RENDERSCRIPT
John Reckd2e72142015-08-17 13:11:43 -0700161 hwui_c_includes += \
162 $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,) \
163 frameworks/rs/cpp \
164 frameworks/rs
165endif
166
John Reck975591a2016-01-22 16:28:07 -0800167ifeq (true, $(HWUI_ENABLE_OPENGL_VALIDATION))
168 hwui_cflags += -include debug/wrap_gles.h
169 hwui_src_files += debug/wrap_gles.cpp
170 hwui_c_includes += frameworks/native/opengl/libs/GLES2
171 hwui_cflags += -DDEBUG_OPENGL=3
172endif
173
John Reckd2e72142015-08-17 13:11:43 -0700174
175# ------------------------
176# static library
177# ------------------------
178
179include $(CLEAR_VARS)
180
181LOCAL_MODULE_CLASS := STATIC_LIBRARIES
182LOCAL_MODULE := libhwui_static
John Reckd2e72142015-08-17 13:11:43 -0700183LOCAL_CFLAGS := $(hwui_cflags)
184LOCAL_SRC_FILES := $(hwui_src_files)
John Recke248bd12015-08-05 13:53:53 -0700185LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
Derek Sollenberger991da312016-02-11 12:13:07 -0500186LOCAL_EXPORT_C_INCLUDE_DIRS := \
187 $(LOCAL_PATH) \
Derek Sollenberger991da312016-02-11 12:13:07 -0500188 $(call hwui_proto_include)
John Reckd2e72142015-08-17 13:11:43 -0700189
Derek Sollenberger991da312016-02-11 12:13:07 -0500190include $(LOCAL_PATH)/hwui_static_deps.mk
John Reckd2e72142015-08-17 13:11:43 -0700191include $(BUILD_STATIC_LIBRARY)
192
193# ------------------------
Chris Craik5fbd9db2015-10-19 11:22:11 -0700194# static library null gpu
195# ------------------------
196
197include $(CLEAR_VARS)
198
199LOCAL_MODULE_CLASS := STATIC_LIBRARIES
200LOCAL_MODULE := libhwui_static_null_gpu
Chris Craik5fbd9db2015-10-19 11:22:11 -0700201LOCAL_CFLAGS := \
202 $(hwui_cflags) \
203 -DHWUI_NULL_GPU
204LOCAL_SRC_FILES := \
205 $(hwui_src_files) \
John Reck975591a2016-01-22 16:28:07 -0800206 debug/nullegl.cpp \
207 debug/nullgles.cpp
Chris Craik5fbd9db2015-10-19 11:22:11 -0700208LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
Derek Sollenberger991da312016-02-11 12:13:07 -0500209LOCAL_EXPORT_C_INCLUDE_DIRS := \
210 $(LOCAL_PATH) \
Derek Sollenberger991da312016-02-11 12:13:07 -0500211 $(call hwui_proto_include)
Chris Craik5fbd9db2015-10-19 11:22:11 -0700212
Derek Sollenberger991da312016-02-11 12:13:07 -0500213include $(LOCAL_PATH)/hwui_static_deps.mk
Chris Craik5fbd9db2015-10-19 11:22:11 -0700214include $(BUILD_STATIC_LIBRARY)
215
216# ------------------------
John Reckd2e72142015-08-17 13:11:43 -0700217# shared library
218# ------------------------
219
220include $(CLEAR_VARS)
221
John Recka2732a22014-12-18 13:52:33 -0800222LOCAL_MODULE_CLASS := SHARED_LIBRARIES
223LOCAL_MODULE := libhwui
John Reckd2e72142015-08-17 13:11:43 -0700224LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
Derek Sollenberger991da312016-02-11 12:13:07 -0500225LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
Romain Guye4d01122010-06-16 18:44:05 -0700226
Derek Sollenberger991da312016-02-11 12:13:07 -0500227include $(LOCAL_PATH)/hwui_static_deps.mk
John Recka2732a22014-12-18 13:52:33 -0800228include $(BUILD_SHARED_LIBRARY)
Andreas Gampeedaecc12014-11-10 20:54:07 -0800229
John Reckd2e72142015-08-17 13:11:43 -0700230# ------------------------
231# unit tests
232# ------------------------
233
234include $(CLEAR_VARS)
235
236LOCAL_MODULE := hwui_unit_tests
237LOCAL_MODULE_TAGS := tests
Chris Craik5fbd9db2015-10-19 11:22:11 -0700238LOCAL_STATIC_LIBRARIES := libhwui_static_null_gpu
John Reckdc87c522016-02-29 13:31:18 -0800239LOCAL_SHARED_LIBRARIES := libmemunreachable
Chris Craik98787e62015-11-13 10:55:30 -0800240LOCAL_CFLAGS := \
241 $(hwui_cflags) \
242 -DHWUI_NULL_GPU
Dan Willemsene9c205b2016-03-07 12:58:33 -0800243LOCAL_C_INCLUDES := $(hwui_c_includes)
John Reckd2e72142015-08-17 13:11:43 -0700244
245LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800246 $(hwui_test_common_src_files) \
John Reckdc87c522016-02-29 13:31:18 -0800247 tests/unit/main.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800248 tests/unit/CanvasStateTests.cpp \
249 tests/unit/ClipAreaTests.cpp \
250 tests/unit/DamageAccumulatorTests.cpp \
251 tests/unit/DeviceInfoTests.cpp \
252 tests/unit/FatVectorTests.cpp \
Chris Craikf3754a82016-04-19 18:13:21 -0700253 tests/unit/FontRendererTests.cpp \
sergeyvf42bf3e2016-03-11 13:45:15 -0800254 tests/unit/GlopBuilderTests.cpp \
John Reck38e0c322015-11-10 12:19:17 -0800255 tests/unit/GpuMemoryTrackerTests.cpp \
Chris Craik04d46eb2016-04-07 13:51:07 -0700256 tests/unit/GradientCacheTests.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800257 tests/unit/LayerUpdateQueueTests.cpp \
258 tests/unit/LinearAllocatorTests.cpp \
Chris Craik261725f2016-02-29 12:52:33 -0800259 tests/unit/MatrixTests.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800260 tests/unit/OffscreenBufferPoolTests.cpp \
John Reck44b49f02016-03-25 14:29:48 -0700261 tests/unit/RenderNodeTests.cpp \
Chris Craikd4fe4d32016-06-09 16:57:11 -0700262 tests/unit/RenderPropertiesTests.cpp \
Chris Craik07d8d592016-02-03 18:43:04 -0800263 tests/unit/SkiaBehaviorTests.cpp \
Chris Craik04d46eb2016-04-07 13:51:07 -0700264 tests/unit/SnapshotTests.cpp \
Andres Morales06f5bc72015-12-15 15:21:31 -0800265 tests/unit/StringUtilsTests.cpp \
Chris Craik37413282016-05-12 17:48:51 -0700266 tests/unit/TestUtilsTests.cpp \
Chris Craik07d8d592016-02-03 18:43:04 -0800267 tests/unit/TextDropShadowCacheTests.cpp \
Chris Craik04d46eb2016-04-07 13:51:07 -0700268 tests/unit/VectorDrawableTests.cpp
John Reckd2e72142015-08-17 13:11:43 -0700269
Chris Craikb565df12015-10-05 13:00:52 -0700270ifeq (true, $(HWUI_NEW_OPS))
271 LOCAL_SRC_FILES += \
Chris Craik419a1e72016-03-08 16:24:12 -0800272 tests/unit/BakedOpDispatcherTests.cpp \
Chris Craik02806282016-03-11 19:16:21 -0800273 tests/unit/BakedOpRendererTests.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800274 tests/unit/BakedOpStateTests.cpp \
Chris Craikf158b492016-01-12 14:45:08 -0800275 tests/unit/FrameBuilderTests.cpp \
John Reck1b94f9b2016-01-19 09:42:15 -0800276 tests/unit/LeakCheckTests.cpp \
Chris Craik91eff222016-02-22 13:39:33 -0800277 tests/unit/OpDumperTests.cpp \
Derek Sollenberger35934cc2016-03-23 14:59:10 -0400278 tests/unit/RecordingCanvasTests.cpp \
279 tests/unit/SkiaCanvasTests.cpp
Chris Craikb565df12015-10-05 13:00:52 -0700280endif
281
Derek Sollenberger991da312016-02-11 12:13:07 -0500282include $(LOCAL_PATH)/hwui_static_deps.mk
John Reckd2e72142015-08-17 13:11:43 -0700283include $(BUILD_NATIVE_TEST)
284
285# ------------------------
Chris Craik8160f202015-12-02 14:50:25 -0800286# Macro-bench app
John Reckd2e72142015-08-17 13:11:43 -0700287# ------------------------
288
289include $(CLEAR_VARS)
290
291LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
292LOCAL_MODULE:= hwuitest
293LOCAL_MODULE_TAGS := tests
John Recke248bd12015-08-05 13:53:53 -0700294LOCAL_MODULE_CLASS := EXECUTABLES
John Reckd2e72142015-08-17 13:11:43 -0700295LOCAL_MULTILIB := both
296LOCAL_MODULE_STEM_32 := hwuitest
297LOCAL_MODULE_STEM_64 := hwuitest64
John Reckd2e72142015-08-17 13:11:43 -0700298LOCAL_CFLAGS := $(hwui_cflags)
Dan Willemsene9c205b2016-03-07 12:58:33 -0800299LOCAL_C_INCLUDES := $(hwui_c_includes)
John Reckd2e72142015-08-17 13:11:43 -0700300
Chris Craik5fbd9db2015-10-19 11:22:11 -0700301# set to libhwui_static_null_gpu to skip actual GL commands
302LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
John Reckd2e72142015-08-17 13:11:43 -0700303
304LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800305 $(hwui_test_common_src_files) \
Chris Craik8160f202015-12-02 14:50:25 -0800306 tests/macrobench/TestSceneRunner.cpp \
307 tests/macrobench/main.cpp
John Reckd2e72142015-08-17 13:11:43 -0700308
Derek Sollenberger991da312016-02-11 12:13:07 -0500309include $(LOCAL_PATH)/hwui_static_deps.mk
John Reckd2e72142015-08-17 13:11:43 -0700310include $(BUILD_EXECUTABLE)
John Reck4a4bc892015-10-12 07:38:22 -0700311
312# ------------------------
313# Micro-bench app
314# ---------------------
315include $(CLEAR_VARS)
316
317LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
318LOCAL_MODULE:= hwuimicro
319LOCAL_MODULE_TAGS := tests
320LOCAL_MODULE_CLASS := EXECUTABLES
321LOCAL_MULTILIB := both
322LOCAL_MODULE_STEM_32 := hwuimicro
323LOCAL_MODULE_STEM_64 := hwuimicro64
Chris Craik8d1f2122015-11-24 16:40:09 -0800324LOCAL_CFLAGS := \
325 $(hwui_cflags) \
326 -DHWUI_NULL_GPU
John Reck4a4bc892015-10-12 07:38:22 -0700327
John Reck2bee0dd2016-03-09 08:01:37 -0800328LOCAL_C_INCLUDES := $(hwui_c_includes)
John Reck4a4bc892015-10-12 07:38:22 -0700329
Chris Craik5fbd9db2015-10-19 11:22:11 -0700330LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static_null_gpu
John Reck0418afa32016-03-07 13:24:25 -0800331LOCAL_STATIC_LIBRARIES := libgoogle-benchmark
John Reck4a4bc892015-10-12 07:38:22 -0700332
333LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800334 $(hwui_test_common_src_files) \
John Reck0418afa32016-03-07 13:24:25 -0800335 tests/microbench/main.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800336 tests/microbench/DisplayListCanvasBench.cpp \
John Reck2c0f9372016-03-28 09:34:35 -0700337 tests/microbench/FontBench.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800338 tests/microbench/LinearAllocatorBench.cpp \
339 tests/microbench/PathParserBench.cpp \
Chris Craikb251a2f2016-02-08 19:36:46 +0000340 tests/microbench/ShadowBench.cpp \
341 tests/microbench/TaskManagerBench.cpp
John Reck4a4bc892015-10-12 07:38:22 -0700342
John Reck7db5ffb2016-01-15 13:17:09 -0800343ifeq (true, $(HWUI_NEW_OPS))
344 LOCAL_SRC_FILES += \
345 tests/microbench/FrameBuilderBench.cpp
346endif
Chris Craik0a24b142015-10-19 17:10:19 -0700347
Derek Sollenberger991da312016-02-11 12:13:07 -0500348include $(LOCAL_PATH)/hwui_static_deps.mk
John Reck4a4bc892015-10-12 07:38:22 -0700349include $(BUILD_EXECUTABLE)