Reason for revert:
gclient not happy on some bots
Original issue's description:
> GN
>
> What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia, zlib, libpng, and libjpeg-turbo. I've been hopping back and forth between Linux at work and Mac at home. These seem to be at least partially working, enough to build and run cmake/example.cpp.
>
> The xcode backend seems to work. From here, we can start exploring how to handle other backends (cmake,Android make, Google3). There are a couple things I want to try:
> - add another backend like vs or xcode to GN directly
> - intercept via a custom toolchain
> - reverse from ninja -t commands
> That last option seems kind of fun.
>
> This tries to piggyback on Chrome's GN setup as much as possible. Chrome's got quite a lot figured out, and we're basically required to do this if we want to have a single GN build system shareable by Chrome, our bots, and other clients.
>
> This pulls in some new DEPS:
> - build: Chrome's GN configuration, and much more
> - buildtools: hashes for gn binary, pulled via hooks
> - tools/clang: hashes for Chrome's clang, pulled via hooks into third_party/llvm-build
> It additionally symlinks tools/gyp to third_party/externals/gyp. GN pulls some stuff from tools/gyp on Mac.
>
> Have not yet tried building for Windows, Android, or iOS.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=
2087593002
>
> Committed: https://skia.googlesource.com/skia/+/
1d8de594f126b9a80bd8f8fa2005e90faf3b5b17
TBR=bsalomon@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/
2088253002
tools/skp/page_sets/data/*.json
tools/skp/page_sets/data/*.wpr
xcodebuild
-
-build
-buildtools
-tools/clang
-third_party/llvm-build
+++ /dev/null
-buildconfig = "//build/config/BUILDCONFIG.gn"
+++ /dev/null
-# Copyright 2016 Google Inc.
-#
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("build/config/linux/pkg_config.gni")
-
-declare_args() {
-}
-
-# Skia public API, generally provided by :skia.
-config("skia_public") {
- include_dirs = [
- "include/c",
- "include/config",
- "include/core",
- "include/effects",
- "include/gpu",
- "include/images",
- "include/lazy",
- "include/pathops",
- "include/ports",
- "include/utils",
- "include/utils/mac",
- ]
- defines = [ "SKIA_DLL" ]
-}
-
-# Skia internal APIs, used by Skia itself and a few test tools.
-config("skia_private") {
- visibility = [ ":*" ]
-
- include_dirs = [
- "include/private",
- "src/c",
- "src/config",
- "src/core",
- "src/effects",
- "src/gpu",
- "src/image",
- "src/images",
- "src/lazy",
- "src/opts",
- "src/pathops",
- "src/ports",
- "src/sfnt",
- "src/utils",
- "third_party/etc1",
- "third_party/ktx",
- ]
-}
-
-# Any code that's linked into Skia-the-library should use this config via += skia_library_configs.
-config("skia_library") {
- visibility = [ ":*" ]
-
- cflags = [
- "-Winit-self",
- "-Wpointer-arith",
- "-Wsign-compare",
- "-Wvla",
- "-fstrict-aliasing",
- ]
- cflags_cc = [ "-Wnon-virtual-dtor" ]
-
- defines = [ "SKIA_IMPLEMENTATION=1" ]
-}
-
-skia_library_configs = [
- ":skia_public",
- ":skia_private",
- ":skia_library",
-]
-
-# Chrome's GN environment is mostly helpful, but a couple default configs tend to get in the way.
-unwanted_configs = [
- "//build/config/clang:find_bad_constructs", # Chrome style checks.
- "//build/config:feature_flags", # A bunch of #defines we don't care about.
-]
-
-core_gypi = exec_script("build/gypi_to_gn.py",
- [
- rebase_path("gyp/core.gypi"),
- "--replace=<(skia_include_path)=include",
- "--replace=<(skia_src_path)=src",
- ],
- "scope",
- [ "gyp/core.gypi" ])
-
-effects_gypi = exec_script("build/gypi_to_gn.py",
- [
- rebase_path("gyp/effects.gypi"),
- "--replace=<(skia_include_path)=include",
- "--replace=<(skia_src_path)=src",
- ],
- "scope",
- [ "gyp/effects.gypi" ])
-
-gpu_gypi = exec_script("build/gypi_to_gn.py",
- [
- rebase_path("gyp/gpu.gypi"),
- "--replace=<(skia_include_path)=include",
- "--replace=<(skia_src_path)=src",
- ],
- "scope",
- [ "gyp/gpu.gypi" ])
-
-opts_gypi = exec_script("build/gypi_to_gn.py",
- [
- rebase_path("gyp/opts.gypi"),
- "--replace=<(skia_include_path)=include",
- "--replace=<(skia_src_path)=src",
- ],
- "scope",
- [ "gyp/opts.gypi" ])
-
-pdf_gypi = exec_script("build/gypi_to_gn.py",
- [
- rebase_path("gyp/pdf.gypi"),
- "--replace=<(skia_include_path)=include",
- "--replace=<(skia_src_path)=src",
- ],
- "scope",
- [ "gyp/pdf.gypi" ])
-
-utils_gypi = exec_script("build/gypi_to_gn.py",
- [
- rebase_path("gyp/utils.gypi"),
- "--replace=<(skia_include_path)=include",
- "--replace=<(skia_src_path)=src",
- ],
- "scope",
- [ "gyp/utils.gypi" ])
-
-source_set("opts_ssse3") {
- configs += skia_library_configs
- configs -= unwanted_configs
-
- sources = opts_gypi.ssse3_sources
- cflags = [ "-mssse3" ]
-}
-
-source_set("opts_sse41") {
- configs += skia_library_configs
- configs -= unwanted_configs
-
- sources = opts_gypi.sse41_sources
- cflags = [ "-msse4.1" ]
-}
-
-component("skia") {
- public_configs = [ ":skia_public" ]
- configs += skia_library_configs
- configs -= unwanted_configs
-
- deps = [
- ":opts_sse41",
- ":opts_ssse3",
- "third_party:zlib",
- ]
-
- libs = []
-
- sources = []
- sources += core_gypi.sources
- sources += effects_gypi.sources
- sources += gpu_gypi.skgpu_sources
- sources += opts_gypi.sse2_sources
- sources += pdf_gypi.sources
- sources += utils_gypi.sources
- sources += [
- "src/images/SkImageEncoder.cpp",
- "src/images/SkImageEncoder_Factory.cpp",
- "src/ports/SkDiscardableMemory_none.cpp",
- "src/ports/SkGlobalInitialization_default.cpp",
- "src/ports/SkImageGenerator_none.cpp",
- "src/ports/SkMemory_malloc.cpp",
- "src/ports/SkOSFile_stdio.cpp",
- "src/sfnt/SkOTTable_name.cpp",
- "src/sfnt/SkOTUtils.cpp",
- "src/utils/mac/SkStream_mac.cpp",
- "third_party/etc1/etc1.cpp",
- "third_party/ktx/ktx.cpp",
- ]
-
- if (is_win) {
- sources += [
- "src/ports/SkDebug_win.cpp",
- "src/ports/SkFontHost_win.cpp",
- "src/ports/SkFontMgr_win_dw.cpp",
- "src/ports/SkFontMgr_win_dw_factory.cpp",
- "src/ports/SkImageEncoder_WIC.cpp",
- "src/ports/SkImageGeneratorWIC.cpp",
- "src/ports/SkOSFile_win.cpp",
- "src/ports/SkScalerContext_win_dw.cpp",
- "src/ports/SkTLS_win.cpp",
- "src/ports/SkTypeface_win_dw.cpp",
- ]
- } else {
- sources += [
- "src/ports/SkDebug_stdio.cpp",
- "src/ports/SkOSFile_posix.cpp",
- "src/ports/SkTLS_pthread.cpp",
- ]
- }
-
- if (is_linux) {
- deps += [
- ":fontconfig",
- ":freetype2",
- "third_party:libjpeg-turbo",
- "third_party:libpng",
- ]
- sources += [
- "src/fonts/SkFontMgr_fontconfig.cpp",
- "src/images/SkJPEGImageEncoder.cpp",
- "src/images/SkJPEGWriteUtility.cpp",
- "src/images/SkPNGImageEncoder.cpp",
- "src/ports/SkFontConfigInterface_direct.cpp",
- "src/ports/SkFontConfigInterface_direct_factory.cpp",
- "src/ports/SkFontHost_FreeType.cpp",
- "src/ports/SkFontHost_FreeType_common.cpp",
- "src/ports/SkFontHost_fontconfig.cpp",
- ]
- }
-
- if (is_mac) {
- sources += [
- "src/ports/SkFontHost_mac.cpp",
- "src/ports/SkImageEncoder_CG.cpp",
- "src/ports/SkImageGeneratorCG.cpp",
- ]
- libs += [ "ApplicationServices.framework" ]
- }
-}
-
-executable("example") {
- configs -= unwanted_configs
-
- sources = [
- "cmake/example.cpp",
- ]
- deps = [
- ":skia",
- ]
-
- libs = []
- if (is_mac) {
- libs += [ "OpenGL.framework" ]
- }
-}
-
-pkg_config("system_freetype2") {
- packages = [ "freetype2" ]
-}
-group("freetype2") {
- public_configs = [ ":system_freetype2" ]
-}
-
-pkg_config("system_fontconfig") {
- packages = [ "fontconfig" ]
-}
-group("fontconfig") {
- public_configs = [ ":system_fontconfig" ]
-}
# Dependencies on outside packages.
#
deps = {
- "build": "https://chromium.googlesource.com/chromium/src/build.git@54b609cc558d57003c7a7d657edcc25a3879bf78",
- "buildtools": "https://chromium.googlesource.com/chromium/buildtools.git@3780bc523aad1d68a5bd00e05c453a80b2ba0b35",
- "tools/clang": "https://chromium.googlesource.com/chromium/src/tools/clang.git@ea64c667cd841b2c3268bd7dfd223269f3ea23ba",
-
"common": "https://skia.googlesource.com/common.git@c282fe0b6e392b14f88d647cbd86e1a3ef5498e0",
# There is some duplication here that might be worth cleaning up:
}
recursedeps = [ "common" ]
-
-hooks = [
- # Download GN.
- {
- 'name': 'gn_win',
- 'action': [ 'download_from_google_storage',
- '--quiet',
- '--no_resume',
- '--platform=win32',
- '--no_auth',
- '--bucket', 'chromium-gn',
- '-s', 'buildtools/win/gn.exe.sha1',
- ],
- },
- {
- 'name': 'gn_mac',
- 'pattern': '.',
- 'action': [ 'download_from_google_storage',
- '--quiet',
- '--no_resume',
- '--platform=darwin',
- '--no_auth',
- '--bucket', 'chromium-gn',
- '-s', 'buildtools/mac/gn.sha1',
- ],
- },
- {
- 'name': 'gn_linux64',
- 'pattern': '.',
- 'action': [ 'download_from_google_storage',
- '--quiet',
- '--no_resume',
- '--platform=linux*',
- '--no_auth',
- '--bucket', 'chromium-gn',
- '-s', 'buildtools/linux64/gn.sha1',
- ],
- },
- # Download Clang.
- {
- 'name': 'clang',
- 'pattern': '.',
- 'action': [ 'python', 'tools/clang/scripts/update.py', '--if-needed' ],
- },
- # Download Linux sysroot.
- {
- 'name': 'sysroot',
- 'pattern': '.',
- 'action': [ 'python', 'build/linux/sysroot_scripts/install-sysroot.py', '--arch=amd64' ],
- },
-]
+++ /dev/null
-mac_sdk_min_build_override = "10.10"
-mac_deployment_target_build_override = "10.7"
-
+++ /dev/null
-# Copyright 2016 Google Inc.
-#
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-declare_args() {
-}
-
-# Most third_party code should disable warnings: if we don't maintain the code, warnings are noise.
-config("no_warnings") {
- cflags = [ "-w" ]
-}
-third_party_configs = [ ":no_warnings" ]
-
-# Chrome's GN environment sets up a bunch of default configs we don't need/want here.
-unwanted_configs = [
- "//build/config/clang:extra_warnings",
- "//build/config/clang:find_bad_constructs",
- "//build/config/compiler:chromium_code",
- "//build/config:feature_flags",
-]
-
-config("zlib_public") {
- include_dirs = [ "externals/zlib" ]
-}
-source_set("zlib") {
- public_configs = [ ":zlib_public" ]
- configs += third_party_configs
- configs -= unwanted_configs
-
- sources = [
- "externals/zlib/adler32.c",
- "externals/zlib/compress.c",
- "externals/zlib/crc32.c",
- "externals/zlib/deflate.c",
- "externals/zlib/gzclose.c",
- "externals/zlib/gzlib.c",
- "externals/zlib/gzread.c",
- "externals/zlib/gzwrite.c",
- "externals/zlib/infback.c",
- "externals/zlib/inffast.c",
- "externals/zlib/inflate.c",
- "externals/zlib/inftrees.c",
- "externals/zlib/simd_stub.c",
- "externals/zlib/trees.c",
- "externals/zlib/uncompr.c",
- "externals/zlib/zutil.c",
- ]
-}
-
-config("libpng_public") {
- include_dirs = [ "libpng" ]
-}
-source_set("libpng") {
- public_configs = [ ":libpng_public" ]
- configs += third_party_configs
- configs -= unwanted_configs
-
- deps = [
- ":zlib",
- ]
- sources = [
- "libpng/png.c",
- "libpng/pngerror.c",
- "libpng/pngget.c",
- "libpng/pngmem.c",
- "libpng/pngpread.c",
- "libpng/pngread.c",
- "libpng/pngrio.c",
- "libpng/pngrtran.c",
- "libpng/pngrutil.c",
- "libpng/pngset.c",
- "libpng/pngtrans.c",
- "libpng/pngwio.c",
- "libpng/pngwrite.c",
- "libpng/pngwtran.c",
- "libpng/pngwutil.c",
- ]
-}
-
-config("libjpeg-turbo_config") {
- include_dirs = [ "externals/libjpeg-turbo" ]
-}
-source_set("libjpeg-turbo") {
- public_configs = [ ":libjpeg-turbo_config" ]
- configs += third_party_configs
- configs -= unwanted_configs
-
- sources = [
- "externals/libjpeg-turbo/jcapimin.c",
- "externals/libjpeg-turbo/jcapistd.c",
- "externals/libjpeg-turbo/jccoefct.c",
- "externals/libjpeg-turbo/jccolor.c",
- "externals/libjpeg-turbo/jcdctmgr.c",
- "externals/libjpeg-turbo/jchuff.c",
- "externals/libjpeg-turbo/jcinit.c",
- "externals/libjpeg-turbo/jcmainct.c",
- "externals/libjpeg-turbo/jcmarker.c",
- "externals/libjpeg-turbo/jcmaster.c",
- "externals/libjpeg-turbo/jcomapi.c",
- "externals/libjpeg-turbo/jcparam.c",
- "externals/libjpeg-turbo/jcphuff.c",
- "externals/libjpeg-turbo/jcprepct.c",
- "externals/libjpeg-turbo/jcsample.c",
- "externals/libjpeg-turbo/jdapimin.c",
- "externals/libjpeg-turbo/jdapistd.c",
- "externals/libjpeg-turbo/jdcoefct.c",
- "externals/libjpeg-turbo/jdcolor.c",
- "externals/libjpeg-turbo/jddctmgr.c",
- "externals/libjpeg-turbo/jdhuff.c",
- "externals/libjpeg-turbo/jdinput.c",
- "externals/libjpeg-turbo/jdmainct.c",
- "externals/libjpeg-turbo/jdmarker.c",
- "externals/libjpeg-turbo/jdmaster.c",
- "externals/libjpeg-turbo/jdmerge.c",
- "externals/libjpeg-turbo/jdphuff.c",
- "externals/libjpeg-turbo/jdpostct.c",
- "externals/libjpeg-turbo/jdsample.c",
- "externals/libjpeg-turbo/jerror.c",
- "externals/libjpeg-turbo/jfdctflt.c",
- "externals/libjpeg-turbo/jfdctfst.c",
- "externals/libjpeg-turbo/jfdctint.c",
- "externals/libjpeg-turbo/jidctflt.c",
- "externals/libjpeg-turbo/jidctfst.c",
- "externals/libjpeg-turbo/jidctint.c",
- "externals/libjpeg-turbo/jidctred.c",
- "externals/libjpeg-turbo/jmemmgr.c",
- "externals/libjpeg-turbo/jmemnobs.c",
- "externals/libjpeg-turbo/jquant1.c",
- "externals/libjpeg-turbo/jquant2.c",
- "externals/libjpeg-turbo/jsimd_none.c",
- "externals/libjpeg-turbo/jutils.c",
- ]
-}
+++ /dev/null
-../third_party/externals/gyp/
\ No newline at end of file