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