Android.mk revision 1cab2921ab279367f8206cdadc9259d12e603548
1BASE_PATH := $(call my-dir)
2LOCAL_PATH:= $(call my-dir)
3
4###############################################################################
5#
6# PROBLEMS WITH SKIA DEBUGGING?? READ THIS...
7#
8# The debug build results in changes to the Skia headers. This means that those
9# using libskia must also be built with the debug version of the Skia headers.
10# There are a few scenarios where this comes into play:
11#
12# (1) You're building debug code that depends on libskia.
13#   (a) If libskia is built in release, then define SK_RELEASE when building
14#       your sources.
15#   (b) If libskia is built with debugging (see step 2), then no changes are
16#       needed since your sources and libskia have been built with SK_DEBUG.
17# (2) You're building libskia in debug mode.
18#   (a) RECOMMENDED: You can build the entire system in debug mode. Do this by
19#       updating your buildspec.mk to include TARGET_BUILD_TYPE=debug
20#   (b) You can update all the users of libskia to define SK_DEBUG when they are
21#       building their sources.
22#
23# NOTE: If neither SK_DEBUG or SK_RELEASE are defined then Skia checks NDEBUG to
24#       determine which build type to use.
25###############################################################################
26
27
28#############################################################
29#   build the skia+fretype+png+jpeg+zlib+gif+webp library
30#
31
32include $(CLEAR_VARS)
33
34LOCAL_ARM_MODE := arm
35
36# need a flag to tell the C side when we're on devices with large memory
37# budgets (i.e. larger than the low-end devices that initially shipped)
38ifeq ($(ARCH_ARM_HAVE_VFP),true)
39    LOCAL_CFLAGS += -DANDROID_LARGE_MEMORY_DEVICE
40endif
41
42ifneq ($(ARCH_ARM_HAVE_VFP),true)
43	LOCAL_CFLAGS += -DSK_SOFTWARE_FLOAT
44endif
45
46ifeq ($(ARCH_ARM_HAVE_NEON),true)
47	LOCAL_CFLAGS += -D__ARM_HAVE_NEON
48endif
49
50LOCAL_SRC_FILES:= \
51	src/core/Sk64.cpp \
52	src/core/SkAAClip.cpp \
53	src/core/SkAdvancedTypefaceMetrics.cpp \
54	src/core/SkAlphaRuns.cpp \
55	src/core/SkBitmap.cpp \
56	src/core/SkBitmapProcShader.cpp \
57	src/core/SkBitmapProcState.cpp \
58	src/core/SkBitmapProcState_matrixProcs.cpp \
59	src/core/SkBitmapSampler.cpp \
60	src/core/SkBitmap_scroll.cpp \
61	src/core/SkBlitMask_D32.cpp \
62	src/core/SkBlitRow_D16.cpp \
63	src/core/SkBlitRow_D32.cpp \
64	src/core/SkBlitRow_D4444.cpp \
65	src/core/SkBlitter.cpp \
66	src/core/SkBlitter_4444.cpp \
67	src/core/SkBlitter_A1.cpp \
68	src/core/SkBlitter_A8.cpp \
69	src/core/SkBlitter_ARGB32.cpp \
70	src/core/SkBlitter_RGB16.cpp \
71	src/core/SkBlitter_Sprite.cpp \
72	src/core/SkBuffer.cpp \
73	src/core/SkCanvas.cpp \
74	src/core/SkChunkAlloc.cpp \
75	src/core/SkClampRange.cpp \
76	src/core/SkClipStack.cpp \
77	src/core/SkColor.cpp \
78	src/core/SkColorFilter.cpp \
79	src/core/SkColorTable.cpp \
80	src/core/SkComposeShader.cpp \
81	src/core/SkConcaveToTriangles.cpp \
82	src/core/SkCordic.cpp \
83	src/core/SkCubicClipper.cpp \
84	src/core/SkData.cpp \
85	src/core/SkDebug.cpp \
86	src/core/SkDeque.cpp \
87	src/core/SkDevice.cpp \
88	src/core/SkDither.cpp \
89	src/core/SkDraw.cpp \
90  src/core/SkEdgeBuilder.cpp \
91	src/core/SkEdgeClipper.cpp \
92  src/core/SkEdge.cpp \
93	src/core/SkFilterProc.cpp \
94	src/core/SkFlattenable.cpp \
95	src/core/SkFloat.cpp \
96	src/core/SkFloatBits.cpp \
97	src/core/SkFontHost.cpp \
98	src/core/SkGeometry.cpp \
99	src/core/SkGlyphCache.cpp \
100	src/core/SkGraphics.cpp \
101	src/core/SkLineClipper.cpp \
102	src/core/SkMallocPixelRef.cpp \
103	src/core/SkMask.cpp \
104	src/core/SkMaskFilter.cpp \
105	src/core/SkMath.cpp \
106	src/core/SkMatrix.cpp \
107	src/core/SkMetaData.cpp \
108	src/core/SkMMapStream.cpp \
109	src/core/SkPackBits.cpp \
110	src/core/SkPaint.cpp \
111	src/core/SkPath.cpp \
112	src/core/SkPathEffect.cpp \
113	src/core/SkPathHeap.cpp \
114	src/core/SkPathMeasure.cpp \
115	src/core/SkPicture.cpp \
116	src/core/SkPictureFlat.cpp \
117	src/core/SkPicturePlayback.cpp \
118	src/core/SkPictureRecord.cpp \
119	src/core/SkPixelRef.cpp \
120	src/core/SkPoint.cpp \
121	src/core/SkProcSpriteBlitter.cpp \
122	src/core/SkPtrRecorder.cpp \
123	src/core/SkQuadClipper.cpp \
124	src/core/SkRasterClip.cpp \
125	src/core/SkRasterizer.cpp \
126	src/core/SkRect.cpp \
127	src/core/SkRefDict.cpp \
128	src/core/SkRegion.cpp \
129	src/core/SkRegion_path.cpp \
130  src/core/SkScalar.cpp \
131  src/core/SkScalerContext.cpp \
132	src/core/SkScan.cpp \
133	src/core/SkScan_AntiPath.cpp \
134	src/core/SkScan_Antihair.cpp \
135	src/core/SkScan_Hairline.cpp \
136	src/core/SkScan_Path.cpp \
137	src/core/SkShader.cpp \
138	src/core/SkShape.cpp \
139	src/core/SkSpriteBlitter_ARGB32.cpp \
140	src/core/SkSpriteBlitter_RGB16.cpp \
141	src/core/SkStream.cpp \
142	src/core/SkString.cpp \
143	src/core/SkStroke.cpp \
144	src/core/SkStrokerPriv.cpp \
145	src/core/SkTSearch.cpp \
146	src/core/SkTypeface.cpp \
147	src/core/SkTypefaceCache.cpp \
148	src/core/SkUnPreMultiply.cpp \
149	src/core/SkUtils.cpp \
150	src/core/SkFlate.cpp \
151	src/core/SkWriter32.cpp \
152	src/core/SkXfermode.cpp \
153	src/effects/Sk1DPathEffect.cpp \
154	src/effects/Sk2DPathEffect.cpp \
155	src/effects/SkAvoidXfermode.cpp \
156	src/effects/SkArithmeticMode.cpp \
157	src/effects/SkBitmapCache.cpp \
158	src/effects/SkBlurDrawLooper.cpp \
159	src/effects/SkBlurImageFilter.cpp \
160	src/effects/SkBlurMask.cpp \
161	src/effects/SkBlurMaskFilter.cpp \
162	src/effects/SkColorFilters.cpp \
163	src/effects/SkColorMatrixFilter.cpp \
164	src/effects/SkCornerPathEffect.cpp \
165	src/effects/SkDashPathEffect.cpp \
166	src/effects/SkDiscretePathEffect.cpp \
167	src/effects/SkEffects.cpp \
168	src/effects/SkEmbossMask.cpp \
169	src/effects/SkEmbossMaskFilter.cpp \
170	src/effects/SkGradientShader.cpp \
171	src/effects/SkGroupShape.cpp \
172	src/effects/SkKernel33MaskFilter.cpp \
173	src/effects/SkLayerDrawLooper.cpp \
174	src/effects/SkLayerRasterizer.cpp \
175	src/effects/SkPaintFlagsDrawFilter.cpp \
176	src/effects/SkPixelXorXfermode.cpp \
177	src/effects/SkPorterDuff.cpp \
178	src/effects/SkRectShape.cpp \
179	src/effects/SkTableColorFilter.cpp \
180  src/effects/SkTableMaskFilter.cpp \
181  src/effects/SkTestImageFilters.cpp \
182	src/effects/SkTransparentShader.cpp \
183	src/images/bmpdecoderhelper.cpp \
184	src/images/SkBitmapRegionDecoder.cpp \
185	src/images/SkCreateRLEPixelRef.cpp \
186	src/images/SkFDStream.cpp \
187	src/images/SkFlipPixelRef.cpp \
188	src/images/SkImageDecoder.cpp \
189	src/images/SkImageDecoder_Factory.cpp \
190	src/images/SkImageDecoder_libbmp.cpp \
191	src/images/SkImageDecoder_libgif.cpp \
192	src/images/SkImageDecoder_libico.cpp \
193	src/images/SkImageDecoder_libjpeg.cpp \
194	src/images/SkImageDecoder_libpng.cpp \
195	src/images/SkImageDecoder_libwebp.cpp \
196	src/images/SkImageDecoder_wbmp.cpp \
197	src/images/SkImageEncoder.cpp \
198	src/images/SkImageEncoder_Factory.cpp \
199	src/images/SkImageRef.cpp \
200	src/images/SkImageRefPool.cpp \
201	src/images/SkImageRef_GlobalPool.cpp \
202	src/images/SkJpegUtility.cpp \
203	src/images/SkMovie.cpp \
204	src/images/SkMovie_gif.cpp \
205	src/images/SkPageFlipper.cpp \
206	src/images/SkScaledBitmapSampler.cpp \
207	src/ports/FontHostConfiguration_android.cpp \
208	src/ports/SkDebug_android.cpp \
209	src/ports/SkGlobalInitialization_default.cpp \
210	src/ports/SkFontHost_FreeType.cpp \
211	src/ports/SkFontHost_sandbox_none.cpp	\
212	src/ports/SkFontHost_android.cpp \
213	src/ports/SkFontHost_gamma.cpp \
214	src/ports/SkFontHost_tables.cpp \
215	src/ports/SkImageRef_ashmem.cpp \
216	src/ports/SkMemory_malloc.cpp \
217	src/ports/SkOSFile_stdio.cpp \
218	src/ports/SkTime_Unix.cpp \
219	src/utils/SkBoundaryPatch.cpp \
220	src/utils/SkCamera.cpp \
221	src/utils/SkColorMatrix.cpp \
222  src/utils/SkCubicInterval.cpp \
223	src/utils/SkCullPoints.cpp \
224	src/utils/SkDumpCanvas.cpp \
225	src/utils/SkInterpolator.cpp \
226	src/utils/SkLayer.cpp \
227	src/utils/SkMatrix44.cpp \
228	src/utils/SkMeshUtils.cpp \
229	src/utils/SkNinePatch.cpp \
230	src/utils/SkNWayCanvas.cpp \
231	src/utils/SkOSFile.cpp \
232	src/utils/SkParse.cpp \
233	src/utils/SkParseColor.cpp \
234	src/utils/SkParsePath.cpp \
235	src/utils/SkProxyCanvas.cpp \
236	src/utils/SkSfntUtils.cpp \
237	src/utils/SkUnitMappers.cpp
238
239ifeq ($(TARGET_ARCH),arm)
240
241ifeq ($(ARCH_ARM_HAVE_NEON),true)
242LOCAL_SRC_FILES += \
243	src/opts/memset16_neon.S \
244	src/opts/memset32_neon.S
245endif
246
247LOCAL_SRC_FILES += \
248	src/opts/opts_check_arm.cpp \
249	src/opts/memset.arm.S \
250	src/opts/SkBitmapProcState_opts_arm.cpp \
251	src/opts/SkBlitRow_opts_arm.cpp
252else
253LOCAL_SRC_FILES += \
254	src/opts/SkBlitRow_opts_none.cpp \
255	src/opts/SkBitmapProcState_opts_none.cpp \
256	src/opts/SkUtils_opts_none.cpp
257endif
258
259# these are for emoji support, needed by webkit
260LOCAL_SRC_FILES += \
261	emoji/EmojiFont.cpp
262
263LOCAL_SHARED_LIBRARIES := \
264	libcutils \
265	libemoji \
266	libjpeg \
267	libutils \
268	libz \
269	libexpat
270
271LOCAL_STATIC_LIBRARIES := \
272	libft2 \
273	libpng \
274	libgif \
275	libwebp-decode \
276	libwebp-encode
277
278LOCAL_C_INCLUDES += \
279	$(LOCAL_PATH)/src/core \
280	$(LOCAL_PATH)/include/core \
281	$(LOCAL_PATH)/include/config \
282	$(LOCAL_PATH)/include/effects \
283	$(LOCAL_PATH)/include/images \
284	$(LOCAL_PATH)/include/utils \
285	$(LOCAL_PATH)/include/xml \
286	external/freetype/include \
287	external/zlib \
288	external/libpng \
289	external/giflib \
290	external/jpeg \
291	external/webp/include \
292	frameworks/opt/emoji \
293	external/expat/lib
294
295ifeq ($(NO_FALLBACK_FONT),true)
296	LOCAL_CFLAGS += -DNO_FALLBACK_FONT
297endif
298
299LOCAL_LDLIBS += -lpthread
300
301LOCAL_MODULE:= libskia
302
303include $(BUILD_SHARED_LIBRARY)
304
305#############################################################
306# Build the skia gpu (ganesh) library
307#
308
309include $(CLEAR_VARS)
310
311LOCAL_ARM_MODE := arm
312
313ifneq ($(ARCH_ARM_HAVE_VFP),true)
314       LOCAL_CFLAGS += -DSK_SOFTWARE_FLOAT
315endif
316
317ifeq ($(ARCH_ARM_HAVE_NEON),true)
318       LOCAL_CFLAGS += -DGR_ANDROID_BUILD=1
319endif
320
321LOCAL_SRC_FILES:= \
322  src/gpu/GrPrintf_skia.cpp \
323  src/gpu/SkGLContext.cpp \
324  src/gpu/SkGpuCanvas.cpp \
325  src/gpu/SkGpuDevice.cpp \
326  src/gpu/SkGr.cpp \
327  src/gpu/SkGrFontScaler.cpp \
328  src/gpu/SkGrTexturePixelRef.cpp \
329  src/gpu/SkNullGLContext.cpp \
330  src/gpu/android/SkNativeGLContext_android.cpp
331
332LOCAL_SRC_FILES += \
333  src/gpu/GrAAHairLinePathRenderer.cpp \
334  src/gpu/GrAddPathRenderers_aahairline.cpp \
335  src/gpu/GrAllocPool.cpp \
336  src/gpu/GrAtlas.cpp \
337  src/gpu/GrBufferAllocPool.cpp \
338  src/gpu/GrClip.cpp \
339  src/gpu/GrContext.cpp \
340  src/gpu/GrDefaultPathRenderer.cpp \
341  src/gpu/GrDrawTarget.cpp \
342  src/gpu/GrGLCreateNullInterface.cpp \
343  src/gpu/GrGLDefaultInterface_native.cpp \
344  src/gpu/GrGLIndexBuffer.cpp \
345  src/gpu/GrGLInterface.cpp \
346  src/gpu/GrGLProgram.cpp \
347  src/gpu/GrGLRenderTarget.cpp \
348  src/gpu/GrGLSL.cpp \
349  src/gpu/GrGLStencilBuffer.cpp \
350  src/gpu/GrGLTexture.cpp \
351  src/gpu/GrGLUtil.cpp \
352  src/gpu/GrGLVertexBuffer.cpp \
353  src/gpu/GrGpu.cpp \
354  src/gpu/GrGpuFactory.cpp \
355  src/gpu/GrGpuGL.cpp \
356  src/gpu/GrGpuGLShaders.cpp \
357  src/gpu/GrInOrderDrawBuffer.cpp \
358  src/gpu/GrMatrix.cpp \
359  src/gpu/GrMemory.cpp \
360  src/gpu/GrPathRendererChain.cpp \
361  src/gpu/GrPathRenderer.cpp \
362  src/gpu/GrPathUtils.cpp \
363  src/gpu/GrRectanizer.cpp \
364  src/gpu/GrRenderTarget.cpp \
365  src/gpu/GrResource.cpp \
366  src/gpu/GrResourceCache.cpp \
367  src/gpu/GrStencil.cpp \
368  src/gpu/GrStencilBuffer.cpp \
369  src/gpu/GrTesselatedPathRenderer.cpp \
370  src/gpu/GrTextContext.cpp \
371  src/gpu/GrTextStrike.cpp \
372  src/gpu/GrTexture.cpp \
373  src/gpu/gr_unittests.cpp \
374  src/gpu/android/GrGLCreateNativeInterface_android.cpp
375  
376LOCAL_STATIC_LIBRARIES := libskiatess
377LOCAL_SHARED_LIBRARIES := \
378  libcutils \
379  libutils \
380  libskia \
381  libEGL \
382  libGLESv2
383
384LOCAL_C_INCLUDES += \
385  $(LOCAL_PATH)/include/core \
386  $(LOCAL_PATH)/include/config \
387  $(LOCAL_PATH)/include/gpu \
388  $(LOCAL_PATH)/src/core \
389  $(LOCAL_PATH)/src/gpu \
390  $(LOCAL_PATH)/third_party/glu \
391  frameworks/base/opengl/include
392
393LOCAL_LDLIBS += -lpthread
394
395LOCAL_MODULE:= libskiagpu
396LOCAL_MODULE_TAGS := optional
397
398include $(BUILD_STATIC_LIBRARY)
399
400#############################################################
401# Build the skia gpu (ganesh) library
402#
403
404include $(CLEAR_VARS)
405
406LOCAL_ARM_MODE := arm
407
408LOCAL_SRC_FILES := \
409  third_party/glu/libtess/dict.c \
410  third_party/glu/libtess/geom.c \
411  third_party/glu/libtess/memalloc.c \
412  third_party/glu/libtess/mesh.c \
413  third_party/glu/libtess/normal.c \
414  third_party/glu/libtess/priorityq.c \
415  third_party/glu/libtess/render.c \
416  third_party/glu/libtess/sweep.c \
417  third_party/glu/libtess/tess.c \
418  third_party/glu/libtess/tessmono.c
419
420LOCAL_SHARED_LIBRARIES := \
421  libcutils \
422  libutils \
423  libEGL \
424  libGLESv2
425
426LOCAL_C_INCLUDES += \
427  $(LOCAL_PATH)/third_party/glu \
428  $(LOCAL_PATH)/third_party/glu/libtess \
429  frameworks/base/opengl/include
430
431LOCAL_LDLIBS += -lpthread
432
433LOCAL_MODULE:= libskiatess
434LOCAL_MODULE_TAGS := optional
435
436include $(BUILD_STATIC_LIBRARY)
437
438#############################################################
439# Build the skia tools
440#
441
442# benchmark (timings)
443include $(BASE_PATH)/bench/Android.mk
444
445# golden-master (fidelity / regression test)
446include $(BASE_PATH)/gm/Android.mk
447
448# unit-tests
449include $(BASE_PATH)/tests/Android.mk
450