Android.mk revision 0b7e8245db728d127ada698be63d78b33fc6e4da
1LOCAL_PATH:= $(call my-dir)
2include $(CLEAR_VARS)
3LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
4
5HWUI_NEW_OPS := false
6
7hwui_src_files := \
8    font/CacheTexture.cpp \
9    font/Font.cpp \
10    renderstate/Blend.cpp \
11    renderstate/MeshState.cpp \
12    renderstate/PixelBufferState.cpp \
13    renderstate/RenderState.cpp \
14    renderstate/Scissor.cpp \
15    renderstate/Stencil.cpp \
16    renderstate/TextureState.cpp \
17    renderthread/CanvasContext.cpp \
18    renderthread/DrawFrameTask.cpp \
19    renderthread/EglManager.cpp \
20    renderthread/RenderProxy.cpp \
21    renderthread/RenderTask.cpp \
22    renderthread/RenderThread.cpp \
23    renderthread/TimeLord.cpp \
24    thread/TaskManager.cpp \
25    utils/Blur.cpp \
26    utils/GLUtils.cpp \
27    utils/LinearAllocator.cpp \
28    utils/NinePatchImpl.cpp \
29    utils/StringUtils.cpp \
30    utils/TestWindowContext.cpp \
31    AmbientShadow.cpp \
32    AnimationContext.cpp \
33    Animator.cpp \
34    AnimatorManager.cpp \
35    AssetAtlas.cpp \
36    Caches.cpp \
37    CanvasState.cpp \
38    ClipArea.cpp \
39    DamageAccumulator.cpp \
40    DeferredDisplayList.cpp \
41    DeferredLayerUpdater.cpp \
42    DisplayList.cpp \
43    DisplayListCanvas.cpp \
44    Dither.cpp \
45    Extensions.cpp \
46    FboCache.cpp \
47    FontRenderer.cpp \
48    FrameInfo.cpp \
49    FrameInfoVisualizer.cpp \
50    GammaFontRenderer.cpp \
51    GlopBuilder.cpp \
52    GradientCache.cpp \
53    Image.cpp \
54    Interpolator.cpp \
55    JankTracker.cpp \
56    Layer.cpp \
57    LayerCache.cpp \
58    LayerRenderer.cpp \
59    LayerUpdateQueue.cpp \
60    Matrix.cpp \
61    OpenGLRenderer.cpp \
62    Patch.cpp \
63    PatchCache.cpp \
64    PathCache.cpp \
65    PathTessellator.cpp \
66    PixelBuffer.cpp \
67    Program.cpp \
68    ProgramCache.cpp \
69    Properties.cpp \
70    RenderBufferCache.cpp \
71    RenderNode.cpp \
72    RenderProperties.cpp \
73    ResourceCache.cpp \
74    ShadowTessellator.cpp \
75    SkiaCanvas.cpp \
76    SkiaCanvasProxy.cpp \
77    SkiaShader.cpp \
78    Snapshot.cpp \
79    SpotShadow.cpp \
80    TessellationCache.cpp \
81    TextDropShadowCache.cpp \
82    Texture.cpp \
83    TextureCache.cpp \
84    protos/hwui.proto
85
86hwui_cflags := \
87    -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES \
88    -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \
89    -Wall -Wno-unused-parameter -Wunreachable-code -Werror
90
91ifeq (true, $(HWUI_NEW_OPS))
92    hwui_src_files += \
93        BakedOpRenderer.cpp \
94        OpReorderer.cpp \
95        RecordingCanvas.cpp
96
97    hwui_cflags += -DHWUI_NEW_OPS
98
99endif
100
101ifndef HWUI_COMPILE_SYMBOLS
102    hwui_cflags += -fvisibility=hidden
103endif
104
105ifdef HWUI_COMPILE_FOR_PERF
106    # TODO: Non-arm?
107    hwui_cflags += -fno-omit-frame-pointer -marm -mapcs
108endif
109
110# This has to be lazy-resolved because it depends on the LOCAL_MODULE_CLASS
111# which varies depending on what is being built
112define hwui_proto_include
113$(call local-generated-sources-dir)/proto/$(LOCAL_PATH)
114endef
115
116hwui_c_includes += \
117    external/skia/include/private \
118    external/skia/src/core
119
120hwui_shared_libraries := \
121    liblog \
122    libcutils \
123    libutils \
124    libEGL \
125    libGLESv2 \
126    libskia \
127    libui \
128    libgui \
129    libprotobuf-cpp-lite \
130
131ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
132    hwui_cflags += -DANDROID_ENABLE_RENDERSCRIPT
133    hwui_shared_libraries += libRS libRScpp
134    hwui_c_includes += \
135        $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,) \
136        frameworks/rs/cpp \
137        frameworks/rs
138endif
139
140
141# ------------------------
142# static library
143# ------------------------
144
145include $(CLEAR_VARS)
146
147LOCAL_MODULE_CLASS := STATIC_LIBRARIES
148LOCAL_MODULE := libhwui_static
149LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries)
150LOCAL_CFLAGS := $(hwui_cflags)
151LOCAL_SRC_FILES := $(hwui_src_files)
152LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
153LOCAL_EXPORT_C_INCLUDE_DIRS := $(hwui_c_includes) $(call hwui_proto_include)
154
155include $(BUILD_STATIC_LIBRARY)
156
157# ------------------------
158# static library null gpu
159# ------------------------
160
161include $(CLEAR_VARS)
162
163LOCAL_MODULE_CLASS := STATIC_LIBRARIES
164LOCAL_MODULE := libhwui_static_null_gpu
165LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries)
166LOCAL_CFLAGS := \
167        $(hwui_cflags) \
168        -DHWUI_NULL_GPU
169LOCAL_SRC_FILES := \
170        $(hwui_src_files) \
171        tests/nullegl.cpp \
172        tests/nullgles.cpp
173LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include)
174LOCAL_EXPORT_C_INCLUDE_DIRS := $(hwui_c_includes) $(call hwui_proto_include)
175
176include $(BUILD_STATIC_LIBRARY)
177
178# ------------------------
179# shared library
180# ------------------------
181
182include $(CLEAR_VARS)
183
184LOCAL_MODULE_CLASS := SHARED_LIBRARIES
185LOCAL_MODULE := libhwui
186LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
187LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries)
188
189include $(BUILD_SHARED_LIBRARY)
190
191# ------------------------
192# unit tests
193# ------------------------
194
195include $(CLEAR_VARS)
196
197LOCAL_MODULE := hwui_unit_tests
198LOCAL_MODULE_TAGS := tests
199LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries)
200LOCAL_STATIC_LIBRARIES := libhwui_static_null_gpu
201LOCAL_CFLAGS := $(hwui_cflags)
202
203LOCAL_SRC_FILES += \
204    unit_tests/CanvasStateTests.cpp \
205    unit_tests/ClipAreaTests.cpp \
206    unit_tests/DamageAccumulatorTests.cpp \
207    unit_tests/FatVectorTests.cpp \
208    unit_tests/LayerUpdateQueueTests.cpp \
209    unit_tests/LinearAllocatorTests.cpp \
210    unit_tests/StringUtilsTests.cpp
211
212ifeq (true, $(HWUI_NEW_OPS))
213    LOCAL_SRC_FILES += \
214        unit_tests/BakedOpStateTests.cpp \
215        unit_tests/RecordingCanvasTests.cpp \
216        unit_tests/OpReordererTests.cpp
217endif
218
219include $(BUILD_NATIVE_TEST)
220
221# ------------------------
222# test app
223# ------------------------
224
225include $(CLEAR_VARS)
226
227LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
228LOCAL_MODULE:= hwuitest
229LOCAL_MODULE_TAGS := tests
230LOCAL_MODULE_CLASS := EXECUTABLES
231LOCAL_MULTILIB := both
232LOCAL_MODULE_STEM_32 := hwuitest
233LOCAL_MODULE_STEM_64 := hwuitest64
234LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries)
235LOCAL_CFLAGS := $(hwui_cflags)
236
237# set to libhwui_static_null_gpu to skip actual GL commands
238LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static
239
240LOCAL_SRC_FILES += \
241    tests/TestContext.cpp \
242    tests/TreeContentAnimation.cpp \
243    tests/main.cpp
244
245include $(BUILD_EXECUTABLE)
246
247# ------------------------
248# Micro-bench app
249# ---------------------
250include $(CLEAR_VARS)
251
252LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp
253LOCAL_MODULE:= hwuimicro
254LOCAL_MODULE_TAGS := tests
255LOCAL_MODULE_CLASS := EXECUTABLES
256LOCAL_MULTILIB := both
257LOCAL_MODULE_STEM_32 := hwuimicro
258LOCAL_MODULE_STEM_64 := hwuimicro64
259LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries)
260LOCAL_CFLAGS := $(hwui_cflags)
261LOCAL_C_INCLUDES += bionic/benchmarks/
262
263LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static_null_gpu
264LOCAL_STATIC_LIBRARIES := libbenchmark libbase
265
266LOCAL_SRC_FILES += \
267    microbench/DisplayListCanvasBench.cpp \
268    microbench/LinearAllocatorBench.cpp \
269    microbench/ShadowBench.cpp
270
271ifeq (true, $(HWUI_NEW_OPS))
272    LOCAL_SRC_FILES += \
273        microbench/OpReordererBench.cpp
274endif
275
276include $(BUILD_EXECUTABLE)
277