Move Skia GN sources to a separate .gni file.

This file will be imported by Chrome to access the sources lists.

Once Chrome is updated to use this file, changes to the skia .gypi layout can
be done entirely within the skia repository as long as the resulting lists
produced by the new .gni file have the same name.

Marks skia_for_chromium_defines as obsolete and moves the definition into the new .gni file. We can remove the .gypi file when Chrome is updated.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2302803005

Review-Url: https://codereview.chromium.org/2302803005
diff --git a/BUILD.gn b/BUILD.gn
index 6cb5516..1b90048 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -3,6 +3,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//gn/shared_sources.gni")
+
 declare_args() {
   skia_enable_tools = !is_fuchsia && !is_component_build
 
@@ -90,69 +92,6 @@
   ":skia_library",
 ]
 
-core_gypi = exec_script("gn/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("gn/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("gn/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("gn/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("gn/gypi_to_gn.py",
-                       [
-                         rebase_path("gyp/pdf.gypi"),
-                         "--replace=<(skia_include_path)=include",
-                         "--replace=<(skia_src_path)=src",
-                       ],
-                       "scope",
-                       [ "gyp/pdf.gypi" ])
-
-sksl_gypi = exec_script("gn/gypi_to_gn.py",
-                        [
-                          rebase_path("gyp/sksl.gypi"),
-                          "--replace=<(skia_include_path)=include",
-                          "--replace=<(skia_src_path)=src",
-                        ],
-                        "scope",
-                        [ "gyp/sksl.gypi" ])
-
-utils_gypi = exec_script("gn/gypi_to_gn.py",
-                         [
-                           rebase_path("gyp/utils.gypi"),
-                           "--replace=<(skia_include_path)=include",
-                           "--replace=<(skia_src_path)=src",
-                         ],
-                         "scope",
-                         [ "gyp/utils.gypi" ])
-
 # Use for CPU-specific Skia code that needs particular compiler flags.
 template("opts") {
   if (invoker.enabled) {
@@ -177,61 +116,61 @@
 
 opts("none") {
   enabled = !is_x86 && current_cpu != "arm" && current_cpu != "arm64"
-  sources = opts_gypi.none_sources
+  sources = skia_opts.none_sources
   cflags = []
 }
 
 opts("armv7") {
   enabled = current_cpu == "arm"
-  sources = opts_gypi.armv7_sources + opts_gypi.neon_sources
+  sources = skia_opts.armv7_sources + skia_opts.neon_sources
   cflags = []
 }
 
 opts("arm64") {
   enabled = current_cpu == "arm64"
-  sources = opts_gypi.arm64_sources
+  sources = skia_opts.arm64_sources
   cflags = []
 }
 
 opts("crc32") {
   enabled = current_cpu == "arm64"
-  sources = opts_gypi.crc32_sources
+  sources = skia_opts.crc32_sources
   cflags = [ "-march=armv8-a+crc" ]
 }
 
 opts("sse2") {
   enabled = is_x86
-  sources = opts_gypi.sse2_sources
+  sources = skia_opts.sse2_sources
   cflags = [ "-msse2" ]
 }
 
 opts("ssse3") {
   enabled = is_x86
-  sources = opts_gypi.ssse3_sources
+  sources = skia_opts.ssse3_sources
   cflags = [ "-mssse3" ]
 }
 
 opts("sse41") {
   enabled = is_x86
-  sources = opts_gypi.sse41_sources
+  sources = skia_opts.sse41_sources
   cflags = [ "-msse4.1" ]
 }
 
 opts("sse42") {
   enabled = is_x86
-  sources = opts_gypi.sse42_sources
+  sources = skia_opts.sse42_sources
   cflags = [ "-msse4.2" ]
 }
 
 opts("avx") {
   enabled = is_x86
-  sources = opts_gypi.avx_sources
+  sources = skia_opts.avx_sources
   cflags = [ "-mavx" ]
 }
 
 opts("dsp") {
   enabled = current_cpu == "mipsel"
-  sources = opts_gypi.mips_dsp_sources
+  sources = skia_opts.mips_dsp_sources
   cflags = []
 }
 
@@ -335,7 +274,7 @@
   deps = [
     "//third_party/zlib",
   ]
-  sources = pdf_gypi.sources
+  sources = skia_pdf_sources
   sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ]
 
   if (skia_use_sfntly) {
@@ -424,11 +363,11 @@
   ]
 
   sources = []
-  sources += core_gypi.sources
-  sources += effects_gypi.sources
-  sources += gpu_gypi.skgpu_sources
-  sources += sksl_gypi.sources
-  sources += utils_gypi.sources
+  sources += skia_core_sources
+  sources += skia_effects_sources
+  sources += skia_gpu_sources
+  sources += skia_sksl_sources
+  sources += skia_utils_sources
   sources += [
     "src/android/SkBitmapRegionCodec.cpp",
     "src/android/SkBitmapRegionDecoder.cpp",
@@ -462,10 +401,15 @@
     "third_party/etc1/etc1.cpp",
     "third_party/ktx/ktx.cpp",
   ]
-  sources -= [
-    "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
-    "src/gpu/gl/GrGLDefaultInterface_none.cpp",
-  ]
+
+  # These paths need to be absolute to match the ones produced by
+  # shared_sources.gni, but this file may be used from different directory
+  # locations.
+  sources -= get_path_info([
+                             "src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
+                             "src/gpu/gl/GrGLDefaultInterface_none.cpp",
+                           ],
+                           "abspath")
 
   libs = []