set_property(DIRECTORY . PROPERTY FOLDER "skia") # Skia dependencies not used directly in WebKit. if (NOT WIN32 AND NOT PLAYSTATION) find_package(Freetype 2.9.0 REQUIRED) find_package(Fontconfig 2.13.0 REQUIRED) endif () if (USE_SKIA_ENCODERS) find_package(WebP REQUIRED COMPONENTS mux) endif () if (ANDROID) find_package(EXPAT REQUIRED) endif () # # The target definition lists sources which always get built. # The rest may be added later as-needed with target_sources(). # add_library(Skia STATIC src/base/SkArenaAlloc.cpp src/base/SkBezierCurves.cpp src/base/SkBlockAllocator.cpp src/base/SkBuffer.cpp src/base/SkContainers.cpp src/base/SkCubics.cpp src/base/SkDebug.cpp src/base/SkDeque.cpp src/base/SkFloatingPoint.cpp src/base/SkHalf.cpp src/base/SkMalloc.cpp src/base/SkMathPriv.cpp src/base/SkQuads.cpp src/base/SkSafeMath.cpp src/base/SkSemaphore.cpp src/base/SkSharedMutex.cpp src/base/SkSpinlock.cpp src/base/SkTDArray.cpp src/base/SkTSearch.cpp src/base/SkThreadID.cpp src/base/SkTime.cpp src/base/SkUTF.cpp src/base/SkUtils.cpp src/codec/SkCodec.cpp src/codec/SkCodecImageGenerator.cpp src/codec/SkColorPalette.cpp src/codec/SkEncodedInfo.cpp src/codec/SkExif.cpp src/codec/SkGainmapInfo.cpp src/codec/SkHdrMetadata.cpp src/codec/SkImageGenerator_FromEncoded.cpp src/codec/SkJpegCodec.cpp src/codec/SkJpegDecoderMgr.cpp src/codec/SkJpegMetadataDecoderImpl.cpp src/codec/SkJpegSegmentScan.cpp src/codec/SkJpegSourceMgr.cpp src/codec/SkJpegUtility.cpp src/codec/SkParseEncodedOrigin.cpp src/codec/SkPixmapUtils.cpp src/codec/SkPngCodec.cpp src/codec/SkPngCodecBase.cpp src/codec/SkPngCompositeChunkReader.cpp src/codec/SkSampler.cpp src/codec/SkSwizzler.cpp src/codec/SkTiffUtility.cpp src/core/SkAAClip.cpp src/core/SkATrace.cpp src/core/SkAlphaRuns.cpp src/core/SkAnalyticEdge.cpp src/core/SkAnnotation.cpp src/core/SkAutoPixmapStorage.cpp src/core/SkBBHFactory.cpp src/core/SkBigPicture.cpp src/core/SkBitmap.cpp src/core/SkBitmapCache.cpp src/core/SkBitmapDevice.cpp src/core/SkBitmapProcState.cpp src/core/SkBitmapProcState_matrixProcs.cpp src/core/SkBitmapProcState_opts.cpp src/core/SkBitmapProcState_opts_ssse3.cpp src/core/SkBitmapProcState_opts_lasx.cpp src/core/SkBlendMode.cpp src/core/SkBlendModeBlender.cpp src/core/SkBlitMask_opts.cpp src/core/SkBlitMask_opts_ssse3.cpp src/core/SkBlitRow_D32.cpp src/core/SkBlitRow_opts.cpp src/core/SkBlitRow_opts_hsw.cpp src/core/SkBlitRow_opts_lasx.cpp src/core/SkBlitter.cpp src/core/SkBlitter_A8.cpp src/core/SkBlitter_ARGB32.cpp src/core/SkBlitter_Sprite.cpp src/core/SkBlurEngine.cpp src/core/SkBlurMask.cpp src/core/SkBlurMaskFilterImpl.cpp src/core/SkCPUContext.cpp src/core/SkCPURecorder.cpp src/core/SkCachedData.cpp src/core/SkCanvas.cpp src/core/SkCanvasPriv.cpp src/core/SkCanvas_Raster.cpp src/core/SkCapabilities.cpp src/core/SkChecksum.cpp src/core/SkClipStack.cpp src/core/SkClipStackDevice.cpp src/core/SkColor.cpp src/core/SkColorFilter.cpp src/core/SkColorSpace.cpp src/core/SkColorSpaceXformSteps.cpp src/core/SkColorTable.cpp src/core/SkCompressedDataUtils.cpp src/core/SkContourMeasure.cpp src/core/SkConvertPixels.cpp src/core/SkCpu.cpp src/core/SkCubicClipper.cpp src/core/SkCubicMap.cpp src/core/SkData.cpp src/core/SkDataTable.cpp src/core/SkDescriptor.cpp src/core/SkDevice.cpp src/core/SkDistanceFieldGen.cpp src/core/SkDocument.cpp src/core/SkDraw.cpp src/core/SkDrawShadowInfo.cpp src/core/SkDraw_atlas.cpp src/core/SkDraw_text.cpp src/core/SkDraw_vertices.cpp src/core/SkDrawable.cpp src/core/SkEdge.cpp src/core/SkEdgeBuilder.cpp src/core/SkEdgeClipper.cpp src/core/SkExecutor.cpp src/core/SkFlattenable.cpp src/core/SkFont.cpp src/core/SkFontDescriptor.cpp src/core/SkFontMetricsPriv.cpp src/core/SkFontMgr.cpp src/core/SkFontMgr.cpp src/core/SkFontStream.cpp src/core/SkFont_serial.cpp src/core/SkGaussFilter.cpp src/core/SkGeometry.cpp src/core/SkGlobalInitialization_core.cpp src/core/SkGlyph.cpp src/core/SkGlyphRunPainter.cpp src/core/SkGraphics.cpp src/core/SkIDChangeListener.cpp src/core/SkImageFilter.cpp src/core/SkImageFilterCache.cpp src/core/SkImageFilterTypes.cpp src/core/SkImageGenerator.cpp src/core/SkImageInfo.cpp src/core/SkKnownRuntimeEffects.cpp src/core/SkLatticeIter.cpp src/core/SkLineClipper.cpp src/core/SkLocalMatrixImageFilter.cpp src/core/SkM44.cpp src/core/SkMD5.cpp src/core/SkMallocPixelRef.cpp src/core/SkMask.cpp src/core/SkMaskBlurFilter.cpp src/core/SkMaskCache.cpp src/core/SkMaskFilter.cpp src/core/SkMaskFilterBase.cpp src/core/SkMaskGamma.cpp src/core/SkMasks.cpp src/core/SkMatrix.cpp src/core/SkMatrixInvert.cpp src/core/SkMemset_opts.cpp src/core/SkMemset_opts_avx.cpp src/core/SkMemset_opts_erms.cpp src/core/SkMesh.cpp src/core/SkMipmap.cpp src/core/SkMipmapAccessor.cpp src/core/SkMipmapBuilder.cpp src/core/SkMipmapDrawDownSampler.cpp src/core/SkMipmapHQDownSampler.cpp src/core/SkOpts.cpp src/core/SkOverdrawCanvas.cpp src/core/SkPaint.cpp src/core/SkPaintPriv.cpp src/core/SkPath.cpp src/core/SkPathBuilder.cpp src/core/SkPathEffect.cpp src/core/SkPathIter.cpp src/core/SkPathMeasure.cpp src/core/SkPathPriv.cpp src/core/SkPathRaw.cpp src/core/SkPathRawShapes.cpp src/core/SkPathRef.cpp src/core/SkPathUtils.cpp src/core/SkPath_serial.cpp src/core/SkPicture.cpp src/core/SkPictureData.cpp src/core/SkPictureFlat.cpp src/core/SkPicturePlayback.cpp src/core/SkPictureRecord.cpp src/core/SkPictureRecorder.cpp src/core/SkPixelRef.cpp src/core/SkPixmap.cpp src/core/SkPixmapDraw.cpp src/core/SkPoint.cpp src/core/SkPoint3.cpp src/core/SkPtrRecorder.cpp src/core/SkQuadClipper.cpp src/core/SkRRect.cpp src/core/SkRSXform.cpp src/core/SkRTree.cpp src/core/SkRasterClip.cpp src/core/SkRasterPipeline.cpp src/core/SkRasterPipelineBlitter.cpp src/core/SkReadBuffer.cpp src/core/SkReadPixelsRec.cpp src/core/SkRecord.cpp src/core/SkRecordCanvas.cpp src/core/SkRecordDraw.cpp src/core/SkRecordOpts.cpp src/core/SkRecordedDrawable.cpp src/core/SkRecords.cpp src/core/SkRect.cpp src/core/SkRegion.cpp src/core/SkRegion_path.cpp src/core/SkResourceCache.cpp src/core/SkRuntimeBlender.cpp src/core/SkRuntimeEffect.cpp src/core/SkSLTypeShared.cpp src/core/SkScalar.cpp src/core/SkScalerContext.cpp src/core/SkScan.cpp src/core/SkScan_AAAPath.cpp src/core/SkScan_AntiPath.cpp src/core/SkScan_Antihair.cpp src/core/SkScan_Hairline.cpp src/core/SkScan_Path.cpp src/core/SkSpecialImage.cpp src/core/SkSpriteBlitter_ARGB32.cpp src/core/SkStream.cpp src/core/SkStrike.cpp src/core/SkStrikeCache.cpp src/core/SkStrikeSpec.cpp src/core/SkString.cpp src/core/SkStringUtils.cpp src/core/SkStroke.cpp src/core/SkStrokeRec.cpp src/core/SkStrokerPriv.cpp src/core/SkSwizzle.cpp src/core/SkSwizzler_opts.cpp src/core/SkSwizzler_opts_hsw.cpp src/core/SkSynchronizedResourceCache.cpp src/core/SkSwizzler_opts_ssse3.cpp src/core/SkSwizzler_opts_lasx.cpp src/core/SkTaskGroup.cpp src/core/SkTextBlob.cpp src/core/SkTypeface.cpp src/core/SkTypefaceCache.cpp src/core/SkTypeface_remote.cpp src/core/SkUnPreMultiply.cpp src/core/SkVertState.cpp src/core/SkVertices.cpp src/core/SkWriteBuffer.cpp src/core/SkWritePixelsRec.cpp src/core/SkWriter32.cpp src/core/SkYUVAInfo.cpp src/core/SkYUVAPixmaps.cpp src/core/SkYUVMath.cpp src/core/SkYUVPlanesCache.cpp src/gpu/AtlasTypes.cpp src/gpu/Blend.cpp src/gpu/BlendFormula.cpp src/gpu/BlurUtils.cpp src/gpu/DataUtils.cpp src/gpu/DitherUtils.cpp src/gpu/RectanizerPow2.cpp src/gpu/RectanizerSkyline.cpp src/gpu/ResourceKey.cpp src/gpu/ShaderErrorHandler.cpp src/gpu/SkBackingFit.cpp src/gpu/SkSLToBackend.cpp src/gpu/Swizzle.cpp src/gpu/TiledTextureUtils.cpp src/gpu/ganesh/ClipStack.cpp src/gpu/ganesh/Device.cpp src/gpu/ganesh/Device_drawTexture.cpp src/gpu/ganesh/GrAttachment.cpp src/gpu/ganesh/GrAuditTrail.cpp src/gpu/ganesh/GrBackendSemaphore.cpp src/gpu/ganesh/GrBackendSurface.cpp src/gpu/ganesh/GrBackendTextureImageGenerator.cpp src/gpu/ganesh/GrBackendUtils.cpp src/gpu/ganesh/GrBlurUtils.cpp src/gpu/ganesh/GrBufferAllocPool.cpp src/gpu/ganesh/GrBufferTransferRenderTask.cpp src/gpu/ganesh/GrBufferUpdateRenderTask.cpp src/gpu/ganesh/GrCaps.cpp src/gpu/ganesh/GrClientMappedBufferManager.cpp src/gpu/ganesh/GrColorInfo.cpp src/gpu/ganesh/GrColorSpaceXform.cpp src/gpu/ganesh/GrContextThreadSafeProxy.cpp src/gpu/ganesh/GrContext_Base.cpp src/gpu/ganesh/GrCopyRenderTask.cpp src/gpu/ganesh/GrDDLContext.cpp src/gpu/ganesh/GrDDLTask.cpp src/gpu/ganesh/GrDataUtils.cpp src/gpu/ganesh/GrDefaultGeoProcFactory.cpp src/gpu/ganesh/GrDeferredDisplayList.cpp src/gpu/ganesh/GrDeferredDisplayListRecorder.cpp src/gpu/ganesh/GrDirectContext.cpp src/gpu/ganesh/GrDirectContextPriv.cpp src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp src/gpu/ganesh/GrDrawOpAtlas.cpp src/gpu/ganesh/GrDrawingManager.cpp src/gpu/ganesh/GrDriverBugWorkarounds.cpp src/gpu/ganesh/GrDynamicAtlas.cpp src/gpu/ganesh/GrEagerVertexAllocator.cpp src/gpu/ganesh/GrFixedClip.cpp src/gpu/ganesh/GrFragmentProcessor.cpp src/gpu/ganesh/GrFragmentProcessors.cpp src/gpu/ganesh/GrGeometryProcessor.cpp src/gpu/ganesh/GrGpu.cpp src/gpu/ganesh/GrGpuBuffer.cpp src/gpu/ganesh/GrGpuResource.cpp src/gpu/ganesh/GrImageContext.cpp src/gpu/ganesh/GrImageInfo.cpp src/gpu/ganesh/GrMemoryPool.cpp src/gpu/ganesh/GrMeshDrawTarget.cpp src/gpu/ganesh/GrOnFlushResourceProvider.cpp src/gpu/ganesh/GrOpFlushState.cpp src/gpu/ganesh/GrOpsRenderPass.cpp src/gpu/ganesh/GrPaint.cpp src/gpu/ganesh/GrPersistentCacheUtils.cpp src/gpu/ganesh/GrPipeline.cpp src/gpu/ganesh/GrProcessor.cpp src/gpu/ganesh/GrProcessorAnalysis.cpp src/gpu/ganesh/GrProcessorSet.cpp src/gpu/ganesh/GrProgramDesc.cpp src/gpu/ganesh/GrProgramInfo.cpp src/gpu/ganesh/GrPromiseImageTexture.cpp src/gpu/ganesh/GrProxyProvider.cpp src/gpu/ganesh/GrRecordingContext.cpp src/gpu/ganesh/GrRecordingContextPriv.cpp src/gpu/ganesh/GrRenderTarget.cpp src/gpu/ganesh/GrRenderTargetProxy.cpp src/gpu/ganesh/GrRenderTask.cpp src/gpu/ganesh/GrRenderTaskCluster.cpp src/gpu/ganesh/GrResourceAllocator.cpp src/gpu/ganesh/GrResourceCache.cpp src/gpu/ganesh/GrResourceProvider.cpp src/gpu/ganesh/GrRingBuffer.cpp src/gpu/ganesh/GrSWMaskHelper.cpp src/gpu/ganesh/GrShaderCaps.cpp src/gpu/ganesh/GrShaderVar.cpp src/gpu/ganesh/GrStagingBufferManager.cpp src/gpu/ganesh/GrStencilSettings.cpp src/gpu/ganesh/GrStyle.cpp src/gpu/ganesh/GrSurface.cpp src/gpu/ganesh/GrSurfaceCharacterization.cpp src/gpu/ganesh/GrSurfaceProxy.cpp src/gpu/ganesh/GrSurfaceProxyView.cpp src/gpu/ganesh/GrTexture.cpp src/gpu/ganesh/GrTextureProxy.cpp src/gpu/ganesh/GrTextureRenderTargetProxy.cpp src/gpu/ganesh/GrTextureResolveRenderTask.cpp src/gpu/ganesh/GrThreadSafeCache.cpp src/gpu/ganesh/GrTransferFromRenderTask.cpp src/gpu/ganesh/GrUtil.cpp src/gpu/ganesh/GrVertexChunkArray.cpp src/gpu/ganesh/GrWaitRenderTask.cpp src/gpu/ganesh/GrWritePixelsRenderTask.cpp src/gpu/ganesh/GrXferProcessor.cpp src/gpu/ganesh/GrYUVATextureProxies.cpp src/gpu/ganesh/PathRenderer.cpp src/gpu/ganesh/PathRenderer.cpp src/gpu/ganesh/PathRendererChain.cpp src/gpu/ganesh/SkGr.cpp src/gpu/ganesh/SkGr.cpp src/gpu/ganesh/StencilMaskHelper.cpp src/gpu/ganesh/SurfaceContext.cpp src/gpu/ganesh/SurfaceDrawContext.cpp src/gpu/ganesh/SurfaceDrawContext.cpp src/gpu/ganesh/SurfaceDrawContext.cpp src/gpu/ganesh/SurfaceFillContext.cpp src/gpu/ganesh/effects/GrBezierEffect.cpp src/gpu/ganesh/effects/GrBicubicEffect.cpp src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp src/gpu/ganesh/effects/GrColorTableEffect.cpp src/gpu/ganesh/effects/GrConvexPolyEffect.cpp src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp src/gpu/ganesh/effects/GrCustomXfermode.cpp src/gpu/ganesh/effects/GrDisableColorXP.cpp src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp src/gpu/ganesh/effects/GrMatrixEffect.cpp src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp src/gpu/ganesh/effects/GrOvalEffect.cpp src/gpu/ganesh/effects/GrPerlinNoise2Effect.cpp src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp src/gpu/ganesh/effects/GrRRectEffect.cpp src/gpu/ganesh/effects/GrShadowGeoProc.cpp src/gpu/ganesh/effects/GrSkSLFP.cpp src/gpu/ganesh/effects/GrTextureEffect.cpp src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp src/gpu/ganesh/geometry/GrAATriangulator.cpp src/gpu/ganesh/geometry/GrPathUtils.cpp src/gpu/ganesh/geometry/GrQuad.cpp src/gpu/ganesh/geometry/GrQuadUtils.cpp src/gpu/ganesh/geometry/GrShape.cpp src/gpu/ganesh/geometry/GrStyledShape.cpp src/gpu/ganesh/geometry/GrTriangulator.cpp src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp src/gpu/ganesh/gl/GrGLAssembleInterface.cpp src/gpu/ganesh/gl/GrGLAttachment.cpp src/gpu/ganesh/gl/GrGLBackendSurface.cpp src/gpu/ganesh/gl/GrGLBuffer.cpp src/gpu/ganesh/gl/GrGLCaps.cpp src/gpu/ganesh/gl/GrGLContext.cpp src/gpu/ganesh/gl/GrGLDirectContext.cpp src/gpu/ganesh/gl/GrGLExtensions.cpp src/gpu/ganesh/gl/GrGLFinishCallbacks.cpp src/gpu/ganesh/gl/GrGLGLSL.cpp src/gpu/ganesh/gl/GrGLGpu.cpp src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp src/gpu/ganesh/gl/GrGLProgram.cpp src/gpu/ganesh/gl/GrGLProgramDataManager.cpp src/gpu/ganesh/gl/GrGLRenderTarget.cpp src/gpu/ganesh/gl/GrGLSemaphore.cpp src/gpu/ganesh/gl/GrGLTexture.cpp src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp src/gpu/ganesh/gl/GrGLTypesPriv.cpp src/gpu/ganesh/gl/GrGLUniformHandler.cpp src/gpu/ganesh/gl/GrGLUtil.cpp src/gpu/ganesh/gl/GrGLVertexArray.cpp src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp src/gpu/ganesh/glsl/GrGLSLBlend.cpp src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp src/gpu/ganesh/glsl/GrGLSLVarying.cpp src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp src/gpu/ganesh/gradients/GrGradientShader.cpp src/gpu/ganesh/image/GrImageUtils.cpp src/gpu/ganesh/image/GrTextureGenerator.cpp src/gpu/ganesh/image/SkImage_Ganesh.cpp src/gpu/ganesh/image/SkImage_GaneshBase.cpp src/gpu/ganesh/image/SkImage_GaneshFactories.cpp src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp src/gpu/ganesh/image/SkImage_LazyTexture.cpp src/gpu/ganesh/image/SkImage_RasterPinnable.cpp src/gpu/ganesh/image/SkSpecialImage_Ganesh.cpp src/gpu/ganesh/mock/GrMockCaps.cpp src/gpu/ganesh/mock/GrMockGpu.cpp src/gpu/ganesh/mock/GrMockTypes.cpp src/gpu/ganesh/ops/AAConvexPathRenderer.cpp src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp src/gpu/ganesh/ops/AtlasInstancedHelper.cpp src/gpu/ganesh/ops/AtlasPathRenderer.cpp src/gpu/ganesh/ops/AtlasRenderTask.cpp src/gpu/ganesh/ops/AtlasTextOp.cpp src/gpu/ganesh/ops/ClearOp.cpp src/gpu/ganesh/ops/DashLinePathRenderer.cpp src/gpu/ganesh/ops/DashLinePathRenderer.cpp src/gpu/ganesh/ops/DashOp.cpp src/gpu/ganesh/ops/DefaultPathRenderer.cpp src/gpu/ganesh/ops/DrawAtlasOp.cpp src/gpu/ganesh/ops/DrawAtlasPathOp.cpp src/gpu/ganesh/ops/DrawMeshOp.cpp src/gpu/ganesh/ops/DrawableOp.cpp src/gpu/ganesh/ops/FillRRectOp.cpp src/gpu/ganesh/ops/FillRectOp.cpp src/gpu/ganesh/ops/GrMeshDrawOp.cpp src/gpu/ganesh/ops/GrOp.cpp src/gpu/ganesh/ops/GrOvalOpFactory.cpp src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp src/gpu/ganesh/ops/LatticeOp.cpp src/gpu/ganesh/ops/OpsTask.cpp src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp src/gpu/ganesh/ops/PathStencilCoverOp.cpp src/gpu/ganesh/ops/PathTessellateOp.cpp src/gpu/ganesh/ops/QuadPerEdgeAA.cpp src/gpu/ganesh/ops/RegionOp.cpp src/gpu/ganesh/ops/ShadowRRectOp.cpp src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp src/gpu/ganesh/ops/SmallPathRenderer.cpp src/gpu/ganesh/ops/SmallPathShapeData.cpp src/gpu/ganesh/ops/SoftwarePathRenderer.cpp src/gpu/ganesh/ops/StrokeRectOp.cpp src/gpu/ganesh/ops/StrokeTessellateOp.cpp src/gpu/ganesh/ops/TessellationPathRenderer.cpp src/gpu/ganesh/ops/TextureOp.cpp src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp src/gpu/ganesh/surface/SkSurface_Ganesh.cpp src/gpu/ganesh/tessellate/GrPathTessellationShader.cpp src/gpu/ganesh/tessellate/GrStrokeTessellationShader.cpp src/gpu/ganesh/tessellate/GrTessellationShader.cpp src/gpu/ganesh/tessellate/PathTessellator.cpp src/gpu/ganesh/tessellate/StrokeTessellator.cpp src/gpu/ganesh/text/GaneshVertexFiller.cpp src/gpu/ganesh/text/GrAtlasManager.cpp src/gpu/tessellate/FixedCountBufferUtils.cpp src/gpu/tessellate/Tessellation.cpp src/image/SkImage.cpp src/image/SkImage_Base.cpp src/image/SkImage_Lazy.cpp src/image/SkImage_LazyFactories.cpp src/image/SkImage_Picture.cpp src/image/SkImage_Raster.cpp src/image/SkImage_RasterFactories.cpp src/image/SkPictureImageGenerator.cpp src/image/SkRescaleAndReadPixels.cpp src/image/SkSurface.cpp src/image/SkSurface_Base.cpp src/image/SkSurface_Null.cpp src/image/SkSurface_Raster.cpp src/effects/Sk1DPathEffect.cpp src/effects/Sk2DPathEffect.cpp src/effects/SkBlenders.cpp src/effects/SkCornerPathEffect.cpp src/effects/SkDashPathEffect.cpp src/effects/SkDiscretePathEffect.cpp src/effects/SkEmbossMask.cpp src/effects/SkEmbossMaskFilter.cpp src/effects/SkShaderMaskFilterImpl.cpp src/effects/SkTableMaskFilter.cpp src/effects/SkTrimPathEffect.cpp src/effects/colorfilters/SkBlendModeColorFilter.cpp src/effects/colorfilters/SkColorFilterBase.cpp src/effects/colorfilters/SkColorSpaceXformColorFilter.cpp src/effects/colorfilters/SkComposeColorFilter.cpp src/effects/colorfilters/SkGaussianColorFilter.cpp src/effects/colorfilters/SkMatrixColorFilter.cpp src/effects/colorfilters/SkRuntimeColorFilter.cpp src/effects/colorfilters/SkTableColorFilter.cpp src/effects/colorfilters/SkWorkingFormatColorFilter.cpp src/effects/imagefilters/SkBlendImageFilter.cpp src/effects/imagefilters/SkBlurImageFilter.cpp src/effects/imagefilters/SkColorFilterImageFilter.cpp src/effects/imagefilters/SkComposeImageFilter.cpp src/effects/imagefilters/SkCropImageFilter.cpp src/effects/imagefilters/SkDisplacementMapImageFilter.cpp src/effects/imagefilters/SkDropShadowImageFilter.cpp src/effects/imagefilters/SkImageImageFilter.cpp src/effects/imagefilters/SkLightingImageFilter.cpp src/effects/imagefilters/SkMagnifierImageFilter.cpp src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp src/effects/imagefilters/SkMatrixTransformImageFilter.cpp src/effects/imagefilters/SkMergeImageFilter.cpp src/effects/imagefilters/SkMorphologyImageFilter.cpp src/effects/imagefilters/SkPictureImageFilter.cpp src/effects/imagefilters/SkRuntimeImageFilter.cpp src/effects/imagefilters/SkShaderImageFilter.cpp src/pathops/SkAddIntersections.cpp src/pathops/SkDConicLineIntersection.cpp src/pathops/SkDCubicLineIntersection.cpp src/pathops/SkDLineIntersection.cpp src/pathops/SkDQuadLineIntersection.cpp src/pathops/SkIntersections.cpp src/pathops/SkOpAngle.cpp src/pathops/SkOpCoincidence.cpp src/pathops/SkOpContour.cpp src/pathops/SkOpCubicHull.cpp src/pathops/SkOpEdgeBuilder.cpp src/pathops/SkOpSegment.cpp src/pathops/SkOpSpan.cpp src/pathops/SkPathOpsAsWinding.cpp src/pathops/SkPathOpsCommon.cpp src/pathops/SkPathOpsConic.cpp src/pathops/SkPathOpsCubic.cpp src/pathops/SkPathOpsCurve.cpp src/pathops/SkPathOpsDebug.cpp src/pathops/SkPathOpsLine.cpp src/pathops/SkPathOpsOp.cpp src/pathops/SkPathOpsQuad.cpp src/pathops/SkPathOpsRect.cpp src/pathops/SkPathOpsSimplify.cpp src/pathops/SkPathOpsTSect.cpp src/pathops/SkPathOpsTypes.cpp src/pathops/SkPathOpsWinding.cpp src/pathops/SkPathWriter.cpp src/pathops/SkReduceOrder.cpp src/pdf/SkClusterator.cpp src/pdf/SkDeflate.cpp src/pdf/SkKeyedImage.cpp src/pdf/SkPDFBitmap.cpp src/pdf/SkPDFDevice.cpp src/pdf/SkPDFDocument.cpp src/pdf/SkPDFFont.cpp src/pdf/SkPDFFormXObject.cpp src/pdf/SkPDFGradientShader.cpp src/pdf/SkPDFGraphicStackState.cpp src/pdf/SkPDFGraphicState.cpp src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp src/pdf/SkPDFMakeToUnicodeCmap.cpp src/pdf/SkPDFMetadata.cpp src/pdf/SkPDFResourceDict.cpp src/pdf/SkPDFShader.cpp src/pdf/SkPDFSubsetFont.cpp src/pdf/SkPDFTag.cpp src/pdf/SkPDFType1Font.cpp src/pdf/SkPDFTypes.cpp src/pdf/SkPDFUtils.cpp src/shaders/SkBitmapProcShader.cpp src/shaders/SkBlendShader.cpp src/shaders/SkColorFilterShader.cpp src/shaders/SkColorShader.cpp src/shaders/SkCoordClampShader.cpp src/shaders/SkEmptyShader.cpp src/shaders/SkImageShader.cpp src/shaders/SkLocalMatrixShader.cpp src/shaders/SkPerlinNoiseShaderImpl.cpp src/shaders/SkPictureShader.cpp src/shaders/SkRuntimeShader.cpp src/shaders/SkShader.cpp src/shaders/SkShaderBase.cpp src/shaders/SkTransformShader.cpp src/shaders/SkTriColorShader.cpp src/shaders/SkWorkingColorSpaceShader.cpp src/shaders/gradients/SkConicalGradient.cpp src/shaders/gradients/SkGradientBaseShader.cpp src/shaders/gradients/SkLinearGradient.cpp src/shaders/gradients/SkRadialGradient.cpp src/shaders/gradients/SkSweepGradient.cpp src/text/GlyphRun.cpp src/text/SlugFromBuffer.cpp src/text/StrikeForGPU.cpp src/text/gpu/DistanceFieldAdjustTable.cpp src/text/gpu/GlyphVector.cpp src/text/gpu/SDFMaskFilter.cpp src/text/gpu/SkChromeRemoteGlyphCache.cpp src/text/gpu/Slug.cpp src/text/gpu/SlugImpl.cpp src/text/gpu/StrikeCache.cpp src/text/gpu/SubRunAllocator.cpp src/text/gpu/SubRunContainer.cpp src/text/gpu/SubRunControl.cpp src/text/gpu/TextBlob.cpp src/text/gpu/TextBlobRedrawCoordinator.cpp src/text/gpu/VertexFiller.cpp src/sksl/SkSLAnalysis.cpp src/sksl/SkSLBuiltinTypes.cpp src/sksl/SkSLCompiler.cpp src/sksl/SkSLCompiler.cpp src/sksl/SkSLConstantFolder.cpp src/sksl/SkSLContext.cpp src/sksl/SkSLErrorReporter.cpp src/sksl/SkSLInliner.cpp src/sksl/SkSLIntrinsicList.cpp src/sksl/SkSLLexer.cpp src/sksl/SkSLMangler.cpp src/sksl/SkSLModule.cpp src/sksl/SkSLModuleDataDefault.cpp src/sksl/SkSLModuleLoader.cpp src/sksl/SkSLOperator.cpp src/sksl/SkSLOutputStream.cpp src/sksl/SkSLParser.cpp src/sksl/SkSLPool.cpp src/sksl/SkSLPosition.cpp src/sksl/SkSLSampleUsage.cpp src/sksl/SkSLString.cpp src/sksl/SkSLUtil.cpp src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp src/sksl/analysis/SkSLCheckProgramStructure.cpp src/sksl/analysis/SkSLCheckSymbolTableCorrectness.cpp src/sksl/analysis/SkSLFinalizationChecks.cpp src/sksl/analysis/SkSLGetLoopControlFlowInfo.cpp src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp src/sksl/analysis/SkSLGetReturnComplexity.cpp src/sksl/analysis/SkSLHasSideEffects.cpp src/sksl/analysis/SkSLIsConstantExpression.cpp src/sksl/analysis/SkSLIsDynamicallyUniformExpression.cpp src/sksl/analysis/SkSLIsSameExpressionTree.cpp src/sksl/analysis/SkSLIsTrivialExpression.cpp src/sksl/analysis/SkSLProgramUsage.cpp src/sksl/analysis/SkSLReturnsInputAlpha.cpp src/sksl/analysis/SkSLSpecialization.cpp src/sksl/analysis/SkSLSwitchCaseContainsExit.cpp src/sksl/analysis/SkSLSymbolTableStackBuilder.cpp src/sksl/codegen/SkSLGLSLCodeGenerator.cpp src/sksl/codegen/SkSLMetalCodeGenerator.cpp src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp src/sksl/codegen/SkSLRasterPipelineBuilder.cpp src/sksl/codegen/SkSLRasterPipelineCodeGenerator.cpp src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp src/sksl/codegen/SkSLWGSLCodeGenerator.cpp src/sksl/ir/SkSLBinaryExpression.cpp src/sksl/ir/SkSLBlock.cpp src/sksl/ir/SkSLChildCall.cpp src/sksl/ir/SkSLConstructor.cpp src/sksl/ir/SkSLConstructorArray.cpp src/sksl/ir/SkSLConstructorArrayCast.cpp src/sksl/ir/SkSLConstructorCompound.cpp src/sksl/ir/SkSLConstructorCompoundCast.cpp src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp src/sksl/ir/SkSLConstructorMatrixResize.cpp src/sksl/ir/SkSLConstructorScalarCast.cpp src/sksl/ir/SkSLConstructorSplat.cpp src/sksl/ir/SkSLConstructorStruct.cpp src/sksl/ir/SkSLDiscardStatement.cpp src/sksl/ir/SkSLDoStatement.cpp src/sksl/ir/SkSLExpression.cpp src/sksl/ir/SkSLExpressionStatement.cpp src/sksl/ir/SkSLExtension.cpp src/sksl/ir/SkSLFieldAccess.cpp src/sksl/ir/SkSLForStatement.cpp src/sksl/ir/SkSLFunctionCall.cpp src/sksl/ir/SkSLFunctionDeclaration.cpp src/sksl/ir/SkSLFunctionDefinition.cpp src/sksl/ir/SkSLIfStatement.cpp src/sksl/ir/SkSLIndexExpression.cpp src/sksl/ir/SkSLInterfaceBlock.cpp src/sksl/ir/SkSLLayout.cpp src/sksl/ir/SkSLLiteral.cpp src/sksl/ir/SkSLModifierFlags.cpp src/sksl/ir/SkSLModifiersDeclaration.cpp src/sksl/ir/SkSLPostfixExpression.cpp src/sksl/ir/SkSLPrefixExpression.cpp src/sksl/ir/SkSLProgram.cpp src/sksl/ir/SkSLSetting.cpp src/sksl/ir/SkSLStructDefinition.cpp src/sksl/ir/SkSLSwitchCase.cpp src/sksl/ir/SkSLSwitchStatement.cpp src/sksl/ir/SkSLSwizzle.cpp src/sksl/ir/SkSLSymbol.cpp src/sksl/ir/SkSLSymbolTable.cpp src/sksl/ir/SkSLTernaryExpression.cpp src/sksl/ir/SkSLType.cpp src/sksl/ir/SkSLTypeReference.cpp src/sksl/ir/SkSLVarDeclarations.cpp src/sksl/ir/SkSLVariable.cpp src/sksl/ir/SkSLVariableReference.cpp src/sksl/tracing/SkSLDebugTracePriv.cpp src/sksl/tracing/SkSLTraceHook.cpp src/sksl/transform/SkSLAddConstToVarModifiers.cpp src/sksl/transform/SkSLEliminateDeadFunctions.cpp src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp src/sksl/transform/SkSLEliminateEmptyStatements.cpp src/sksl/transform/SkSLEliminateUnnecessaryBraces.cpp src/sksl/transform/SkSLEliminateUnreachableCode.cpp src/sksl/transform/SkSLFindAndDeclareBuiltinFunctions.cpp src/sksl/transform/SkSLFindAndDeclareBuiltinStructs.cpp src/sksl/transform/SkSLFindAndDeclareBuiltinVariables.cpp src/sksl/transform/SkSLHoistSwitchVarDeclarationsAtTopLevel.cpp src/sksl/transform/SkSLRenamePrivateSymbols.cpp src/sksl/transform/SkSLReplaceConstVarsWithLiterals.cpp src/sksl/transform/SkSLReplaceSplatCastsWithSwizzles.cpp src/sksl/transform/SkSLRewriteIndexedSwizzle.cpp src/utils/SkCharToGlyphCache.cpp src/utils/SkClipStackUtils.cpp src/utils/SkCustomTypeface.cpp src/utils/SkDashPath.cpp src/utils/SkFloatToDecimal.cpp src/utils/SkJSONWriter.cpp src/utils/SkMatrix22.cpp src/utils/SkNWayCanvas.cpp src/utils/SkParse.cpp src/utils/SkPatchUtils.cpp src/utils/SkPolyUtils.cpp src/utils/SkShaderUtils.cpp src/utils/SkShadowTessellator.cpp src/utils/SkShadowUtils.cpp src/opts/SkOpts_hsw.cpp src/opts/SkOpts_skx.cpp src/opts/SkOpts_lasx.cpp src/ports/SkGlobalInitialization_default.cpp src/ports/SkImageGenerator_skia.cpp src/ports/SkMemory_malloc.cpp src/ports/SkOSFile_stdio.cpp src/sfnt/SkOTTable_name.cpp src/sfnt/SkOTUtils.cpp modules/skcms/skcms.cc modules/skcms/src/skcms_TransformBaseline.cc modules/skcms/src/skcms_TransformHsw.cc modules/skcms/src/skcms_TransformSkx.cc ) if (WIN32) target_sources(Skia PRIVATE src/ports/SkDebug_win.cpp src/ports/SkFontHost_win.cpp src/ports/SkFontMgr_win_dw.cpp src/ports/SkOSFile_win.cpp src/ports/SkScalerContext_win_dw.cpp src/ports/SkTypeface_win_dw.cpp src/utils/win/SkDWrite.cpp src/utils/win/SkDWriteFontFileStream.cpp src/utils/win/SkDWriteGeometrySink.cpp ) else () target_sources(Skia PRIVATE src/ports/SkDebug_stdio.cpp src/ports/SkFontHost_FreeType.cpp src/ports/SkFontHost_FreeType_common.cpp src/ports/SkOSFile_posix.cpp src/ports/SkTypeface_proxy.cpp ) target_link_libraries(Skia PRIVATE Freetype::Freetype) if (ANDROID) target_sources(Skia PRIVATE src/ports/SkDebug_android.cpp src/ports/SkFontMgr_android.cpp src/ports/SkFontMgr_android_parser.cpp ) target_link_libraries(Skia PRIVATE EXPAT::EXPAT android log) else () target_sources(Skia PRIVATE src/ports/SkFontConfigInterface.cpp src/ports/SkFontConfigInterface_direct.cpp src/ports/SkFontConfigInterface_direct_factory.cpp src/ports/SkFontMgr_fontconfig.cpp ) target_link_libraries(Skia PRIVATE Fontconfig::Fontconfig) endif () endif () if (USE_LIBEPOXY) target_sources(Skia PRIVATE src/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.cpp) target_link_libraries(Skia PRIVATE Epoxy::Epoxy) else () target_sources(Skia PRIVATE src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp) target_sources(Skia PRIVATE src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp) if (USE_ANGLE_EGL) target_link_libraries(Skia PRIVATE ANGLE::EGL) else () target_link_libraries(Skia PRIVATE ${EGL_LIBRARIES}) endif () endif () if (USE_SKIA_ENCODERS) target_sources(Skia PRIVATE src/encode/SkEncoder.cpp src/encode/SkICC.cpp src/encode/SkJPEGWriteUtility.cpp src/encode/SkJpegEncoderImpl.cpp src/encode/SkPngEncoderBase.cpp src/encode/SkPngEncoderImpl.cpp src/encode/SkWebpEncoderImpl.cpp ) target_link_libraries(Skia PRIVATE WebP::mux) else () target_sources(Skia PRIVATE src/encode/SkPngEncoder_none.cpp src/encode/SkJpegEncoder_none.cpp src/encode/SkWebpEncoder_none.cpp ) endif () if (USE_SKIA_OPENTYPE_SVG) find_package(EXPAT) if (NOT EXPAT_FOUND) message(FATAL_ERROR "Expat is required by USE_SKIA_OPENTYPE_SVG") endif () target_link_libraries(Skia PRIVATE EXPAT::EXPAT HarfBuzz::HarfBuzz ) target_compile_definitions(Skia PRIVATE SK_ENABLE_SVG SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS SK_SHAPER_HARFBUZZ_AVAILABLE SK_SHAPER_PRIMITIVE_AVAILABLE ) target_sources(Skia PRIVATE src/base/SkBase64.cpp src/effects/SkColorMatrix.cpp src/utils/SkOSPath.cpp src/utils/SkParseColor.cpp src/utils/SkParsePath.cpp src/xml/SkDOM.cpp src/xml/SkXMLParser.cpp modules/skresources/src/SkAnimCodecPlayer.cpp modules/skresources/src/SkResources.cpp modules/skshaper/src/SkShaper.cpp modules/skshaper/src/SkShaper_factory.cpp modules/skshaper/src/SkShaper_harfbuzz.cpp modules/skshaper/src/SkShaper_primitive.cpp modules/svg/src/SkSVGAttribute.cpp modules/svg/src/SkSVGAttributeParser.cpp modules/svg/src/SkSVGCircle.cpp modules/svg/src/SkSVGClipPath.cpp modules/svg/src/SkSVGContainer.cpp modules/svg/src/SkSVGDOM.cpp modules/svg/src/SkSVGEllipse.cpp modules/svg/src/SkSVGFe.cpp modules/svg/src/SkSVGFeBlend.cpp modules/svg/src/SkSVGFeColorMatrix.cpp modules/svg/src/SkSVGFeComponentTransfer.cpp modules/svg/src/SkSVGFeComposite.cpp modules/svg/src/SkSVGFeDisplacementMap.cpp modules/svg/src/SkSVGFeFlood.cpp modules/svg/src/SkSVGFeGaussianBlur.cpp modules/svg/src/SkSVGFeImage.cpp modules/svg/src/SkSVGFeLightSource.cpp modules/svg/src/SkSVGFeLighting.cpp modules/svg/src/SkSVGFeMerge.cpp modules/svg/src/SkSVGFeMorphology.cpp modules/svg/src/SkSVGFeOffset.cpp modules/svg/src/SkSVGFeTurbulence.cpp modules/svg/src/SkSVGFilter.cpp modules/svg/src/SkSVGFilterContext.cpp modules/svg/src/SkSVGGradient.cpp modules/svg/src/SkSVGImage.cpp modules/svg/src/SkSVGLine.cpp modules/svg/src/SkSVGLinearGradient.cpp modules/svg/src/SkSVGMask.cpp modules/svg/src/SkSVGNode.cpp modules/svg/src/SkSVGOpenTypeSVGDecoder.cpp modules/svg/src/SkSVGPath.cpp modules/svg/src/SkSVGPattern.cpp modules/svg/src/SkSVGPoly.cpp modules/svg/src/SkSVGRadialGradient.cpp modules/svg/src/SkSVGRect.cpp modules/svg/src/SkSVGRenderContext.cpp modules/svg/src/SkSVGSVG.cpp modules/svg/src/SkSVGShape.cpp modules/svg/src/SkSVGStop.cpp modules/svg/src/SkSVGText.cpp modules/svg/src/SkSVGTransformableNode.cpp modules/svg/src/SkSVGUse.cpp ) endif () target_link_libraries(Skia PRIVATE JPEG::JPEG PNG::PNG ) WEBKIT_ADD_TARGET_CXX_FLAGS(Skia -ffp-contract=off -fstrict-aliasing -Wno-attributes -Wno-cast-align -Wno-dangling-reference -Wno-deprecated -Wno-psabi -Wno-redundant-move -Wno-suggest-attribute=format -Wno-nontrivial-memcall -Wno-undef -Wno-uninitialized -Wno-unused-parameter ) if (WIN32) WEBKIT_ADD_TARGET_CXX_FLAGS(Skia -Wno-unused-variable) endif () target_include_directories(Skia PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" INTERFACE "${Skia_FRAMEWORK_HEADERS_DIR}/top" "${Skia_FRAMEWORK_HEADERS_DIR}/mod" ) file(MAKE_DIRECTORY "${Skia_FRAMEWORK_HEADERS_DIR}/top") file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/include" "${Skia_FRAMEWORK_HEADERS_DIR}/top/skia" SYMBOLIC ) file(MAKE_DIRECTORY "${Skia_FRAMEWORK_HEADERS_DIR}/mod/skia/modules") file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/modules/svg/include" "${Skia_FRAMEWORK_HEADERS_DIR}/mod/skia/modules/svg" SYMBOLIC ) target_compile_definitions(Skia PRIVATE SKIA_IMPLEMENTATION=1 SK_CODEC_DECODES_PNG SK_GAMMA_APPLY_TO_A8 ) # SK_DEBUG enables consistency checks. Most of the time this will not be # useful to develop WebKit, but provide a toggle that developers may flip # nevertheless to help catch incorrect Skia API uses when desired. option(SKIA_DEBUG "Enable internal Skia consistency checks" OFF) mark_as_advanced(SKIA_DEBUG) target_compile_definitions(Skia PUBLIC SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE SK_DISABLE_LEGACY_IMAGE_READBUFFER SK_DISABLE_LEGACY_INIT_DECODERS SK_DISABLE_LEGACY_PNG_WRITEBUFFER SK_DISABLE_TRACING SK_DISABLE_WEBGL_INTERFACE SK_ENABLE_PRECOMPILE SK_R32_SHIFT=16 $,SK_DEBUG,SK_RELEASE> ) # # This saves some reference churning and ctor/dtor calls in the # implementation of the sk_sp<> smart pointer template. It needs to # be PUBLIC because it changes the ABI so code using Skia must see # the attribute. # if (COMPILER_IS_CLANG) target_compile_definitions(Skia PUBLIC SK_TRIVIAL_ABI=[[clang::trivial_abi]]) endif () # # Enable the Ganesh GPU renderer. # # FIXME: Support other combinations. target_compile_definitions(Skia PRIVATE SK_GL SK_GANESH ) # # FIXME: We may want to support both GLES and "traditional" GL, so we maybe # do not make Skia assume that any particular kind of API is being # used. Note that SK_DISABLE_WEBGL_INTERFACE is set anyway so WebGL # support is not built regardless of the value for SK_ASSUME_WEBGL. # target_compile_definitions(Skia PUBLIC SK_ASSUME_GL=0 SK_ASSUME_GL_ES=1 SK_ASSUME_WEBGL=0 ) if (WIN32) target_compile_definitions(Skia PRIVATE SK_TYPEFACE_FACTORY_DIRECTWRITE) else () target_compile_definitions(Skia PRIVATE SK_TYPEFACE_FACTORY_FREETYPE) endif () # # The SkCMS module includes AVX/SSE optimizations, which may need additional # compiler flags. # set(Skia_SkCMS_HSW_OPTS FALSE) set(Skia_SkCMS_SKX_OPTS FALSE) set(Skia_SkCMS_HSW_FLAGS -ffp-contract=off -mf16c -mavx2 ) set(Skia_SkCMS_SKX_FLAGS -ffp-contract=off -mavx512f -mavx512dq -mavx512cd -mavx512bw -mavx512vl ) if (WTF_CPU_X86 OR WTF_CPU_X86_64) target_compile_definitions(Skia PRIVATE SK_ENABLE_AVX512_OPTS) WEBKIT_CHECK_COMPILER_FLAGS(CXX Skia_SkCMS_HSW_OPTS ${Skia_SkCMS_HSW_FLAGS}) WEBKIT_CHECK_COMPILER_FLAGS(CXX Skia_SkCMS_SKX_OPTS ${Skia_SkCMS_SKX_FLAGS}) WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE src/opts/SkOpts_hsw.cpp "-march=haswell") WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE src/opts/SkOpts_skx.cpp "-march=skylake-avx512") endif () if (Skia_SkCMS_HSW_OPTS) WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE modules/skcms/src/skcms_TransformHsw.cc ${Skia_SkCMS_HSW_FLAGS}) else () target_compile_definitions(Skia PRIVATE SKCMS_DISABLE_HSW) endif () if (Skia_SkCMS_SKX_OPTS) WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE modules/skcms/src/skcms_TransformSkx.cc ${Skia_SkCMS_SKX_FLAGS}) else () target_compile_definitions(Skia PRIVATE SKCMS_DISABLE_SKX) endif () if (WTF_CPU_LOONGARCH64) # Work arounds for building with GCC (instead of Clang). # To work around https://github.com/llvm/llvm-project/issues/110834 # the GN system does not pass -fno-lax-vector-conversions to Clang on # LoongArch, unintentionally allowing the LASX optimized code to rely # on the relaxed vector conversion rule. See # https://skia-review.googlesource.com/c/skia/+/908137 for a proper fix # but work around it here for now. WEBKIT_ADD_TARGET_CXX_FLAGS(Skia "-flax-vector-conversions") # #pragma GCC target is only supported by GCC >= 15, thus the Skia code # base cannot use it for LoongArch if building with GCC. Pass a # command line option to work around. The GN building system does the # same. WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE src/core/SkBitmapProcState_opts_lasx.cpp -mlasx) WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE src/core/SkSwizzler_opts_lasx.cpp -mlasx) WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE src/core/SkBlitRow_opts_lasx.cpp -mlasx) WEBKIT_ADD_COMPILER_FLAGS(CXX SOURCE src/opts/SkOpts_lasx.cpp -mlasx) endif () add_library(Skia::Skia ALIAS Skia)