| # Copyright 2013 The Flutter Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| _skia_root = "//flutter/third_party/skia" |
| |
| import("$_skia_root/gn/shared_sources.gni") |
| import("$_skia_root/gn/skia.gni") |
| import("$_skia_root/gn/toolchain/wasm.gni") |
| import("flutter_defines.gni") |
| |
| if (is_fuchsia) { |
| import("//build/fuchsia/sdk.gni") |
| } |
| |
| # Skia public API, generally provided by :skia. |
| config("skia_public") { |
| include_dirs = [ "$_skia_root" ] |
| |
| defines = [] |
| cflags_objcc = [] |
| if (is_fuchsia || is_linux) { |
| defines += [ "SK_R32_SHIFT=16" ] |
| } |
| if (skia_enable_flutter_defines) { |
| defines += flutter_defines |
| } |
| |
| # TODO(zra): Try using this. |
| if (skia_enable_optimize_size) { |
| defines += [ |
| "SK_ENABLE_OPTIMIZE_SIZE", |
| "SK_FORCE_AAA", |
| ] |
| } |
| if (skia_enable_precompile) { |
| defines += [ "SK_ENABLE_PRECOMPILE" ] |
| } |
| if (is_wasm) { |
| defines += wasm_defines |
| } |
| if (skia_gl_standard == "gles") { |
| defines += [ "SK_ASSUME_GL_ES=1" ] |
| } else if (skia_gl_standard == "gl") { |
| defines += [ "SK_ASSUME_GL=1" ] |
| } else if (skia_gl_standard == "webgl") { |
| defines += [ |
| "SK_ASSUME_WEBGL=1", |
| "SK_USE_WEBGL", |
| ] |
| } |
| if (skia_enable_ganesh) { |
| defines += [ "SK_GANESH" ] |
| } |
| |
| # TODO(zra): Try turning this off. |
| if (skia_use_perfetto) { |
| defines += [ "SK_USE_PERFETTO" ] |
| } |
| |
| # Some older versions of the Clang toolchain change the visibility of |
| # symbols decorated with API_AVAILABLE macro to be visible. Users of such |
| # toolchains suppress the use of this macro till toolchain updates are made. |
| if (is_mac || is_ios) { |
| cflags_objcc += [ "-Wno-unguarded-availability" ] |
| } |
| } |
| |
| # Skia internal APIs, used by Skia itself and a few test tools. |
| config("skia_private") { |
| visibility = [ "./*" ] |
| |
| defines = [ "SK_GAMMA_APPLY_TO_A8" ] |
| if (skia_use_fixed_gamma_text) { |
| defines += [ |
| "SK_GAMMA_EXPONENT=1.4", |
| "SK_GAMMA_CONTRAST=0.0", |
| ] |
| } |
| libs = [] |
| lib_dirs = [] |
| if (skia_use_vma) { |
| defines += [ "SK_USE_VMA" ] |
| } |
| } |
| |
| # Any code that's linked into Skia-the-library should use this config |
| # via += skia_library_configs. |
| config("skia_library") { |
| visibility = [ "./*" ] |
| defines = [ "SKIA_IMPLEMENTATION=1" ] |
| } |
| |
| skia_library_configs = [ |
| ":skia_public", |
| ":skia_private", |
| ":skia_library", |
| ] |
| |
| # Use for CPU-specific Skia code that needs particular compiler flags. |
| template("opts") { |
| if (invoker.enabled) { |
| skia_source_set(target_name) { |
| visibility = [ ":*" ] |
| check_includes = false |
| configs = skia_library_configs |
| forward_variables_from(invoker, "*") |
| if (defined(invoker.configs)) { |
| configs += invoker.configs |
| } |
| } |
| } else { |
| # If not enabled, a phony empty target that swallows all otherwise unused |
| # variables. |
| skia_source_set(target_name) { |
| visibility = [ ":*" ] |
| check_includes = false |
| forward_variables_from(invoker, |
| "*", |
| [ |
| "sources", |
| "cflags", |
| ]) |
| } |
| } |
| } |
| |
| is_x86 = current_cpu == "x64" || current_cpu == "x86" |
| |
| opts("hsw") { |
| enabled = is_x86 |
| sources = skia_opts.hsw_sources |
| if (is_win) { |
| cflags = [ "/arch:AVX2" ] |
| } else { |
| cflags = [ "-march=haswell" ] |
| } |
| } |
| |
| # Any feature of Skia that requires third-party code should be optional and use |
| # this template. |
| template("optional") { |
| if (invoker.enabled) { |
| config(target_name + "_public") { |
| if (defined(invoker.public_defines)) { |
| defines = invoker.public_defines |
| } |
| if (defined(invoker.public_configs)) { |
| configs = invoker.public_configs |
| } |
| if (defined(invoker.public_include_dirs)) { |
| include_dirs = invoker.public_include_dirs |
| } |
| } |
| skia_source_set(target_name) { |
| visibility = [ ":*" ] |
| |
| # Opted out of check_includes, due to (logically) being part of skia. |
| check_includes = false |
| configs = skia_library_configs |
| |
| # "*" clobbers the current scope; append to existing configs |
| forward_variables_from(invoker, |
| "*", |
| [ |
| "configs", |
| "public_defines", |
| "sources_for_tests", |
| "sources_when_disabled", |
| ]) |
| if (defined(invoker.configs)) { |
| configs += invoker.configs |
| } |
| all_dependent_configs = [ ":" + target_name + "_public" ] |
| } |
| } else { |
| skia_source_set(target_name) { |
| visibility = [ ":*" ] |
| configs = skia_library_configs |
| |
| # "*" clobbers the current scope; append to existing configs |
| forward_variables_from(invoker, |
| "*", |
| [ |
| "configs", |
| "public", |
| "public_defines", |
| "public_deps", |
| "deps", |
| "libs", |
| "frameworks", |
| "sources", |
| "sources_for_tests", |
| "sources_when_disabled", |
| ]) |
| if (defined(invoker.configs)) { |
| configs += invoker.configs |
| } |
| if (defined(invoker.sources_when_disabled)) { |
| sources = invoker.sources_when_disabled |
| } |
| } |
| if (defined(invoker.sources_for_tests)) { |
| skia_source_set(target_name + "_tests") { |
| visibility = [ ":*" ] |
| } |
| } |
| } |
| } |
| |
| optional("fontmgr_android") { |
| enabled = skia_enable_fontmgr_android |
| public_defines = [ "SK_FONTMGR_ANDROID_AVAILABLE" ] |
| |
| deps = [ |
| ":typeface_freetype", |
| "//flutter/third_party/expat", |
| ] |
| public = [ "$_skia_root/include/ports/SkFontMgr_android.h" ] |
| sources = [ |
| "$_skia_root/src/ports/SkFontMgr_android.cpp", |
| "$_skia_root/src/ports/SkFontMgr_android_parser.cpp", |
| "$_skia_root/src/ports/SkFontMgr_android_parser.h", |
| ] |
| } |
| |
| optional("fontmgr_custom") { |
| enabled = |
| skia_enable_fontmgr_custom_directory || |
| skia_enable_fontmgr_custom_embedded || skia_enable_fontmgr_custom_empty |
| |
| deps = [ ":typeface_freetype" ] |
| public = [ "$_skia_root/src/ports/SkFontMgr_custom.h" ] |
| sources = [ "$_skia_root/src/ports/SkFontMgr_custom.cpp" ] |
| } |
| |
| optional("fontmgr_custom_directory") { |
| enabled = skia_enable_fontmgr_custom_directory |
| public_defines = [ "SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE" ] |
| deps = [ |
| ":fontmgr_custom", |
| ":typeface_freetype", |
| ] |
| public = [ "$_skia_root/include/ports/SkFontMgr_directory.h" ] |
| sources = [ "$_skia_root/src/ports/SkFontMgr_custom_directory.cpp" ] |
| } |
| |
| optional("fontmgr_custom_embedded") { |
| enabled = skia_enable_fontmgr_custom_embedded |
| public_defines = [ "SK_FONTMGR_FREETYPE_EMBEDDED_AVAILABLE" ] |
| |
| deps = [ |
| ":fontmgr_custom", |
| ":typeface_freetype", |
| ] |
| sources = [ "$_skia_root/src/ports/SkFontMgr_custom_embedded.cpp" ] |
| } |
| |
| optional("fontmgr_custom_empty") { |
| enabled = skia_enable_fontmgr_custom_empty |
| public_defines = [ "SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE" ] |
| |
| deps = [ |
| ":fontmgr_custom", |
| ":typeface_freetype", |
| ] |
| public = [ "$_skia_root/include/ports/SkFontMgr_empty.h" ] |
| sources = [ "$_skia_root/src/ports/SkFontMgr_custom_empty.cpp" ] |
| } |
| |
| optional("fontmgr_fontconfig") { |
| enabled = skia_enable_fontmgr_fontconfig |
| public_defines = [ "SK_FONTMGR_FONTCONFIG_AVAILABLE" ] |
| |
| # The public header includes fontconfig.h and uses FcConfig* |
| public_deps = [ "//third_party:fontconfig" ] |
| public = [ "$_skia_root/include/ports/SkFontMgr_fontconfig.h" ] |
| deps = [ ":typeface_freetype" ] |
| sources = [ "$_skia_root/src/ports/SkFontMgr_fontconfig.cpp" ] |
| } |
| |
| optional("fontmgr_fuchsia") { |
| enabled = skia_enable_fontmgr_fuchsia |
| public_defines = [ "SK_FONTMGR_FUCHSIA_AVAILABLE" ] |
| |
| deps = [] |
| |
| if (is_fuchsia && using_fuchsia_sdk) { |
| deps += [ "//build/fuchsia/fidl:fuchsia.fonts" ] |
| } else { |
| deps = [ "//sdk/fidl/fuchsia.fonts" ] |
| } |
| public = [ "$_skia_root/src/ports/SkFontMgr_fuchsia.h" ] |
| sources = [ "$_skia_root/src/ports/SkFontMgr_fuchsia.cpp" ] |
| } |
| |
| optional("fontmgr_mac_ct") { |
| enabled = skia_use_fonthost_mac |
| |
| public_defines = [ |
| "SK_TYPEFACE_FACTORY_CORETEXT", |
| "SK_FONTMGR_CORETEXT_AVAILABLE", |
| ] |
| public = [ |
| "$_skia_root/include/ports/SkFontMgr_mac_ct.h", |
| "$_skia_root/include/ports/SkTypeface_mac.h", |
| ] |
| sources = [ |
| "$_skia_root/src/ports/SkFontMgr_mac_ct.cpp", |
| "$_skia_root/src/ports/SkScalerContext_mac_ct.cpp", |
| "$_skia_root/src/ports/SkScalerContext_mac_ct.h", |
| "$_skia_root/src/ports/SkTypeface_mac_ct.cpp", |
| "$_skia_root/src/ports/SkTypeface_mac_ct.h", |
| ] |
| |
| if (is_mac) { |
| frameworks = [ |
| # AppKit symbols NSFontWeightXXX may be dlsym'ed. |
| "AppKit.framework", |
| "ApplicationServices.framework", |
| ] |
| } |
| |
| if (is_ios) { |
| frameworks = [ |
| "CoreFoundation.framework", |
| "CoreGraphics.framework", |
| "CoreText.framework", |
| |
| # UIKit symbols UIFontWeightXXX may be dlsym'ed. |
| "UIKit.framework", |
| ] |
| } |
| } |
| |
| optional("fontmgr_win") { |
| enabled = skia_enable_fontmgr_win |
| |
| public_defines = [ |
| "SK_TYPEFACE_FACTORY_DIRECTWRITE", |
| "SK_FONTMGR_DIRECTWRITE_AVAILABLE", |
| ] |
| public = [ "$_skia_root/include/ports/SkTypeface_win.h" ] |
| sources = [ |
| "$_skia_root/include/ports/SkFontMgr_indirect.h", |
| "$_skia_root/include/ports/SkRemotableFontMgr.h", |
| "$_skia_root/src/fonts/SkFontMgr_indirect.cpp", |
| "$_skia_root/src/ports/SkFontMgr_win_dw.cpp", |
| "$_skia_root/src/ports/SkScalerContext_win_dw.cpp", |
| "$_skia_root/src/ports/SkScalerContext_win_dw.h", |
| "$_skia_root/src/ports/SkTypeface_win_dw.cpp", |
| "$_skia_root/src/ports/SkTypeface_win_dw.h", |
| ] |
| if (skia_dwritecore_sdk != "") { |
| defines = [ "DWRITE_CORE" ] |
| if (is_win && is_clang) { |
| # Clang complains about these headers, so mark them as system. These |
| # headers are hiding SDK headers of the same name, which are also |
| # included as system headers, so these need to go first in the cflags |
| # "includes" before the SDK. gn appends configs in the order listed, |
| # so these flags will be first. |
| cflags = [ |
| "-imsvc", |
| "${skia_dwritecore_sdk}/include", |
| ] |
| } else { |
| include_dirs = [ "${skia_dwritecore_sdk}/include" ] |
| } |
| } |
| } |
| |
| optional("gpu_shared") { |
| enabled = skia_enable_ganesh |
| |
| deps = [] |
| libs = [] |
| public_defines = [] |
| public_deps = [] |
| frameworks = [] |
| |
| sources = skia_shared_gpu_sources + skia_sksl_gpu_sources |
| |
| if (skia_use_vulkan) { |
| public_defines += [ "SK_VULKAN" ] |
| sources += skia_shared_vk_sources |
| if (skia_enable_vulkan_debug_layers) { |
| public_defines += [ "SK_ENABLE_VK_LAYERS" ] |
| } |
| if (skia_use_vma) { |
| public_deps += [ "$_skia_root/src/gpu/vk/vulkanmemoryallocator" ] |
| } |
| } |
| |
| if (skia_use_metal) { |
| public_defines += [ "SK_METAL" ] |
| sources += skia_shared_mtl_sources |
| } |
| } |
| |
| optional("gpu") { |
| enabled = skia_enable_ganesh |
| deps = [ ":gpu_shared" ] |
| public_defines = [] |
| public_configs = [] |
| public_deps = [] |
| |
| public = skia_gpu_public |
| sources = skia_ganesh_private |
| |
| libs = [] |
| frameworks = [] |
| |
| if (is_android) { |
| sources += skia_gpu_android_private |
| } |
| |
| if (skia_use_gl) { |
| public_defines += [ "SK_GL" ] |
| if (is_android) { |
| sources += [ |
| "$_skia_root/src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", |
| "$_skia_root/src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", |
| ] |
| sources += skia_android_gl_sources |
| |
| # this lib is required to link against AHardwareBuffer |
| if (defined(ndk_api) && ndk_api >= 26) { |
| libs += [ "android" ] |
| } |
| } else if (skia_use_webgl) { |
| sources += [ |
| "$_skia_root/src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp", |
| ] |
| } else if (is_linux && skia_use_x11) { |
| sources += [ |
| "$_skia_root/src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp", |
| "$_skia_root/src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp", |
| ] |
| libs += [ "GL" ] |
| } else if (is_win) { |
| sources += [ |
| "$_skia_root/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp", |
| ] |
| if (target_cpu != "arm64") { |
| libs += [ "OpenGL32.lib" ] |
| } |
| } else { |
| sources += |
| [ "$_skia_root/src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp" ] |
| } |
| public += skia_gpu_gl_public |
| sources += skia_gpu_gl_private |
| } |
| |
| if (skia_use_vulkan) { |
| public += skia_gpu_vk_public |
| sources += skia_gpu_vk_private |
| if (is_fuchsia) { |
| if (using_fuchsia_sdk) { |
| public_deps += [ "$fuchsia_sdk_root/pkg:vulkan" ] |
| } else { |
| public_deps += [ "$_skia_root/src/graphics/lib/vulkan" ] |
| } |
| } |
| if (is_android) { |
| sources += skia_gpu_vk_android_private |
| } |
| } |
| |
| if (is_android && (skia_use_gl || skia_use_vulkan)) { |
| # this lib is required to link against AHardwareBuffer |
| if (defined(ndk_api) && ndk_api >= 26) { |
| libs += [ "android" ] |
| } |
| } |
| |
| cflags_objcc = [] |
| if (skia_use_metal) { |
| public_defines += [ "SK_METAL" ] |
| public += skia_gpu_metal_public |
| sources += skia_gpu_metal_private |
| sources += skia_gpu_metal_cpp |
| frameworks += [ "Metal.framework" ] |
| frameworks += [ "Foundation.framework" ] |
| if (is_ios) { |
| frameworks += [ "UIKit.framework" ] |
| } |
| cflags_objcc += [ "-fobjc-arc" ] |
| } |
| |
| if (is_debug) { |
| public_defines += [ "SK_ENABLE_DUMP_GPU" ] |
| } |
| } |
| |
| optional("jpeg_decode") { |
| enabled = skia_use_libjpeg_turbo_decode |
| public_defines = [ "SK_CODEC_DECODES_JPEG" ] |
| |
| deps = [ "//flutter/third_party/libjpeg-turbo:libjpeg" ] |
| sources = [ |
| "$_skia_root/src/codec/SkJpegCodec.cpp", |
| "$_skia_root/src/codec/SkJpegDecoderMgr.cpp", |
| "$_skia_root/src/codec/SkJpegSourceMgr.cpp", |
| "$_skia_root/src/codec/SkJpegUtility.cpp", |
| ] |
| } |
| |
| optional("jpeg_encode") { |
| enabled = skia_use_libjpeg_turbo_encode && !skia_use_ndk_images |
| |
| deps = [ "//flutter/third_party/libjpeg-turbo:libjpeg" ] |
| public = skia_encode_jpeg_public |
| sources = skia_encode_jpeg_srcs |
| } |
| |
| optional("ndk_images") { |
| enabled = skia_use_ndk_images |
| public_defines = [ "SK_ENABLE_NDK_IMAGES" ] |
| sources = [ |
| "$_skia_root/src/ports/SkImageEncoder_NDK.cpp", |
| "$_skia_root/src/ports/SkImageGeneratorNDK.cpp", |
| "$_skia_root/src/ports/SkNDKConversions.cpp", |
| ] |
| libs = [ "jnigraphics" ] |
| } |
| |
| optional("xps") { |
| enabled = skia_use_xps && is_win |
| public_defines = [ "SK_SUPPORT_XPS" ] |
| public = skia_xps_public |
| sources = skia_xps_sources |
| } |
| |
| optional("png_decode") { |
| enabled = skia_use_libpng_decode |
| public_defines = [ "SK_CODEC_DECODES_PNG" ] |
| |
| deps = [ "//third_party/libpng" ] |
| sources = [ |
| "$_skia_root/src/codec/SkIcoCodec.cpp", |
| "$_skia_root/src/codec/SkPngCodec.cpp", |
| ] |
| } |
| |
| optional("png_encode") { |
| enabled = skia_use_libpng_encode && !skia_use_ndk_images |
| public = skia_encode_png_public |
| |
| deps = [ "//third_party/libpng" ] |
| sources = skia_encode_png_srcs |
| } |
| |
| optional("typeface_freetype") { |
| enabled = skia_use_freetype |
| |
| public_defines = [ "SK_TYPEFACE_FACTORY_FREETYPE" ] |
| deps = [ "//third_party/freetype2" ] |
| sources = [ |
| "$_skia_root/src/ports/SkFontHost_FreeType.cpp", |
| "$_skia_root/src/ports/SkFontHost_FreeType_common.cpp", |
| "$_skia_root/src/ports/SkFontHost_FreeType_common.h", |
| ] |
| } |
| |
| optional("webp_decode") { |
| enabled = skia_use_libwebp_decode |
| public_defines = [ "SK_CODEC_DECODES_WEBP" ] |
| |
| deps = [ "//flutter/third_party/libwebp" ] |
| sources = [ "$_skia_root/src/codec/SkWebpCodec.cpp" ] |
| } |
| |
| optional("webp_encode") { |
| enabled = skia_use_libwebp_encode && !skia_use_ndk_images |
| public = skia_encode_webp_public |
| |
| deps = [ "//flutter/third_party/libwebp" ] |
| sources = skia_encode_webp_srcs |
| } |
| |
| optional("wuffs") { |
| enabled = skia_use_wuffs |
| public_defines = [ "SK_HAS_WUFFS_LIBRARY" ] |
| |
| deps = [ "//flutter/third_party/wuffs" ] |
| sources = [ "$_skia_root/src/codec/SkWuffsCodec.cpp" ] |
| } |
| |
| optional("xml") { |
| enabled = skia_use_expat || skia_use_jpeg_gainmaps |
| public_defines = [ "SK_XML" ] |
| |
| deps = [ "//flutter/third_party/expat" ] |
| sources = skia_xml_sources + skia_codec_xmp + [ |
| "$_skia_root/src/svg/SkSVGCanvas.cpp", |
| "$_skia_root/src/svg/SkSVGDevice.cpp", |
| ] |
| } |
| |
| import("$_skia_root/gn/codec.gni") |
| |
| skia_component("skia") { |
| public_configs = [ ":skia_public" ] |
| configs = skia_library_configs |
| |
| # Opted out of check_includes, due to (logically) being part of skia. |
| check_includes = false |
| |
| public_deps = [ |
| ":fontmgr_android", |
| ":fontmgr_custom_directory", |
| ":fontmgr_custom_embedded", |
| ":fontmgr_custom_empty", |
| ":fontmgr_fontconfig", |
| ":fontmgr_fuchsia", |
| ":fontmgr_mac_ct", |
| ":fontmgr_win", |
| ":gpu", |
| ":jpeg_encode", |
| ":png_encode", |
| ":webp_encode", |
| ":xps", |
| ] |
| |
| deps = [ |
| ":hsw", |
| ":jpeg_decode", |
| ":ndk_images", |
| ":png_decode", |
| ":webp_decode", |
| ":wuffs", |
| ":xml", |
| "modules/skcms", |
| ] |
| |
| public = skia_core_public |
| public += skia_codec_public |
| public += skia_utils_public |
| public += skia_effects_public |
| public += skia_effects_imagefilter_public |
| |
| sources = [] |
| sources += skia_core_sources |
| sources += skia_utils_private |
| sources += skia_utils_chromium |
| sources += skia_effects_sources |
| sources += skia_colorfilters_sources |
| sources += skia_effects_imagefilter_sources |
| sources += skia_codec_core |
| sources += skia_codec_decode_bmp |
| sources += skia_encode_srcs |
| sources += skia_sksl_sources |
| sources += [ |
| "$_skia_root/src/android/SkAndroidFrameworkUtils.cpp", |
| "$_skia_root/src/android/SkAnimatedImage.cpp", |
| "$_skia_root/src/codec/SkAndroidCodec.cpp", |
| "$_skia_root/src/codec/SkAndroidCodecAdapter.cpp", |
| "$_skia_root/src/codec/SkEncodedInfo.cpp", |
| "$_skia_root/src/codec/SkParseEncodedOrigin.cpp", |
| "$_skia_root/src/codec/SkSampledCodec.cpp", |
| "$_skia_root/src/ports/SkDiscardableMemory_none.cpp", |
| "$_skia_root/src/ports/SkGlobalInitialization_default.cpp", |
| "$_skia_root/src/ports/SkMemory_malloc.cpp", |
| "$_skia_root/src/ports/SkOSFile_stdio.cpp", |
| "$_skia_root/src/sfnt/SkOTTable_name.cpp", |
| "$_skia_root/src/sfnt/SkOTUtils.cpp", |
| ] |
| |
| defines = [] |
| libs = [] |
| |
| if (skia_use_no_jpeg_encode) { |
| sources += skia_no_encode_jpeg_srcs |
| } |
| if (skia_use_no_png_encode) { |
| sources += skia_no_encode_png_srcs |
| } |
| if (skia_use_no_webp_encode) { |
| sources += skia_no_encode_webp_srcs |
| } |
| |
| if (is_win) { |
| sources += [ |
| "$_skia_root/src/ports/SkDebug_win.cpp", |
| "$_skia_root/src/ports/SkImageGeneratorWIC.cpp", |
| "$_skia_root/src/ports/SkOSFile_win.cpp", |
| "$_skia_root/src/ports/SkOSLibrary_win.cpp", |
| ] |
| libs += [ |
| "Ole32.lib", |
| "OleAut32.lib", |
| ] |
| |
| if (!skia_enable_winuwp) { |
| libs += [ |
| "FontSub.lib", |
| "User32.lib", |
| "Usp10.lib", |
| ] |
| } |
| } else { |
| sources += [ |
| "$_skia_root/src/ports/SkOSFile_posix.cpp", |
| "$_skia_root/src/ports/SkOSLibrary_posix.cpp", |
| ] |
| libs += [ "dl" ] |
| } |
| |
| if (is_android) { |
| deps += [ "//flutter/third_party/expat" ] |
| sources += [ "$_skia_root/src/ports/SkDebug_android.cpp" ] |
| libs += [ |
| "EGL", |
| "GLESv2", |
| "log", |
| ] |
| } |
| |
| if (is_linux || is_wasm) { |
| sources += [ "$_skia_root/src/ports/SkDebug_stdio.cpp" ] |
| if (skia_use_egl) { |
| libs += [ "GLESv2" ] |
| } |
| } |
| |
| if (is_mac) { |
| public += [ "$_skia_root/include/ports/SkCFObject.h" ] |
| sources += [ |
| "$_skia_root/src/ports/SkDebug_stdio.cpp", |
| "$_skia_root/src/ports/SkImageGeneratorCG.cpp", |
| ] |
| frameworks = [ |
| "ApplicationServices.framework", |
| "OpenGL.framework", |
| ] |
| } |
| |
| if (is_ios) { |
| public += [ "$_skia_root/include/ports/SkCFObject.h" ] |
| sources += [ |
| "$_skia_root/src/ports/SkDebug_stdio.cpp", |
| "$_skia_root/src/ports/SkImageGeneratorCG.cpp", |
| ] |
| frameworks = [ |
| "CoreFoundation.framework", |
| "ImageIO.framework", |
| "MobileCoreServices.framework", |
| ] |
| } |
| |
| if (is_fuchsia) { |
| sources += [ "$_skia_root/src/ports/SkDebug_stdio.cpp" ] |
| } |
| } |