|  | # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | if (is_fuchsia) { | 
|  |  | 
|  | group("skia") { | 
|  | # TODO(abarth): Switch the non-Fuchsia build over to using Skia's BUILD.gn | 
|  | # files as well. | 
|  | public_deps = [ | 
|  | "//third_party/skia", | 
|  | "//third_party/skia:gpu", | 
|  | ] | 
|  | } | 
|  |  | 
|  | } else { | 
|  |  | 
|  | import("//build/config/features.gni") | 
|  | import("//testing/test.gni") | 
|  |  | 
|  | if (current_cpu == "arm" || current_cpu == "arm64") { | 
|  | import("//build/config/arm.gni") | 
|  | } | 
|  | if (current_cpu == "mipsel" || current_cpu == "mips64el") { | 
|  | import("//build/config/mips.gni") | 
|  | } | 
|  |  | 
|  | # The list of Skia core sources that are to be set for chromium. | 
|  | gypi_skia_core = | 
|  | exec_script("//build/gypi_to_gn.py", | 
|  | [ | 
|  | rebase_path("//third_party/skia/gyp/core.gypi"), | 
|  | "--replace=<(skia_include_path)=//third_party/skia/include", | 
|  | "--replace=<(skia_src_path)=//third_party/skia/src", | 
|  | ], | 
|  | "scope", | 
|  | [ "//third_party/skia/gyp/core.gypi" ]) | 
|  |  | 
|  | # The list of Skia gpu sources that are to be set for chromium. | 
|  | gypi_skia_gpu = | 
|  | exec_script("//build/gypi_to_gn.py", | 
|  | [ | 
|  | rebase_path("//third_party/skia/gyp/gpu.gypi"), | 
|  | "--replace=<(skia_include_path)=//third_party/skia/include", | 
|  | "--replace=<(skia_src_path)=//third_party/skia/src", | 
|  | ], | 
|  | "scope", | 
|  | [ "//third_party/skia/gyp/gpu.gypi" ]) | 
|  |  | 
|  | # The list of Skia effects that are to be set for chromium. | 
|  | gypi_skia_effects = | 
|  | exec_script("//build/gypi_to_gn.py", | 
|  | [ | 
|  | rebase_path("//third_party/skia/gyp/effects.gypi"), | 
|  | "--replace=<(skia_include_path)=//third_party/skia/include", | 
|  | "--replace=<(skia_src_path)=//third_party/skia/src", | 
|  | ], | 
|  | "scope", | 
|  | [ "//third_party/skia/gyp/effects.gypi" ]) | 
|  |  | 
|  | gypi_skia_sources = | 
|  | exec_script("//build/gypi_to_gn.py", | 
|  | [ | 
|  | rebase_path("//third_party/skia/gyp/skia_sources.gypi"), | 
|  | "--replace=..=//third_party/skia", | 
|  | ], | 
|  | "scope", | 
|  | [ "//third_party/skia/gyp/skia_sources.gypi" ]) | 
|  |  | 
|  | gypi_skia_opts = | 
|  | exec_script("//build/gypi_to_gn.py", | 
|  | [ | 
|  | rebase_path("//third_party/skia/gyp/opts.gypi"), | 
|  | "--replace=<(skia_include_path)=//third_party/skia/include", | 
|  | "--replace=<(skia_src_path)=//third_party/skia/src", | 
|  | ], | 
|  | "scope", | 
|  | [ "//third_party/skia/gyp/opts.gypi" ]) | 
|  |  | 
|  | # External-facing config for dependent code. | 
|  | config("skia_config") { | 
|  | include_dirs = [ | 
|  | "//third_party/skia/include/c", | 
|  | "//third_party/skia/include/client/android", | 
|  | "//third_party/skia/include/core", | 
|  | "//third_party/skia/include/effects", | 
|  | "//third_party/skia/include/gpu", | 
|  | "//third_party/skia/include/images", | 
|  | "//third_party/skia/include/lazy", | 
|  | "//third_party/skia/include/pathops", | 
|  | "//third_party/skia/include/pdf", | 
|  | "//third_party/skia/include/pipe", | 
|  | "//third_party/skia/include/ports", | 
|  | "//third_party/skia/include/utils", | 
|  | "config", | 
|  | "ext", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # Internal-facing config for Skia library code. | 
|  | config("skia_library_config") { | 
|  | include_dirs = [ | 
|  | "config", | 
|  | "//third_party/skia/include/private", | 
|  | "//third_party/skia/include/codec", | 
|  | "//third_party/skia/src/codec", | 
|  | "//third_party/skia/src/core", | 
|  | "//third_party/skia/src/image", | 
|  | "//third_party/skia/src/lazy", | 
|  | "//third_party/skia/src/opts", | 
|  | "//third_party/skia/src/pdf", | 
|  | "//third_party/skia/src/ports", | 
|  | "//third_party/skia/src/sfnt", | 
|  | "//third_party/skia/src/utils", | 
|  | "//third_party/skia/src/gpu", | 
|  | ] | 
|  |  | 
|  | include_dirs += gypi_skia_sources.sksl_include_dirs | 
|  |  | 
|  | if (is_mac || is_ios) { | 
|  | include_dirs += [ "//third_party/skia/include/utils/mac" ] | 
|  | } | 
|  |  | 
|  | if (is_mac) { | 
|  | include_dirs += [ "//third_party/skia/include/utils/ios" ] | 
|  | } | 
|  |  | 
|  | defines = [ "SK_SUPPORT_GPU=1" ] | 
|  |  | 
|  | # Supported codecs. | 
|  | defines += [ | 
|  | "SK_HAS_JPEG_LIBRARY", | 
|  | "SK_HAS_PNG_LIBRARY", | 
|  | ] | 
|  |  | 
|  | if (is_mac) { | 
|  | defines += [ "SK_BUILD_FOR_MAC" ] | 
|  | } | 
|  |  | 
|  | if (is_ios) { | 
|  | defines += [ "SK_BUILD_FOR_IOS" ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | defines += [ "SK_BUILD_FOR_ANDROID" ] | 
|  | } | 
|  |  | 
|  | if (component_mode == "shared_library") { | 
|  | defines += [ | 
|  | "SKIA_IMPLEMENTATION=1", | 
|  | "SKIA_DLL", | 
|  | "GR_GL_IGNORE_ES3_MSAA=0", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (current_cpu == "arm") { | 
|  | if (arm_use_neon) { | 
|  | defines += [ "SK_ARM_HAS_NEON" ] | 
|  | } | 
|  | if (arm_optionally_use_neon) { | 
|  | defines += [ "SK_ARM_HAS_OPTIONAL_NEON" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (current_cpu == "arm64") { | 
|  | # All 64-bit ARM variants have NEON. | 
|  | defines += [ "SK_ARM_HAS_NEON" ] | 
|  | } | 
|  |  | 
|  | # Settings for text blitting, chosen to approximate the system browser. | 
|  | if (is_linux) { | 
|  | defines += [ | 
|  | "SK_GAMMA_EXPONENT=1.2", | 
|  | "SK_GAMMA_CONTRAST=0.2", | 
|  | "SK_HIGH_QUALITY_IS_LANCZOS", | 
|  | ] | 
|  | } else if (is_android) { | 
|  | defines += [ | 
|  | "SK_GAMMA_APPLY_TO_A8", | 
|  | "SK_GAMMA_EXPONENT=1.4", | 
|  | "SK_GAMMA_CONTRAST=0.0", | 
|  | ] | 
|  | } else if (is_win) { | 
|  | defines += [ | 
|  | "SK_GAMMA_SRGB", | 
|  | "SK_GAMMA_CONTRAST=0.5", | 
|  | "SK_HIGH_QUALITY_IS_LANCZOS", | 
|  | ] | 
|  | } else if (is_mac) { | 
|  | defines += [ | 
|  | "SK_GAMMA_SRGB", | 
|  | "SK_GAMMA_CONTRAST=0.0", | 
|  | "SK_HIGH_QUALITY_IS_LANCZOS", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | defines += [ | 
|  | # Android devices are typically more memory constrained, so default to a | 
|  | # smaller glyph cache (it may be overriden at runtime when the renderer | 
|  | # starts up, depending on the actual device memory). | 
|  | "SK_DEFAULT_FONT_CACHE_LIMIT=1048576",  # 1024 * 1024 | 
|  | ] | 
|  | } else { | 
|  | defines += [ "SK_DEFAULT_FONT_CACHE_LIMIT=20971520" ]  # 20 * 1024 * 1024 | 
|  | } | 
|  |  | 
|  | if (is_ios) { | 
|  | cflags = [ | 
|  | # Skia uses routines deprecated in iOS 7 and above | 
|  | "-Wno-deprecated-declarations", | 
|  | # Clang incorrectly defines this even though the crc32 instruction is | 
|  | # unavailable https://github.com/lionheart/openradar-mirror/issues/7653 | 
|  | "-U__ARM_FEATURE_CRC32", | 
|  | ] | 
|  |  | 
|  | libs = [ "ImageIO.framework" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | component("skia") { | 
|  | sources = [ | 
|  | # Chrome sources. | 
|  | "config/SkUserConfig.h", | 
|  | "ext/SkMemory_new_handler.cpp", | 
|  | "ext/event_tracer_impl.cc", | 
|  | "ext/event_tracer_impl.h", | 
|  | "ext/google_logging.cc", | 
|  | ] | 
|  |  | 
|  | # The skia gypi values are relative to the skia_dir, so we need to rebase. | 
|  | sources += gypi_skia_core.sources | 
|  | sources += gypi_skia_effects.sources | 
|  | sources += gypi_skia_sources.utils_sources | 
|  | sources += gypi_skia_sources.sksl_sources | 
|  |  | 
|  | sources += [ | 
|  | "//third_party/skia/src/codec/SkAndroidCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkBmpCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkBmpMaskCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkBmpRLECodec.cpp", | 
|  | "//third_party/skia/src/codec/SkBmpStandardCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkCodecImageGenerator.cpp", | 
|  | "//third_party/skia/src/codec/SkIcoCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkJpegCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkJpegDecoderMgr.cpp", | 
|  | "//third_party/skia/src/codec/SkJpegUtility.cpp", | 
|  | "//third_party/skia/src/codec/SkMaskSwizzler.cpp", | 
|  | "//third_party/skia/src/codec/SkMasks.cpp", | 
|  | "//third_party/skia/src/codec/SkPngCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkSampledCodec.cpp", | 
|  | "//third_party/skia/src/codec/SkSampler.cpp", | 
|  | "//third_party/skia/src/codec/SkSwizzler.cpp", | 
|  | "//third_party/skia/src/codec/SkWbmpCodec.cpp", | 
|  | "//third_party/skia/src/images/SkImageEncoder.cpp", | 
|  | "//third_party/skia/src/images/SkImageEncoder_Factory.cpp", | 
|  | "//third_party/skia/src/images/SkPNGImageEncoder.cpp", | 
|  |  | 
|  | "//third_party/skia/include/images/SkMovie.h", | 
|  | "//third_party/skia/include/ports/SkTypeface_win.h", | 
|  | "//third_party/skia/src/fonts/SkFontMgr_indirect.cpp", | 
|  | "//third_party/skia/src/fonts/SkRemotableFontMgr.cpp", | 
|  | "//third_party/skia/src/ports/SkDiscardableMemory_none.cpp", | 
|  | "//third_party/skia/src/ports/SkFontConfigInterface.cpp", | 
|  | "//third_party/skia/src/ports/SkFontConfigInterface_direct_factory.cpp", | 
|  | "//third_party/skia/src/ports/SkFontConfigInterface_direct.cpp", | 
|  | "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp", | 
|  | "//third_party/skia/src/ports/SkFontHost_FreeType_common.h", | 
|  | "//third_party/skia/src/ports/SkFontHost_FreeType.cpp", | 
|  | "//third_party/skia/src/ports/SkFontHost_mac.cpp", | 
|  | "//third_party/skia/src/ports/SkFontHost_win.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_android_factory.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_android_parser.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_android.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_FontConfigInterface.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_FontConfigInterface_factory.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkGlobalInitialization_default.cpp", | 
|  | "//third_party/skia/src/ports/SkImageGenerator_skia.cpp", | 
|  | "//third_party/skia/src/ports/SkOSFile_posix.cpp", | 
|  | "//third_party/skia/src/ports/SkOSFile_stdio.cpp", | 
|  | "//third_party/skia/src/ports/SkOSFile_win.cpp", | 
|  | "//third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkScalerContext_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkScalerContext_win_dw.h", | 
|  | "//third_party/skia/src/ports/SkTLS_pthread.cpp", | 
|  | "//third_party/skia/src/ports/SkTLS_win.cpp", | 
|  | "//third_party/skia/src/ports/SkTypeface_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkTypeface_win_dw.h", | 
|  | "//third_party/skia/src/sfnt/SkOTTable_name.cpp", | 
|  | "//third_party/skia/src/sfnt/SkOTTable_name.h", | 
|  | "//third_party/skia/src/sfnt/SkOTUtils.cpp", | 
|  | "//third_party/skia/src/sfnt/SkOTUtils.h", | 
|  |  | 
|  | #mac | 
|  | "//third_party/skia/src/utils/mac/SkStream_mac.cpp", | 
|  |  | 
|  | #testing | 
|  | "//third_party/skia/src/fonts/SkGScalerContext.cpp", | 
|  | "//third_party/skia/src/fonts/SkGScalerContext.h", | 
|  | ] | 
|  |  | 
|  | # This and skia_opts are really the same conceptual target so share headers. | 
|  | allow_circular_includes_from = [ ":skia_opts" ] | 
|  |  | 
|  | if (current_cpu == "arm") { | 
|  | sources += [ | 
|  | "//third_party/skia/src/core/SkUtilsArm.cpp", | 
|  | "//third_party/skia/src/core/SkUtilsArm.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # GPU | 
|  |  | 
|  | sources += gypi_skia_gpu.skgpu_sources | 
|  | sources += gypi_skia_gpu.skgpu_null_gl_sources | 
|  |  | 
|  | # Remove unused util files include in utils.gypi | 
|  | sources -= [ | 
|  | "//third_party/skia/src/utils/SkBoundaryPatch.cpp", | 
|  | "//third_party/skia/src/utils/SkCamera.cpp", | 
|  | "//third_party/skia/src/utils/SkCanvasStack.h", | 
|  | "//third_party/skia/src/utils/SkDumpCanvas.cpp", | 
|  | "//third_party/skia/src/utils/SkFloatUtils.h", | 
|  | "//third_party/skia/src/utils/SkFrontBufferedStream.cpp", | 
|  | "//third_party/skia/src/utils/SkInterpolator.cpp", | 
|  | "//third_party/skia/src/utils/SkLayer.cpp", | 
|  | "//third_party/skia/src/utils/SkMeshUtils.cpp", | 
|  | "//third_party/skia/src/utils/SkOSFile.cpp", | 
|  | "//third_party/skia/src/utils/SkParsePath.cpp", | 
|  |  | 
|  | #testing | 
|  | "//third_party/skia/src/fonts/SkGScalerContext.cpp", | 
|  | "//third_party/skia/src/fonts/SkGScalerContext.h", | 
|  | ] | 
|  |  | 
|  | if (is_ios || is_mac || is_android) { | 
|  | sources -= [ | 
|  | "//third_party/skia/src/gpu/gl/GrGLCreateNativeInterface_none.cpp" | 
|  | ] | 
|  |  | 
|  | set_sources_assignment_filter([]) | 
|  |  | 
|  | if (is_ios) { | 
|  | sources += [ | 
|  | "//third_party/skia/src/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp" | 
|  | ] | 
|  | } else if (is_mac) { | 
|  | sources += [ | 
|  | "//third_party/skia/src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp" | 
|  | ] | 
|  | } else if (is_android) { | 
|  | sources += [ | 
|  | "//third_party/skia/src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp" | 
|  | ] | 
|  | } | 
|  |  | 
|  | set_sources_assignment_filter(sources_assignment_filter) | 
|  | } | 
|  |  | 
|  | if (is_win) { | 
|  | sources -= [ | 
|  | # Keeping _win.cpp | 
|  | "//third_party/skia/src/utils/SkThreadUtils_pthread.cpp", | 
|  | "//third_party/skia/src/utils/SkThreadUtils_pthread_other.cpp", | 
|  | ] | 
|  | } else { | 
|  | sources -= [ | 
|  | # Keeping _pthread.cpp and _pthread_other.cpp. | 
|  | "//third_party/skia/src/utils/SkThreadUtils_win.cpp", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_ios) { | 
|  | set_sources_assignment_filter([]) | 
|  |  | 
|  | sources += [ | 
|  | "//third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp", | 
|  | "//third_party/skia/src/utils/mac/SkStream_mac.cpp", | 
|  | ] | 
|  |  | 
|  | set_sources_assignment_filter(sources_assignment_filter) | 
|  | } | 
|  |  | 
|  | # Fixup skia library sources. | 
|  | if (is_win) { | 
|  | sources -= [ | 
|  | "//third_party/skia/src/ports/SkOSFile_posix.cpp", | 
|  | "//third_party/skia/src/ports/SkTLS_pthread.cpp", | 
|  | ] | 
|  | } else { | 
|  | sources -= [ | 
|  | "//third_party/skia/src/ports/SkFontHost_win.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkOSFile_win.cpp", | 
|  | "//third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkScalerContext_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkScalerContext_win_dw.h", | 
|  | "//third_party/skia/src/ports/SkTLS_win.cpp", | 
|  | "//third_party/skia/src/ports/SkTypeface_win_dw.cpp", | 
|  | "//third_party/skia/src/ports/SkTypeface_win_dw.h", | 
|  | ] | 
|  | } | 
|  | if (!is_android) { | 
|  | sources -= [ | 
|  | "//third_party/skia/src/ports/SkFontMgr_android.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_android_factory.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_android_parser.cpp", | 
|  | ] | 
|  | } | 
|  | if (!is_mac && !is_ios) { | 
|  | sources -= [ "//third_party/skia/src/ports/SkFontHost_mac.cpp" ] | 
|  | } | 
|  |  | 
|  | if (!is_linux) { | 
|  | sources -= [ | 
|  | "//third_party/skia/src/ports/SkFontConfigInterface.cpp", | 
|  | "//third_party/skia/src/ports/SkFontConfigInterface_direct_factory.cpp", | 
|  | "//third_party/skia/src/ports/SkFontConfigInterface_direct.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_FontConfigInterface.cpp", | 
|  | "//third_party/skia/src/ports/SkFontMgr_FontConfigInterface_factory.cpp", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (!is_linux && !is_android) { | 
|  | sources -= [ | 
|  | "//third_party/skia/src/ports/SkFontHost_FreeType.cpp", | 
|  | "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_clang) { | 
|  | # Skia won't compile with some of the more strict clang warnings. | 
|  | # e.g. it does: | 
|  | #  SkASSERT(!"sk_out_of_memory"); | 
|  | configs -= [ "//build/config/clang:extra_warnings" ] | 
|  | } | 
|  |  | 
|  | configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | configs += [ | 
|  | ":skia_library_config", | 
|  | "//build/config/compiler:no_chromium_code", | 
|  | ] | 
|  | public_configs = [ ":skia_config" ] | 
|  |  | 
|  | deps = [ | 
|  | ":skia_opts", | 
|  | "//base", | 
|  | "//base/third_party/dynamic_annotations", | 
|  | "//third_party/zlib", | 
|  | "//third_party/libpng", | 
|  | "//third_party/libjpeg_turbo:libjpeg", | 
|  | ] | 
|  |  | 
|  | if (is_linux) { | 
|  | configs += [ | 
|  | "//build/config/linux:fontconfig", | 
|  | "//build/config/linux:freetype2", | 
|  | ] | 
|  | deps += [ "//third_party/icu:icuuc" ] | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | deps += [ | 
|  | "//third_party/expat", | 
|  | "//third_party/freetype-android:freetype", | 
|  | "//third_party/android_tools:cpu_features", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (is_android && !is_debug) { | 
|  | configs -= [ "//build/config/compiler:optimize" ] | 
|  | configs += [ "//build/config/compiler:optimize_max" ] | 
|  | } | 
|  |  | 
|  | if (is_linux) { | 
|  | deps += [ "//third_party/glfw" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | # Separated out so it can be compiled with different flags for SSE. | 
|  | source_set("skia_opts") { | 
|  | cflags = [] | 
|  | defines = [] | 
|  |  | 
|  | if (current_cpu == "x86" || current_cpu == "x64") { | 
|  | sources = gypi_skia_opts.sse2_sources + gypi_skia_opts.ssse3_sources + | 
|  | gypi_skia_opts.sse41_sources + gypi_skia_opts.sse42_sources + | 
|  | gypi_skia_opts.avx_sources | 
|  | cflags += [ "-msse4.1" ] | 
|  | } else if (current_cpu == "arm") { | 
|  | # The assembly uses the frame pointer register (r7 in Thumb/r11 in | 
|  | # ARM), the compiler doesn't like that. | 
|  | cflags += [ "-fomit-frame-pointer" ] | 
|  | if (arm_version >= 7 && (arm_use_neon || arm_optionally_use_neon)) { | 
|  | sources = gypi_skia_opts.armv7_sources | 
|  | if (arm_use_neon || arm_optionally_use_neon) { | 
|  | sources += gypi_skia_opts.neon_sources | 
|  |  | 
|  | # Root build config sets -mfpu=$arm_fpu, which we expect to be neon | 
|  | # when running this. | 
|  | if (!arm_use_neon) { | 
|  | configs -= [ "//build/config/compiler:compiler_arm_fpu" ] | 
|  | cflags += [ "-mfpu=neon" ] | 
|  | } | 
|  | } | 
|  | } else { | 
|  | sources = gypi_skia_opts.none_sources | 
|  | } | 
|  | } else if (current_cpu == "arm64") { | 
|  | sources = gypi_skia_opts.armv7_sources | 
|  | + gypi_skia_opts.neon_sources | 
|  | + gypi_skia_opts.crc32_sources | 
|  | } else if (current_cpu == "mipsel") { | 
|  | cflags += [ "-fomit-frame-pointer" ] | 
|  |  | 
|  | if (mips_dsp_rev >= 1) { | 
|  | sources = gypi_skia_opts.mips_dsp_sources | 
|  | } else { | 
|  | sources = gypi_skia_opts.none_sources | 
|  | } | 
|  | } else { | 
|  | assert(false, "Need to port cpu specific stuff from skia_library_opts.gyp") | 
|  | } | 
|  |  | 
|  | sources += gypi_skia_opts.hsw_sources | 
|  |  | 
|  | if (is_android && !is_debug) { | 
|  | configs -= [ "//build/config/compiler:optimize" ] | 
|  | configs += [ "//build/config/compiler:optimize_max" ] | 
|  | } | 
|  |  | 
|  | configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | configs += [ | 
|  | ":skia_config", | 
|  | ":skia_library_config", | 
|  | "//build/config/compiler:no_chromium_code", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "//base", | 
|  | ] | 
|  |  | 
|  | visibility = [ ":skia" ] | 
|  | } | 
|  |  | 
|  | }  # if (is_fuchsia) |