Android.mk revision 81a1d2a15927b06b84359f839ab03ac8a20970bd
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 AmbientShadow.cpp \ 31 AnimationContext.cpp \ 32 Animator.cpp \ 33 AnimatorManager.cpp \ 34 AssetAtlas.cpp \ 35 Caches.cpp \ 36 CanvasState.cpp \ 37 ClipArea.cpp \ 38 DamageAccumulator.cpp \ 39 DeferredDisplayList.cpp \ 40 DeferredLayerUpdater.cpp \ 41 DisplayList.cpp \ 42 DisplayListCanvas.cpp \ 43 Dither.cpp \ 44 Extensions.cpp \ 45 FboCache.cpp \ 46 FontRenderer.cpp \ 47 FrameInfo.cpp \ 48 FrameInfoVisualizer.cpp \ 49 GammaFontRenderer.cpp \ 50 GlopBuilder.cpp \ 51 GradientCache.cpp \ 52 Image.cpp \ 53 Interpolator.cpp \ 54 JankTracker.cpp \ 55 Layer.cpp \ 56 LayerCache.cpp \ 57 LayerRenderer.cpp \ 58 Matrix.cpp \ 59 OpenGLRenderer.cpp \ 60 Patch.cpp \ 61 PatchCache.cpp \ 62 PathCache.cpp \ 63 PathTessellator.cpp \ 64 PixelBuffer.cpp \ 65 Program.cpp \ 66 ProgramCache.cpp \ 67 Properties.cpp \ 68 RenderBufferCache.cpp \ 69 RenderNode.cpp \ 70 RenderProperties.cpp \ 71 ResourceCache.cpp \ 72 ShadowTessellator.cpp \ 73 SkiaCanvas.cpp \ 74 SkiaCanvasProxy.cpp \ 75 SkiaShader.cpp \ 76 Snapshot.cpp \ 77 SpotShadow.cpp \ 78 TessellationCache.cpp \ 79 TextDropShadowCache.cpp \ 80 Texture.cpp \ 81 TextureCache.cpp \ 82 protos/hwui.proto 83 84hwui_cflags := \ 85 -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES \ 86 -DATRACE_TAG=ATRACE_TAG_VIEW -DLOG_TAG=\"OpenGLRenderer\" \ 87 -Wall -Wno-unused-parameter -Wunreachable-code \ 88 -ffast-math -O3 -Werror 89 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/src/core 118 119hwui_shared_libraries := \ 120 liblog \ 121 libcutils \ 122 libutils \ 123 libEGL \ 124 libGLESv2 \ 125 libskia \ 126 libui \ 127 libgui \ 128 libprotobuf-cpp-lite \ 129 130ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT)) 131 hwui_cflags += -DANDROID_ENABLE_RENDERSCRIPT 132 hwui_shared_libraries += libRS libRScpp 133 hwui_c_includes += \ 134 $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,) \ 135 frameworks/rs/cpp \ 136 frameworks/rs 137endif 138 139 140# ------------------------ 141# static library 142# ------------------------ 143 144include $(CLEAR_VARS) 145 146LOCAL_MODULE_CLASS := STATIC_LIBRARIES 147LOCAL_MODULE := libhwui_static 148LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries) 149LOCAL_CFLAGS := $(hwui_cflags) 150LOCAL_SRC_FILES := $(hwui_src_files) 151LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include) 152LOCAL_EXPORT_C_INCLUDE_DIRS := $(hwui_c_includes) $(call hwui_proto_include) 153 154include $(BUILD_STATIC_LIBRARY) 155 156# ------------------------ 157# shared library 158# ------------------------ 159 160include $(CLEAR_VARS) 161 162LOCAL_MODULE_CLASS := SHARED_LIBRARIES 163LOCAL_MODULE := libhwui 164LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static 165LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries) 166 167include $(BUILD_SHARED_LIBRARY) 168 169# ------------------------ 170# unit tests 171# ------------------------ 172 173include $(CLEAR_VARS) 174 175LOCAL_MODULE := hwui_unit_tests 176LOCAL_MODULE_TAGS := tests 177LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries) 178LOCAL_STATIC_LIBRARIES := libhwui_static 179LOCAL_CFLAGS := $(hwui_cflags) 180 181LOCAL_SRC_FILES += \ 182 unit_tests/CanvasStateTests.cpp \ 183 unit_tests/ClipAreaTests.cpp \ 184 unit_tests/DamageAccumulatorTests.cpp \ 185 unit_tests/LinearAllocatorTests.cpp \ 186 unit_tests/StringUtilsTests.cpp 187 188ifeq (true, $(HWUI_NEW_OPS)) 189 LOCAL_SRC_FILES += \ 190 unit_tests/BakedOpStateTests.cpp \ 191 unit_tests/RecordingCanvasTests.cpp \ 192 unit_tests/OpReordererTests.cpp 193endif 194 195include $(BUILD_NATIVE_TEST) 196 197# ------------------------ 198# test app 199# ------------------------ 200 201include $(CLEAR_VARS) 202 203LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp 204LOCAL_MODULE:= hwuitest 205LOCAL_MODULE_TAGS := tests 206LOCAL_MODULE_CLASS := EXECUTABLES 207LOCAL_MULTILIB := both 208LOCAL_MODULE_STEM_32 := hwuitest 209LOCAL_MODULE_STEM_64 := hwuitest64 210LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries) 211LOCAL_CFLAGS := $(hwui_cflags) 212 213HWUI_NULL_GPU := false 214 215ifeq (true, $(HWUI_NULL_GPU)) 216 # Only need to specify the includes if we are not linking against 217 # libhwui_static as libhwui_static exports the appropriate includes 218 LOCAL_C_INCLUDES := $(hwui_c_includes) $(call hwui_proto_include) 219 220 LOCAL_SRC_FILES := \ 221 $(hwui_src_files) \ 222 tests/nullegl.cpp \ 223 tests/nullgles.cpp 224 225 LOCAL_CFLAGS += -DHWUI_NULL_GPU 226else 227 LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static 228endif 229 230LOCAL_SRC_FILES += \ 231 tests/TestContext.cpp \ 232 tests/TreeContentAnimation.cpp \ 233 tests/main.cpp 234 235include $(BUILD_EXECUTABLE) 236 237# ------------------------ 238# Micro-bench app 239# --------------------- 240include $(CLEAR_VARS) 241 242LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/local/tmp 243LOCAL_MODULE:= hwuimicro 244LOCAL_MODULE_TAGS := tests 245LOCAL_MODULE_CLASS := EXECUTABLES 246LOCAL_MULTILIB := both 247LOCAL_MODULE_STEM_32 := hwuimicro 248LOCAL_MODULE_STEM_64 := hwuimicro64 249LOCAL_SHARED_LIBRARIES := $(hwui_shared_libraries) 250LOCAL_CFLAGS := $(hwui_cflags) 251LOCAL_C_INCLUDES += bionic/benchmarks/ 252 253LOCAL_WHOLE_STATIC_LIBRARIES := libhwui_static 254LOCAL_STATIC_LIBRARIES := libbenchmark libbase 255 256LOCAL_SRC_FILES += \ 257 microbench/DisplayListCanvasBench.cpp \ 258 microbench/LinearAllocatorBench.cpp 259 260include $(BUILD_EXECUTABLE) 261