Android.mk revision 44b977c2b7d4c8607cb4e51d89737d20e5dd70c5
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 build/config.mk to include -DSK_DEBUG on the line that
20#       defines COMMON_GLOBAL_CFLAGS
21#   (b) You can update all the users of libskia to define SK_DEBUG when they are
22#       building their sources.
23#
24# NOTE: If neither SK_DEBUG or SK_RELEASE are defined then Skia checks NDEBUG to
25#       determine which build type to use.
26###############################################################################
27
28
29#############################################################
30#   build the skia+freetype+png+jpeg+zlib+gif+webp library
31#
32
33include $(CLEAR_VARS)
34
35LOCAL_ARM_MODE := thumb
36
37# need a flag to tell the C side when we're on devices with large memory
38# budgets (i.e. larger than the low-end devices that initially shipped)
39ifeq ($(ARCH_ARM_HAVE_VFP),true)
40	LOCAL_CFLAGS += -DANDROID_LARGE_MEMORY_DEVICE
41endif
42
43ifeq ($(TARGET_ARCH),x86)
44	LOCAL_CFLAGS += -DANDROID_LARGE_MEMORY_DEVICE
45endif
46
47ifneq ($(ARCH_ARM_HAVE_VFP),true)
48	LOCAL_CFLAGS += -DSK_SOFTWARE_FLOAT
49endif
50
51ifeq ($(ARCH_ARM_HAVE_NEON),true)
52	LOCAL_CFLAGS += -D__ARM_HAVE_NEON
53endif
54
55LOCAL_CFLAGS += -DDCT_IFAST_SUPPORTED
56
57# using freetype's embolden allows us to adjust fake bold settings at
58# draw-time, at which point we know which SkTypeface is being drawn
59LOCAL_CFLAGS += -DSK_USE_FREETYPE_EMBOLDEN
60
61#Android provides at least FreeType 2.4.0 at runtime.
62LOCAL_CFLAGS += -DSK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020400
63
64#Skia should not use dlopen on Android.
65LOCAL_CFLAGS += -DSK_CAN_USE_DLOPEN=0
66
67# used for testing
68#LOCAL_CFLAGS += -g -O0
69
70ifeq ($(NO_FALLBACK_FONT),true)
71	LOCAL_CFLAGS += -DNO_FALLBACK_FONT
72endif
73
74# IMPORTANT: The build order of the SkImageDecoder_*.cpp files
75# defines the order image decoders are tested when decoding a
76# stream. The last decoder is the first one tested, so the .cpp
77# files should be in listed in order from the least likely to be
78# used, to the most likely (jpeg and png should be the last two
79# for instance.)
80# START IMAGE DECODERS
81
82LOCAL_SRC_FILES:= \
83	src/core/Sk64.cpp \
84	src/core/SkAnnotation.cpp \
85	src/core/SkAAClip.cpp \
86	src/core/SkAdvancedTypefaceMetrics.cpp \
87	src/core/SkAlphaRuns.cpp \
88	src/core/SkBBoxHierarchy.cpp \
89	src/core/SkBBoxRecord.cpp \
90	src/core/SkBBoxHierarchyRecord.cpp \
91	src/core/SkBitmap.cpp \
92	src/core/SkBitmapFilter.cpp \
93	src/core/SkBitmapHeap.cpp \
94	src/core/SkBitmapProcShader.cpp \
95	src/core/SkBitmapProcState.cpp \
96	src/core/SkBitmapProcState_matrixProcs.cpp \
97	src/core/SkBitmapScaler.cpp \
98	src/core/SkBitmap_scroll.cpp \
99	src/core/SkBlitMask_D32.cpp \
100	src/core/SkBlitRow_D16.cpp \
101	src/core/SkBlitRow_D32.cpp \
102	src/core/SkBlitter.cpp \
103	src/core/SkBlitter_A1.cpp \
104	src/core/SkBlitter_A8.cpp \
105	src/core/SkBlitter_ARGB32.cpp \
106	src/core/SkBlitter_RGB16.cpp \
107	src/core/SkBlitter_Sprite.cpp \
108	src/core/SkBuffer.cpp \
109	src/core/SkCanvas.cpp \
110	src/core/SkChunkAlloc.cpp \
111	src/core/SkClipStack.cpp \
112	src/core/SkColor.cpp \
113	src/core/SkColorFilter.cpp \
114	src/core/SkColorTable.cpp \
115	src/core/SkComposeShader.cpp \
116	src/core/SkConfig8888.cpp \
117	src/core/SkConvolver.cpp \
118	src/core/SkCordic.cpp \
119	src/core/SkCubicClipper.cpp \
120	src/core/SkData.cpp \
121	src/core/SkDataTable.cpp \
122	src/core/SkDebug.cpp \
123	src/core/SkDeque.cpp \
124	src/core/SkDevice.cpp \
125        src/core/SkDeviceLooper.cpp \
126	src/core/SkDeviceProfile.cpp \
127	src/core/SkDither.cpp \
128	src/core/SkDraw.cpp \
129	src/core/SkDrawLooper.cpp \
130	src/core/SkEdgeBuilder.cpp \
131	src/core/SkEdgeClipper.cpp \
132	src/core/SkEdge.cpp \
133	src/core/SkError.cpp \
134	src/core/SkFilterProc.cpp \
135	src/core/SkFilterShader.cpp \
136	src/core/SkFlattenable.cpp \
137	src/core/SkFlattenableBuffers.cpp \
138	src/core/SkFlattenableSerialization.cpp \
139	src/core/SkFloat.cpp \
140	src/core/SkFloatBits.cpp \
141	src/core/SkFontDescriptor.cpp \
142	src/core/SkFontStream.cpp \
143	src/core/SkFontHost.cpp \
144	src/core/SkGeometry.cpp \
145	src/core/SkGlyphCache.cpp \
146	src/core/SkGraphics.cpp \
147	src/core/SkInstCnt.cpp \
148	src/core/SkImageFilter.cpp \
149	src/core/SkImageFilterUtils.cpp \
150	src/core/SkLineClipper.cpp \
151	src/core/SkMallocPixelRef.cpp \
152	src/core/SkMask.cpp \
153	src/core/SkMaskFilter.cpp \
154	src/core/SkMaskGamma.cpp \
155	src/core/SkMath.cpp \
156	src/core/SkMatrix.cpp \
157	src/core/SkMetaData.cpp \
158	src/core/SkMipMap.cpp \
159	src/core/SkOrderedReadBuffer.cpp \
160	src/core/SkOrderedWriteBuffer.cpp \
161	src/core/SkPackBits.cpp \
162	src/core/SkPaint.cpp \
163	src/core/SkPaintOptionsAndroid.cpp \
164	src/core/SkPaintPriv.cpp \
165	src/core/SkPath.cpp \
166	src/core/SkPathEffect.cpp \
167	src/core/SkPathHeap.cpp \
168	src/core/SkPathMeasure.cpp \
169	src/core/SkPicture.cpp \
170	src/core/SkPictureFlat.cpp \
171	src/core/SkPicturePlayback.cpp \
172	src/core/SkPictureRecord.cpp \
173	src/core/SkPictureStateTree.cpp \
174	src/core/SkPixelRef.cpp \
175	src/core/SkPoint.cpp \
176	src/core/SkProcSpriteBlitter.cpp \
177	src/core/SkPtrRecorder.cpp \
178	src/core/SkQuadClipper.cpp \
179	src/core/SkRasterClip.cpp \
180	src/core/SkRasterizer.cpp \
181	src/core/SkRect.cpp \
182	src/core/SkRefCnt.cpp \
183	src/core/SkRefDict.cpp \
184	src/core/SkRegion.cpp \
185	src/core/SkRegion_path.cpp \
186	src/core/SkRRect.cpp \
187	src/core/SkRTree.cpp \
188	src/core/SkScaledImageCache.cpp \
189	src/core/SkScalar.cpp \
190	src/core/SkScalerContext.cpp \
191	src/core/SkScan.cpp \
192	src/core/SkScan_AntiPath.cpp \
193	src/core/SkScan_Antihair.cpp \
194	src/core/SkScan_Hairline.cpp \
195	src/core/SkScan_Path.cpp \
196	src/core/SkShader.cpp \
197	src/core/SkSpriteBlitter_ARGB32.cpp \
198	src/core/SkSpriteBlitter_RGB16.cpp \
199	src/core/SkStream.cpp \
200	src/core/SkString.cpp \
201	src/core/SkStringUtils.cpp \
202	src/core/SkStroke.cpp \
203	src/core/SkStrokeRec.cpp \
204	src/core/SkStrokerPriv.cpp \
205	src/core/SkTileGrid.cpp \
206	src/core/SkTileGridPicture.cpp \
207	src/core/SkTLS.cpp \
208	src/core/SkTSearch.cpp \
209	src/core/SkTypeface.cpp \
210	src/core/SkTypefaceCache.cpp \
211	src/core/SkUnPreMultiply.cpp \
212	src/core/SkUtils.cpp \
213	src/core/SkFlate.cpp \
214	src/core/SkWriter32.cpp \
215	src/core/SkXfermode.cpp \
216	src/doc/SkDocument.cpp \
217	src/doc/SkDocument_PDF.cpp \
218	src/effects/Sk1DPathEffect.cpp \
219	src/effects/Sk2DPathEffect.cpp \
220	src/effects/SkArithmeticMode.cpp \
221	src/effects/SkAvoidXfermode.cpp \
222	src/effects/SkBicubicImageFilter.cpp \
223	src/effects/SkBitmapSource.cpp \
224	src/effects/SkBlurDrawLooper.cpp \
225	src/effects/SkBlurImageFilter.cpp \
226	src/effects/SkBlurMask.cpp \
227	src/effects/SkBlurMaskFilter.cpp \
228	src/effects/SkColorFilterImageFilter.cpp \
229	src/effects/SkColorFilters.cpp \
230	src/effects/SkColorMatrix.cpp \
231	src/effects/SkColorMatrixFilter.cpp \
232	src/effects/SkComposeImageFilter.cpp \
233	src/effects/SkCornerPathEffect.cpp \
234	src/effects/SkDashPathEffect.cpp \
235	src/effects/SkDiscretePathEffect.cpp \
236	src/effects/SkDisplacementMapEffect.cpp \
237	src/effects/SkDropShadowImageFilter.cpp \
238	src/effects/SkEmbossMask.cpp \
239	src/effects/SkEmbossMaskFilter.cpp \
240	src/effects/SkGpuBlurUtils.cpp \
241	src/effects/SkKernel33MaskFilter.cpp \
242	src/effects/SkLayerDrawLooper.cpp \
243	src/effects/SkLayerRasterizer.cpp \
244	src/effects/SkLerpXfermode.cpp \
245	src/effects/SkLightingImageFilter.cpp \
246	src/effects/SkMagnifierImageFilter.cpp \
247	src/effects/SkMatrixConvolutionImageFilter.cpp \
248	src/effects/SkMergeImageFilter.cpp \
249	src/effects/SkMorphologyImageFilter.cpp \
250	src/effects/SkOffsetImageFilter.cpp \
251	src/effects/SkPaintFlagsDrawFilter.cpp \
252	src/effects/SkPerlinNoiseShader.cpp \
253	src/effects/SkPixelXorXfermode.cpp \
254	src/effects/SkPorterDuff.cpp \
255	src/effects/SkRectShaderImageFilter.cpp \
256	src/effects/SkStippleMaskFilter.cpp \
257	src/effects/SkTableColorFilter.cpp \
258	src/effects/SkTableMaskFilter.cpp \
259	src/effects/SkTestImageFilters.cpp \
260	src/effects/SkTransparentShader.cpp \
261	src/effects/SkXfermodeImageFilter.cpp \
262	src/effects/gradients/SkBitmapCache.cpp \
263	src/effects/gradients/SkClampRange.cpp \
264	src/effects/gradients/SkGradientShader.cpp \
265	src/effects/gradients/SkLinearGradient.cpp \
266	src/effects/gradients/SkRadialGradient.cpp \
267	src/effects/gradients/SkTwoPointRadialGradient.cpp \
268	src/effects/gradients/SkTwoPointConicalGradient.cpp \
269	src/effects/gradients/SkSweepGradient.cpp \
270	src/image/SkDataPixelRef.cpp \
271	src/image/SkImage.cpp \
272	src/image/SkImagePriv.cpp \
273	src/image/SkImage_Codec.cpp \
274	src/image/SkImage_Gpu.cpp \
275	src/image/SkImage_Picture.cpp \
276	src/image/SkImage_Raster.cpp \
277	src/image/SkSurface.cpp \
278	src/image/SkSurface_Gpu.cpp \
279	src/image/SkSurface_Picture.cpp \
280	src/image/SkSurface_Raster.cpp \
281	src/images/bmpdecoderhelper.cpp \
282	src/images/SkImageDecoder_FactoryDefault.cpp \
283	src/images/SkImageDecoder_FactoryRegistrar.cpp \
284	src/images/SkFlipPixelRef.cpp \
285	src/images/SkImages.cpp \
286	src/images/SkForceLinking.cpp \
287	src/images/SkImageDecoder.cpp \
288	src/images/SkImageDecoder_libbmp.cpp \
289	src/images/SkImageDecoder_wbmp.cpp \
290	src/images/SkImageDecoder_libico.cpp \
291	src/images/SkImageDecoder_libwebp.cpp \
292	src/images/SkImageDecoder_libgif.cpp \
293	src/images/SkImageDecoder_libjpeg.cpp \
294	src/images/SkImageDecoder_libpng.cpp \
295	src/images/SkImageEncoder.cpp \
296	src/images/SkImageEncoder_Factory.cpp \
297	src/images/SkImageEncoder_argb.cpp \
298	src/images/SkImageRef.cpp \
299	src/images/SkImageRefPool.cpp \
300	src/images/SkImageRef_ashmem.cpp \
301	src/images/SkImageRef_GlobalPool.cpp \
302	src/images/SkJpegUtility.cpp \
303	src/images/SkMovie.cpp \
304	src/images/SkMovie_gif.cpp \
305	src/images/SkPageFlipper.cpp \
306	src/images/SkScaledBitmapSampler.cpp \
307	src/images/SkStreamHelpers.cpp \
308	src/pathops/SkAddIntersections.cpp \
309	src/pathops/SkDCubicIntersection.cpp \
310	src/pathops/SkDCubicLineIntersection.cpp \
311	src/pathops/SkDCubicToQuads.cpp \
312	src/pathops/SkDLineIntersection.cpp \
313	src/pathops/SkDQuadImplicit.cpp \
314	src/pathops/SkDQuadIntersection.cpp \
315	src/pathops/SkDQuadLineIntersection.cpp \
316	src/pathops/SkIntersections.cpp \
317	src/pathops/SkOpAngle.cpp \
318	src/pathops/SkOpContour.cpp \
319	src/pathops/SkOpEdgeBuilder.cpp \
320	src/pathops/SkOpSegment.cpp \
321	src/pathops/SkPathOpsBounds.cpp \
322	src/pathops/SkPathOpsCommon.cpp \
323	src/pathops/SkPathOpsCubic.cpp \
324	src/pathops/SkPathOpsDebug.cpp \
325	src/pathops/SkPathOpsLine.cpp \
326	src/pathops/SkPathOpsOp.cpp \
327	src/pathops/SkPathOpsPoint.cpp \
328	src/pathops/SkPathOpsQuad.cpp \
329	src/pathops/SkPathOpsRect.cpp \
330	src/pathops/SkPathOpsSimplify.cpp \
331	src/pathops/SkPathOpsTriangle.cpp \
332	src/pathops/SkPathOpsTypes.cpp \
333	src/pathops/SkPathWriter.cpp \
334	src/pathops/SkQuarticRoot.cpp \
335	src/pathops/SkReduceOrder.cpp \
336	src/pipe/SkGPipeRead.cpp \
337	src/pipe/SkGPipeWrite.cpp \
338	src/ports/SkDebug_android.cpp \
339	src/ports/SkGlobalInitialization_default.cpp \
340	src/ports/SkFontConfigInterface_android.cpp \
341	src/ports/SkFontConfigParser_android.cpp \
342	src/ports/SkFontHost_FreeType.cpp \
343	src/ports/SkFontHost_FreeType_common.cpp \
344	src/ports/SkFontHost_fontconfig.cpp \
345	src/ports/SkMemory_malloc.cpp \
346	src/ports/SkOSFile_posix.cpp \
347	src/ports/SkOSFile_stdio.cpp \
348	src/ports/SkPurgeableMemoryBlock_android.cpp \
349	src/ports/SkThread_pthread.cpp \
350	src/ports/SkTime_Unix.cpp \
351	src/ports/SkTLS_pthread.cpp \
352	src/pdf/SkPDFCatalog.cpp \
353	src/pdf/SkPDFDevice.cpp \
354	src/pdf/SkPDFDeviceFlattener.cpp \
355	src/pdf/SkPDFDocument.cpp \
356	src/pdf/SkPDFFont.cpp \
357	src/pdf/SkPDFFormXObject.cpp \
358	src/pdf/SkPDFGraphicState.cpp \
359	src/pdf/SkPDFImage.cpp \
360	src/pdf/SkPDFImageStream.cpp \
361	src/pdf/SkPDFPage.cpp \
362	src/pdf/SkPDFResourceDict.cpp \
363	src/pdf/SkPDFShader.cpp \
364	src/pdf/SkPDFStream.cpp \
365	src/pdf/SkPDFTypes.cpp \
366	src/pdf/SkPDFUtils.cpp \
367	src/sfnt/SkOTTable_name.cpp \
368	src/sfnt/SkOTUtils.cpp \
369	src/utils/android/ashmem.cpp \
370	src/utils/debugger/SkDebugCanvas.cpp \
371	src/utils/debugger/SkDrawCommand.cpp \
372	src/utils/debugger/SkObjectParser.cpp \
373	src/utils/SkBase64.cpp \
374	src/utils/SkBitSet.cpp \
375	src/utils/SkBoundaryPatch.cpp \
376	src/utils/SkCamera.cpp \
377	src/utils/SkCanvasStack.cpp \
378	src/utils/SkCanvasStateUtils.cpp \
379	src/utils/SkCubicInterval.cpp \
380	src/utils/SkCullPoints.cpp \
381	src/utils/SkDeferredCanvas.cpp \
382	src/utils/SkDumpCanvas.cpp \
383	src/utils/SkFrontBufferedStream.cpp \
384	src/utils/SkInterpolator.cpp \
385	src/utils/SkLayer.cpp \
386	src/utils/SkMatrix44.cpp \
387	src/utils/SkMD5.cpp \
388	src/utils/SkMeshUtils.cpp \
389	src/utils/SkNinePatch.cpp \
390	src/utils/SkNWayCanvas.cpp \
391	src/utils/SkNullCanvas.cpp \
392	src/utils/SkOSFile.cpp \
393	src/utils/SkParse.cpp \
394	src/utils/SkParseColor.cpp \
395	src/utils/SkParsePath.cpp \
396	src/utils/SkPictureUtils.cpp \
397	src/utils/SkPathUtils.cpp \
398	src/utils/SkProxyCanvas.cpp \
399	src/utils/SkSHA1.cpp \
400	src/utils/SkRTConf.cpp \
401	src/utils/SkThreadUtils_pthread.cpp \
402	src/utils/SkThreadUtils_pthread_other.cpp \
403	src/utils/SkUnitMappers.cpp \
404	src/lazy/SkBitmapFactory.cpp \
405	src/lazy/SkLazyPixelRef.cpp \
406	src/lazy/SkLruImageCache.cpp \
407	src/lazy/SkPurgeableMemoryBlock_common.cpp \
408	src/lazy/SkPurgeableImageCache.cpp \
409
410#	src/utils/SkBitmapHasher.cpp \
411
412# maps to the 'skgr' gyp target
413LOCAL_SRC_FILES += \
414	src/gpu/SkGpuDevice.cpp \
415	src/gpu/SkGr.cpp \
416	src/gpu/SkGrFontScaler.cpp \
417	src/gpu/SkGrPixelRef.cpp \
418	src/gpu/SkGrTexturePixelRef.cpp \
419	src/gpu/gl/SkGLContextHelper.cpp \
420	src/gpu/gl/android/SkNativeGLContext_android.cpp \
421
422# null and debug gpu interfaces
423LOCAL_SRC_FILES += \
424	src/gpu/gl/SkNullGLContext.cpp \
425	src/gpu/gl/GrGLCreateNullInterface.cpp \
426	src/gpu/gl/debug/SkDebugGLContext.cpp \
427	src/gpu/gl/debug/GrGLCreateDebugInterface.cpp \
428	src/gpu/gl/debug/GrBufferObj.cpp \
429	src/gpu/gl/debug/GrTextureObj.cpp \
430	src/gpu/gl/debug/GrTextureUnitObj.cpp \
431	src/gpu/gl/debug/GrFrameBufferObj.cpp \
432	src/gpu/gl/debug/GrShaderObj.cpp \
433	src/gpu/gl/debug/GrProgramObj.cpp \
434	src/gpu/gl/debug/GrDebugGL.cpp
435
436# maps to the 'gr' gyp target
437LOCAL_SRC_FILES += \
438	src/gpu/GrAAHairLinePathRenderer.cpp \
439	src/gpu/GrAAConvexPathRenderer.cpp \
440	src/gpu/GrAARectRenderer.cpp \
441	src/gpu/GrAddPathRenderers_default.cpp \
442	src/gpu/GrAllocPool.cpp \
443	src/gpu/GrAtlas.cpp \
444	src/gpu/GrBufferAllocPool.cpp \
445	src/gpu/GrCacheID.cpp \
446	src/gpu/GrClipData.cpp \
447	src/gpu/GrContext.cpp \
448	src/gpu/GrDefaultPathRenderer.cpp \
449	src/gpu/GrDrawState.cpp \
450	src/gpu/GrDrawTarget.cpp \
451	src/gpu/GrEffect.cpp \
452	src/gpu/GrGeometryBuffer.cpp \
453	src/gpu/GrClipMaskCache.cpp \
454	src/gpu/GrClipMaskManager.cpp \
455	src/gpu/GrGpu.cpp \
456	src/gpu/GrGpuFactory.cpp \
457	src/gpu/GrInOrderDrawBuffer.cpp \
458	src/gpu/GrMemory.cpp \
459	src/gpu/GrMemoryPool.cpp \
460	src/gpu/GrOvalRenderer.cpp \
461	src/gpu/GrPaint.cpp \
462	src/gpu/GrPath.cpp \
463	src/gpu/GrPathRendererChain.cpp \
464	src/gpu/GrPathRenderer.cpp \
465	src/gpu/GrPathUtils.cpp \
466	src/gpu/GrRectanizer.cpp \
467	src/gpu/GrReducedClip.cpp \
468	src/gpu/GrRenderTarget.cpp \
469	src/gpu/GrResource.cpp \
470	src/gpu/GrResourceCache.cpp \
471	src/gpu/GrStencil.cpp \
472	src/gpu/GrStencilAndCoverPathRenderer.cpp \
473	src/gpu/GrStencilBuffer.cpp \
474	src/gpu/GrSWMaskHelper.cpp \
475	src/gpu/GrSoftwarePathRenderer.cpp \
476	src/gpu/GrSurface.cpp \
477	src/gpu/GrTextContext.cpp \
478	src/gpu/GrTextStrike.cpp \
479	src/gpu/GrTexture.cpp \
480	src/gpu/GrTextureAccess.cpp \
481	src/gpu/gr_unittests.cpp \
482	src/gpu/effects/GrConfigConversionEffect.cpp \
483	src/gpu/effects/GrConvolutionEffect.cpp \
484	src/gpu/effects/GrSimpleTextureEffect.cpp \
485	src/gpu/effects/GrSingleTextureEffect.cpp \
486	src/gpu/effects/GrTextureDomainEffect.cpp \
487	src/gpu/effects/GrTextureStripAtlas.cpp \
488	src/gpu/gl/GrGLBufferImpl.cpp \
489	src/gpu/gl/GrGLCaps.cpp \
490	src/gpu/gl/GrGLContext.cpp \
491	src/gpu/gl/GrGLDefaultInterface_native.cpp \
492	src/gpu/gl/GrGLEffect.cpp \
493	src/gpu/gl/GrGLExtensions.cpp \
494	src/gpu/gl/GrGLEffectMatrix.cpp \
495	src/gpu/gl/GrGLIndexBuffer.cpp \
496	src/gpu/gl/GrGLInterface.cpp \
497	src/gpu/gl/GrGLNoOpInterface.cpp \
498	src/gpu/gl/GrGLPath.cpp \
499	src/gpu/gl/GrGLProgram.cpp \
500	src/gpu/gl/GrGLProgramDesc.cpp \
501	src/gpu/gl/GrGLRenderTarget.cpp \
502	src/gpu/gl/GrGLShaderBuilder.cpp \
503	src/gpu/gl/GrGLSL.cpp \
504	src/gpu/gl/GrGLStencilBuffer.cpp \
505	src/gpu/gl/GrGLTexture.cpp \
506	src/gpu/gl/GrGLUtil.cpp \
507	src/gpu/gl/GrGLUniformManager.cpp \
508	src/gpu/gl/GrGLVertexArray.cpp \
509	src/gpu/gl/GrGLVertexBuffer.cpp \
510	src/gpu/gl/GrGpuGL.cpp \
511	src/gpu/gl/GrGpuGL_program.cpp \
512	src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp
513
514
515ifeq ($(TARGET_ARCH),arm)
516
517	ifeq ($(ARCH_ARM_HAVE_NEON),true)
518	LOCAL_SRC_FILES += \
519		src/opts/memset16_neon.S \
520		src/opts/memset32_neon.S \
521		src/opts/SkBitmapProcState_arm_neon.cpp \
522		src/opts/SkBitmapProcState_matrixProcs_neon.cpp \
523		src/opts/SkBlitRow_opts_arm_neon.cpp
524	endif
525
526LOCAL_SRC_FILES += \
527	src/core/SkUtilsArm.cpp \
528	src/opts/opts_check_arm.cpp \
529	src/opts/memset.arm.S \
530	src/opts/SkBitmapProcState_opts_arm.cpp \
531	src/opts/SkBlitRow_opts_arm.cpp
532
533else
534
535	ifeq ($(TARGET_ARCH),x86)
536	LOCAL_SRC_FILES += \
537		src/opts/opts_check_SSE2.cpp \
538		src/opts/SkBitmapProcState_opts_SSE2.cpp \
539		src/opts/SkBitmapFilter_opts_SSE2.cpp \
540		src/opts/SkBlitRow_opts_SSE2.cpp \
541		src/opts/SkBlitRect_opts_SSE2.cpp \
542		src/opts/SkUtils_opts_SSE2.cpp
543
544		ifeq ($(ARCH_X86_HAVE_SSSE3),true)
545		LOCAL_SRC_FILES += \
546			src/opts/SkBitmapProcState_opts_SSSE3.cpp
547		endif
548
549	else
550	LOCAL_SRC_FILES += \
551		src/opts/SkBlitRow_opts_none.cpp \
552		src/opts/SkBitmapProcState_opts_none.cpp \
553		src/opts/SkUtils_opts_none.cpp
554	endif
555endif
556
557LOCAL_SHARED_LIBRARIES := \
558	liblog \
559	libcutils \
560	libft2 \
561	libjpeg \
562	libpng \
563	libutils \
564	libz \
565	libexpat \
566	libutils \
567	libEGL \
568	libGLESv2
569
570LOCAL_STATIC_LIBRARIES := \
571	libgif \
572	libwebp-decode \
573	libwebp-encode
574
575LOCAL_C_INCLUDES := \
576	$(LOCAL_PATH)/include/core \
577	$(LOCAL_PATH)/include/config \
578	$(LOCAL_PATH)/include/effects \
579	$(LOCAL_PATH)/include/gpu \
580	$(LOCAL_PATH)/include/images \
581	$(LOCAL_PATH)/include/lazy \
582	$(LOCAL_PATH)/include/pathops \
583	$(LOCAL_PATH)/include/pdf \
584	$(LOCAL_PATH)/include/pipe \
585	$(LOCAL_PATH)/include/ports \
586	$(LOCAL_PATH)/include/utils \
587	$(LOCAL_PATH)/include/xml \
588	$(LOCAL_PATH)/src/core \
589	$(LOCAL_PATH)/src/gpu \
590	$(LOCAL_PATH)/src/image \
591	$(LOCAL_PATH)/src/lazy \
592	$(LOCAL_PATH)/src/pdf \
593	$(LOCAL_PATH)/src/sfnt \
594	$(LOCAL_PATH)/src/utils \
595	external/freetype/include \
596	external/zlib \
597	external/libpng \
598	external/giflib \
599	external/jpeg \
600	external/webp/include \
601	frameworks/base/opengl/include \
602	external/expat/lib
603
604LOCAL_EXPORT_C_INCLUDE_DIRS := \
605	$(LOCAL_PATH)/include/config \
606	$(LOCAL_PATH)/include/core \
607	$(LOCAL_PATH)/include/effects \
608	$(LOCAL_PATH)/include/gpu \
609	$(LOCAL_PATH)/include/images \
610	$(LOCAL_PATH)/include/pdf \
611	$(LOCAL_PATH)/include/pipe \
612	$(LOCAL_PATH)/include/ports \
613	$(LOCAL_PATH)/include/utils \
614	$(LOCAL_PATH)/include/lazy
615
616# Add SFTNLY support for PDF (which in turns depends on ICU)
617LOCAL_C_INCLUDES += external/sfntly/cpp/src
618LOCAL_STATIC_LIBRARIES += libsfntly
619LOCAL_SHARED_LIBRARIES += libicuuc libicui18n
620
621# Android's -D_FORTIFY_SOURCE=2 extensions are incompatibile with SkString.
622# Revert to -D_FORTIFY_SOURCE=1
623LOCAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
624
625LOCAL_CFLAGS += -Wno-unused-parameter
626
627LOCAL_LDLIBS += -lpthread
628
629LOCAL_MODULE:= libskia
630
631#include stlport headers
632include external/stlport/libstlport.mk
633
634include $(BUILD_SHARED_LIBRARY)
635
636#############################################################
637# Build the skia tools
638#
639
640# benchmark (timings)
641include $(BASE_PATH)/bench/Android.mk
642
643# golden-master (fidelity / regression test)
644#include $(BASE_PATH)/gm/Android.mk
645
646# unit-tests
647include $(BASE_PATH)/tests/Android.mk
648
649# pathOps unit-tests
650# TODO include those sources!
651