blob: 8831bafd43d7e84423c5965845e02d6394e2af07 [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
John Reck0bed0322016-02-25 15:02:02 -08005HWUI_NEW_OPS := false
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 Reck6cc3a252016-02-19 10:39:17 -080010HWUI_ENABLE_OPENGL_VALIDATION := true
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 \
15 renderstate/Blend.cpp \
16 renderstate/MeshState.cpp \
Chris Craik9fded232015-11-11 16:42:34 -080017 renderstate/OffscreenBufferPool.cpp \
John Reckd2e72142015-08-17 13:11:43 -070018 renderstate/PixelBufferState.cpp \
19 renderstate/RenderState.cpp \
20 renderstate/Scissor.cpp \
21 renderstate/Stencil.cpp \
22 renderstate/TextureState.cpp \
23 renderthread/CanvasContext.cpp \
24 renderthread/DrawFrameTask.cpp \
25 renderthread/EglManager.cpp \
26 renderthread/RenderProxy.cpp \
27 renderthread/RenderTask.cpp \
28 renderthread/RenderThread.cpp \
29 renderthread/TimeLord.cpp \
30 thread/TaskManager.cpp \
31 utils/Blur.cpp \
32 utils/GLUtils.cpp \
33 utils/LinearAllocator.cpp \
Derek Sollenberger4c5efe92015-07-10 13:56:39 -040034 utils/NinePatchImpl.cpp \
Chris Craik6e6646c2015-09-14 15:54:12 -070035 utils/StringUtils.cpp \
Tom Hudsonb2f5bd22015-10-15 16:41:55 -040036 utils/TestWindowContext.cpp \
Doris Liu804618d2015-11-16 22:48:34 -080037 utils/VectorDrawableUtils.cpp \
John Reckd2e72142015-08-17 13:11:43 -070038 AmbientShadow.cpp \
39 AnimationContext.cpp \
40 Animator.cpp \
41 AnimatorManager.cpp \
42 AssetAtlas.cpp \
43 Caches.cpp \
Chris Craika1717272015-11-19 13:02:43 -080044 Canvas.cpp \
John Reckd2e72142015-08-17 13:11:43 -070045 CanvasState.cpp \
46 ClipArea.cpp \
47 DamageAccumulator.cpp \
48 DeferredDisplayList.cpp \
49 DeferredLayerUpdater.cpp \
John Reck704bed02015-11-05 09:22:17 -080050 DeviceInfo.cpp \
John Reckd2e72142015-08-17 13:11:43 -070051 DisplayList.cpp \
52 DisplayListCanvas.cpp \
53 Dither.cpp \
54 Extensions.cpp \
55 FboCache.cpp \
56 FontRenderer.cpp \
57 FrameInfo.cpp \
58 FrameInfoVisualizer.cpp \
59 GammaFontRenderer.cpp \
60 GlopBuilder.cpp \
John Reck38e0c322015-11-10 12:19:17 -080061 GpuMemoryTracker.cpp \
John Reckd2e72142015-08-17 13:11:43 -070062 GradientCache.cpp \
63 Image.cpp \
64 Interpolator.cpp \
65 JankTracker.cpp \
66 Layer.cpp \
67 LayerCache.cpp \
68 LayerRenderer.cpp \
Chris Craik0b7e8242015-10-28 16:50:44 -070069 LayerUpdateQueue.cpp \
John Reckd2e72142015-08-17 13:11:43 -070070 Matrix.cpp \
71 OpenGLRenderer.cpp \
72 Patch.cpp \
73 PatchCache.cpp \
74 PathCache.cpp \
75 PathTessellator.cpp \
Doris Liu30bcf692015-11-04 14:56:24 -080076 PathParser.cpp \
John Reckd2e72142015-08-17 13:11:43 -070077 PixelBuffer.cpp \
78 Program.cpp \
79 ProgramCache.cpp \
80 Properties.cpp \
Doris Liu766431a2016-02-04 22:17:11 +000081 PropertyValuesHolder.cpp \
82 PropertyValuesAnimatorSet.cpp \
John Reckd2e72142015-08-17 13:11:43 -070083 RenderBufferCache.cpp \
84 RenderNode.cpp \
85 RenderProperties.cpp \
86 ResourceCache.cpp \
87 ShadowTessellator.cpp \
88 SkiaCanvas.cpp \
89 SkiaCanvasProxy.cpp \
90 SkiaShader.cpp \
91 Snapshot.cpp \
92 SpotShadow.cpp \
93 TessellationCache.cpp \
94 TextDropShadowCache.cpp \
95 Texture.cpp \
John Recke248bd12015-08-05 13:53:53 -070096 TextureCache.cpp \
Doris Liu4bbc2932015-12-01 17:59:40 -080097 VectorDrawable.cpp \
John Recke248bd12015-08-05 13:53:53 -070098 protos/hwui.proto
John Reckd2e72142015-08-17 13:11:43 -070099
Chris Craik8160f202015-12-02 14:50:25 -0800100hwui_test_common_src_files := \
Chris Craik27e58b42015-12-07 10:01:38 -0800101 $(call all-cpp-files-under, tests/common/scenes) \
102 tests/common/TestContext.cpp \
103 tests/common/TestScene.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800104 tests/common/TestUtils.cpp
105
John Reckd2e72142015-08-17 13:11:43 -0700106hwui_cflags := \
107 -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES \
108 -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \
John Reck82f5e0c2015-10-22 17:07:45 -0700109 -Wall -Wno-unused-parameter -Wunreachable-code -Werror
John Reckd2e72142015-08-17 13:11:43 -0700110
John Reckc90ed752015-11-04 07:39:44 -0800111# GCC false-positives on this warning, and since we -Werror that's
112# a problem
113hwui_cflags += -Wno-free-nonheap-object
114
Chris Craikb565df12015-10-05 13:00:52 -0700115ifeq (true, $(HWUI_NEW_OPS))
116 hwui_src_files += \
Chris Craik9e7fcfd2015-11-25 13:27:33 -0800117 BakedOpDispatcher.cpp \
Chris Craikb565df12015-10-05 13:00:52 -0700118 BakedOpRenderer.cpp \
Chris Craike4db79d2015-12-22 16:32:23 -0800119 BakedOpState.cpp \
Chris Craikf158b492016-01-12 14:45:08 -0800120 FrameBuilder.cpp \
121 LayerBuilder.cpp \
Chris Craik91eff222016-02-22 13:39:33 -0800122 OpDumper.cpp \
Chris Craikb565df12015-10-05 13:00:52 -0700123 RecordingCanvas.cpp
124
125 hwui_cflags += -DHWUI_NEW_OPS
126
127endif
128
John Reckd2e72142015-08-17 13:11:43 -0700129ifndef HWUI_COMPILE_SYMBOLS
130 hwui_cflags += -fvisibility=hidden
131endif
132
133ifdef HWUI_COMPILE_FOR_PERF
134 # TODO: Non-arm?
135 hwui_cflags += -fno-omit-frame-pointer -marm -mapcs
136endif
137
John Recke248bd12015-08-05 13:53:53 -0700138# This has to be lazy-resolved because it depends on the LOCAL_MODULE_CLASS
139# which varies depending on what is being built
140define hwui_proto_include
141$(call local-generated-sources-dir)/proto/$(LOCAL_PATH)
142endef
143
John Reckd2e72142015-08-17 13:11:43 -0700144hwui_c_includes += \
Leon Scroggins III55078072015-07-31 10:38:40 -0400145 external/skia/include/private \
John Reckd2e72142015-08-17 13:11:43 -0700146 external/skia/src/core
147
John Reckd2e72142015-08-17 13:11:43 -0700148ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
149 hwui_cflags += -DANDROID_ENABLE_RENDERSCRIPT
John Reckd2e72142015-08-17 13:11:43 -0700150 hwui_c_includes += \
151 $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,) \
152 frameworks/rs/cpp \
153 frameworks/rs
154endif
155
John Reck975591a2016-01-22 16:28:07 -0800156ifeq (true, $(HWUI_ENABLE_OPENGL_VALIDATION))
157 hwui_cflags += -include debug/wrap_gles.h
158 hwui_src_files += debug/wrap_gles.cpp
159 hwui_c_includes += frameworks/native/opengl/libs/GLES2
160 hwui_cflags += -DDEBUG_OPENGL=3
161endif
162
John Reckd2e72142015-08-17 13:11:43 -0700163
164# ------------------------
165# static library
166# ------------------------
167
168include $(CLEAR_VARS)
169
170LOCAL_MODULE_CLASS := STATIC_LIBRARIES
171LOCAL_MODULE := libhwui_static
John Reckd2e72142015-08-17 13:11:43 -0700172LOCAL_CFLAGS := $(hwui_cflags)
173LOCAL_SRC_FILES := $(hwui_src_files)
John Recke248bd12015-08-05 13:53:53 -0700174LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
Derek Sollenberger991da312016-02-11 12:13:07 -0500175LOCAL_EXPORT_C_INCLUDE_DIRS := \
176 $(LOCAL_PATH) \
177 $(hwui_c_includes) \
178 $(call hwui_proto_include)
John Reckd2e72142015-08-17 13:11:43 -0700179
Derek Sollenberger991da312016-02-11 12:13:07 -0500180include $(LOCAL_PATH)/hwui_static_deps.mk
John Reckd2e72142015-08-17 13:11:43 -0700181include $(BUILD_STATIC_LIBRARY)
182
183# ------------------------
Chris Craik5fbd9db2015-10-19 11:22:11 -0700184# static library null gpu
185# ------------------------
186
187include $(CLEAR_VARS)
188
189LOCAL_MODULE_CLASS := STATIC_LIBRARIES
190LOCAL_MODULE := libhwui_static_null_gpu
Chris Craik5fbd9db2015-10-19 11:22:11 -0700191LOCAL_CFLAGS := \
192 $(hwui_cflags) \
193 -DHWUI_NULL_GPU
194LOCAL_SRC_FILES := \
195 $(hwui_src_files) \
John Reck975591a2016-01-22 16:28:07 -0800196 debug/nullegl.cpp \
197 debug/nullgles.cpp
Chris Craik5fbd9db2015-10-19 11:22:11 -0700198LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
Derek Sollenberger991da312016-02-11 12:13:07 -0500199LOCAL_EXPORT_C_INCLUDE_DIRS := \
200 $(LOCAL_PATH) \
201 $(hwui_c_includes) \
202 $(call hwui_proto_include)
Chris Craik5fbd9db2015-10-19 11:22:11 -0700203
Derek Sollenberger991da312016-02-11 12:13:07 -0500204include $(LOCAL_PATH)/hwui_static_deps.mk
Chris Craik5fbd9db2015-10-19 11:22:11 -0700205include $(BUILD_STATIC_LIBRARY)
206
207# ------------------------
John Reckd2e72142015-08-17 13:11:43 -0700208# shared library
209# ------------------------
210
211include $(CLEAR_VARS)
212
John Recka2732a22014-12-18 13:52:33 -0800213LOCAL_MODULE_CLASS := SHARED_LIBRARIES
214LOCAL_MODULE := libhwui
John Reckd2e72142015-08-17 13:11:43 -0700215LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
Derek Sollenberger991da312016-02-11 12:13:07 -0500216LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
Romain Guye4d01122010-06-16 18:44:05 -0700217
Derek Sollenberger991da312016-02-11 12:13:07 -0500218include $(LOCAL_PATH)/hwui_static_deps.mk
John Recka2732a22014-12-18 13:52:33 -0800219include $(BUILD_SHARED_LIBRARY)
Andreas Gampeedaecc12014-11-10 20:54:07 -0800220
John Reckd2e72142015-08-17 13:11:43 -0700221# ------------------------
222# unit tests
223# ------------------------
224
225include $(CLEAR_VARS)
226
227LOCAL_MODULE := hwui_unit_tests
228LOCAL_MODULE_TAGS := tests
Chris Craik5fbd9db2015-10-19 11:22:11 -0700229LOCAL_STATIC_LIBRARIES := libhwui_static_null_gpu
Chris Craik98787e62015-11-13 10:55:30 -0800230LOCAL_CFLAGS := \
231 $(hwui_cflags) \
232 -DHWUI_NULL_GPU
John Reckd2e72142015-08-17 13:11:43 -0700233
234LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800235 $(hwui_test_common_src_files) \
236 tests/unit/CanvasStateTests.cpp \
237 tests/unit/ClipAreaTests.cpp \
John Recke5da4ef2016-01-14 12:34:46 -0800238 tests/unit/CrashHandlerInjector.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800239 tests/unit/DamageAccumulatorTests.cpp \
240 tests/unit/DeviceInfoTests.cpp \
241 tests/unit/FatVectorTests.cpp \
John Reck38e0c322015-11-10 12:19:17 -0800242 tests/unit/GpuMemoryTrackerTests.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800243 tests/unit/LayerUpdateQueueTests.cpp \
244 tests/unit/LinearAllocatorTests.cpp \
Chris Craik8160f202015-12-02 14:50:25 -0800245 tests/unit/OffscreenBufferPoolTests.cpp \
Chris Craik07d8d592016-02-03 18:43:04 -0800246 tests/unit/SkiaBehaviorTests.cpp \
Andres Morales06f5bc72015-12-15 15:21:31 -0800247 tests/unit/StringUtilsTests.cpp \
Chris Craik07d8d592016-02-03 18:43:04 -0800248 tests/unit/TextDropShadowCacheTests.cpp \
John Reck83c9b5b2016-02-05 13:03:47 -0800249 tests/unit/VectorDrawableTests.cpp \
250 tests/unit/GradientCacheTests.cpp
John Reckd2e72142015-08-17 13:11:43 -0700251
Chris Craikb565df12015-10-05 13:00:52 -0700252ifeq (true, $(HWUI_NEW_OPS))
253 LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800254 tests/unit/BakedOpStateTests.cpp \
Chris Craikf158b492016-01-12 14:45:08 -0800255 tests/unit/FrameBuilderTests.cpp \
John Reck1b94f9b2016-01-19 09:42:15 -0800256 tests/unit/LeakCheckTests.cpp \
Chris Craik91eff222016-02-22 13:39:33 -0800257 tests/unit/OpDumperTests.cpp \
Chris Craik5ea17242016-01-11 14:07:59 -0800258 tests/unit/RecordingCanvasTests.cpp
Chris Craikb565df12015-10-05 13:00:52 -0700259endif
260
Derek Sollenberger991da312016-02-11 12:13:07 -0500261include $(LOCAL_PATH)/hwui_static_deps.mk
John Reckd2e72142015-08-17 13:11:43 -0700262include $(BUILD_NATIVE_TEST)
263
264# ------------------------
Chris Craik8160f202015-12-02 14:50:25 -0800265# Macro-bench app
John Reckd2e72142015-08-17 13:11:43 -0700266# ------------------------
267
268include $(CLEAR_VARS)
269
270LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
271LOCAL_MODULE:= hwuitest
272LOCAL_MODULE_TAGS := tests
John Recke248bd12015-08-05 13:53:53 -0700273LOCAL_MODULE_CLASS := EXECUTABLES
John Reckd2e72142015-08-17 13:11:43 -0700274LOCAL_MULTILIB := both
275LOCAL_MODULE_STEM_32 := hwuitest
276LOCAL_MODULE_STEM_64 := hwuitest64
John Reckd2e72142015-08-17 13:11:43 -0700277LOCAL_CFLAGS := $(hwui_cflags)
John Reckd2e72142015-08-17 13:11:43 -0700278
Chris Craik5fbd9db2015-10-19 11:22:11 -0700279# set to libhwui_static_null_gpu to skip actual GL commands
280LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
John Reckd2e72142015-08-17 13:11:43 -0700281
282LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800283 $(hwui_test_common_src_files) \
Chris Craik8160f202015-12-02 14:50:25 -0800284 tests/macrobench/TestSceneRunner.cpp \
285 tests/macrobench/main.cpp
John Reckd2e72142015-08-17 13:11:43 -0700286
Derek Sollenberger991da312016-02-11 12:13:07 -0500287include $(LOCAL_PATH)/hwui_static_deps.mk
John Reckd2e72142015-08-17 13:11:43 -0700288include $(BUILD_EXECUTABLE)
John Reck4a4bc892015-10-12 07:38:22 -0700289
290# ------------------------
291# Micro-bench app
292# ---------------------
293include $(CLEAR_VARS)
294
295LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
296LOCAL_MODULE:= hwuimicro
297LOCAL_MODULE_TAGS := tests
298LOCAL_MODULE_CLASS := EXECUTABLES
299LOCAL_MULTILIB := both
300LOCAL_MODULE_STEM_32 := hwuimicro
301LOCAL_MODULE_STEM_64 := hwuimicro64
Chris Craik8d1f2122015-11-24 16:40:09 -0800302LOCAL_CFLAGS := \
303 $(hwui_cflags) \
304 -DHWUI_NULL_GPU
John Reck4a4bc892015-10-12 07:38:22 -0700305LOCAL_C_INCLUDES += bionic/benchmarks/
306
Chris Craik5fbd9db2015-10-19 11:22:11 -0700307LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static_null_gpu
John Reck4a4bc892015-10-12 07:38:22 -0700308LOCAL_STATIC_LIBRARIES := libbenchmark libbase
309
310LOCAL_SRC_FILES += \
Chris Craik8160f202015-12-02 14:50:25 -0800311 $(hwui_test_common_src_files) \
312 tests/microbench/DisplayListCanvasBench.cpp \
313 tests/microbench/LinearAllocatorBench.cpp \
314 tests/microbench/PathParserBench.cpp \
Chris Craikb251a2f2016-02-08 19:36:46 +0000315 tests/microbench/ShadowBench.cpp \
316 tests/microbench/TaskManagerBench.cpp
John Reck4a4bc892015-10-12 07:38:22 -0700317
John Reck7db5ffb2016-01-15 13:17:09 -0800318ifeq (true, $(HWUI_NEW_OPS))
319 LOCAL_SRC_FILES += \
320 tests/microbench/FrameBuilderBench.cpp
321endif
Chris Craik0a24b142015-10-19 17:10:19 -0700322
Derek Sollenberger991da312016-02-11 12:13:07 -0500323include $(LOCAL_PATH)/hwui_static_deps.mk
John Reck4a4bc892015-10-12 07:38:22 -0700324include $(BUILD_EXECUTABLE)