Create .gni files for samples, tests, gms, and benches.
authorMike Klein <mtklein@chromium.org>
Thu, 27 Oct 2016 16:21:40 +0000 (12:21 -0400)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Thu, 27 Oct 2016 18:14:06 +0000 (18:14 +0000)
Calling Python to find all these files is convenient, but error-prone.  It's easy to forget to call GN again when adding a file.  Each of these calls to Python also adds ~50ms to the run time of gn gen, which is small but adds up.

On my desktop, gn gen drops from 600ms to 150ms, noticeably faster.

This leaves one call to find.py for generating skia.h for fiddle.  We're not quite sure how to automate that process to happen entirely inside the :skia.h action while maintaining correct dependencies, so I'm leaving it for now.

BUG=skia:

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

Change-Id: Ib9d355b97900f29afebc65311ceef50537e46dda
Reviewed-on: https://skia-review.googlesource.com/4036
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

BUILD.gn
gn/bench.gni [new file with mode: 0644]
gn/gm.gni [new file with mode: 0644]
gn/samples.gni [new file with mode: 0644]
gn/tests.gni [new file with mode: 0644]

index e41166b..6a55922 100644 (file)
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -809,13 +809,7 @@ if (skia_enable_tools) {
     ]
   }
 
-  gm_sources = exec_script("gyp/find.py",
-                           [
-                             "*.c*",
-                             rebase_path("gm"),
-                           ],
-                           "list lines",
-                           [])
+  import("gn/gm.gni")
   test_lib("gm") {
     public_include_dirs = [ "gm" ]
     sources = gm_sources
@@ -827,23 +821,12 @@ if (skia_enable_tools) {
     ]
   }
 
-  tests_sources = exec_script("gyp/find.py",
-                              [
-                                "*.c*",
-                                rebase_path("tests"),
-                              ],
-                              "list lines",
-                              [])
-
+  import("gn/tests.gni")
   test_lib("tests") {
     public_include_dirs = [ "tests" ]
-    sources = tests_sources - [
-                rebase_path("tests/PathOpsSkpClipTest.cpp"),  # alternate main
-                rebase_path("tests/SkpSkGrTest.cpp"),  # doesn't compile
-                rebase_path("tests/skia_test.cpp"),  # alternate main
-              ]
+    sources = tests_sources + pathops_tests_sources
     if (!fontmgr_android_enabled) {
-      sources -= [ rebase_path("tests/FontMgrAndroidParserTest.cpp") ]
+      sources -= [ "//tests/FontMgrAndroidParserTest.cpp" ]
     }
     deps = [
       ":experimental_svg_model",
@@ -856,21 +839,10 @@ if (skia_enable_tools) {
     ]
   }
 
-  bench_sources = exec_script("gyp/find.py",
-                              [
-                                "*.c*",
-                                rebase_path("bench"),
-                              ],
-                              "list lines",
-                              [])
-
+  import("gn/bench.gni")
   test_lib("bench") {
     public_include_dirs = [ "bench" ]
     sources = bench_sources
-    sources -= [
-      rebase_path("bench/nanobench.cpp"),
-      rebase_path("bench/nanobenchAndroid.cpp"),
-    ]
     deps = [
       ":flags",
       ":gm",
@@ -945,38 +917,19 @@ if (skia_enable_tools) {
     }
   }
 
-  sample_sources = exec_script("gyp/find.py",
-                               [
-                                 "*.c*",
-                                 rebase_path("samplecode"),
-                               ],
-                               "list lines",
-                               [])
-
+  import("gn/samples.gni")
   test_lib("samples") {
-    include_dirs = [ "experimental" ]
     public_include_dirs = [ "samplecode" ]
-    sources = sample_sources
-    sources -= [
-      rebase_path("samplecode/SampleAnimator.cpp"),  # relies on animator
-      rebase_path("samplecode/SampleApp.cpp"),  # part of SampleApp exe, not samples lib
-      rebase_path("samplecode/SampleClamp.cpp"),
-      rebase_path("samplecode/SampleDash.cpp"),
-      rebase_path("samplecode/SampleLua.cpp"),  # no Lua yet in GN
-      rebase_path("samplecode/SamplePathFill.cpp"),
-      rebase_path("samplecode/SamplePictFile.cpp"),  # relies on SK_SUPPORT_LEGACY_DRAWFILTER
-      rebase_path("samplecode/SampleSkLayer.cpp"),  # relies on SkMatrix44 which doesn't compile?
-      rebase_path("samplecode/SampleFontCache.cpp"),  # relies on pthread.h
-    ]
-    sources += [
-      "experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp",
-      "experimental/SkSetPoly3To3.cpp",
-      "experimental/SkSetPoly3To3_A.cpp",
-      "experimental/SkSetPoly3To3_D.cpp",
-    ]
+    include_dirs = [ "experimental" ]
+    sources = samples_sources + [
+                "experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp",
+                "experimental/SkSetPoly3To3.cpp",
+                "experimental/SkSetPoly3To3_A.cpp",
+                "experimental/SkSetPoly3To3_D.cpp",
+              ]
     deps = [
       ":experimental_svg_model",
-      ":gm",  # Why does SampleFilterQuality.cpp include gm.h ???
+      ":gm",
       ":tool_utils",
       ":views",
       ":xml",
@@ -1140,18 +1093,8 @@ if (skia_enable_tools) {
     testonly = true
   }
 
-  pathops_tests_sources = exec_script("gyp/find.py",
-                                      [
-                                        "PathOps*.cpp",
-                                        rebase_path("tests"),
-                                      ],
-                                      "list lines",
-                                      [])
-
   executable("pathops_unittest") {
-    sources = pathops_tests_sources -
-              [ rebase_path("tests/PathOpsSkpClipTest.cpp") ] +
-              [
+    sources = pathops_tests_sources + [
                 rebase_path("tests/skia_test.cpp"),
                 rebase_path("tests/Test.cpp"),
               ]
diff --git a/gn/bench.gni b/gn/bench.gni
new file mode 100644 (file)
index 0000000..8041c34
--- /dev/null
@@ -0,0 +1,129 @@
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Things are easiest for everyone if these source paths are absolute.
+_bench = get_path_info("../bench", "abspath")
+
+bench_sources = [
+  "$_bench/AAClipBench.cpp",
+  "$_bench/AlternatingColorPatternBench.cpp",
+  "$_bench/AndroidCodecBench.cpp",
+  "$_bench/BenchLogger.cpp",
+  "$_bench/Benchmark.cpp",
+  "$_bench/BezierBench.cpp",
+  "$_bench/BigPathBench.cpp",
+  "$_bench/BitmapBench.cpp",
+  "$_bench/BitmapRectBench.cpp",
+  "$_bench/BitmapRegionDecoderBench.cpp",
+  "$_bench/BitmapScaleBench.cpp",
+  "$_bench/BlurBench.cpp",
+  "$_bench/BlurImageFilterBench.cpp",
+  "$_bench/BlurOccludedRRectBench.cpp",
+  "$_bench/BlurRectBench.cpp",
+  "$_bench/BlurRectsBench.cpp",
+  "$_bench/BlurRoundRectBench.cpp",
+  "$_bench/ChartBench.cpp",
+  "$_bench/ChecksumBench.cpp",
+  "$_bench/ChromeBench.cpp",
+  "$_bench/CmapBench.cpp",
+  "$_bench/CodecBench.cpp",
+  "$_bench/ColorCodecBench.cpp",
+  "$_bench/ColorCubeBench.cpp",
+  "$_bench/ColorFilterBench.cpp",
+  "$_bench/ColorPrivBench.cpp",
+  "$_bench/ControlBench.cpp",
+  "$_bench/CoverageBench.cpp",
+  "$_bench/DashBench.cpp",
+  "$_bench/DisplacementBench.cpp",
+  "$_bench/DrawBitmapAABench.cpp",
+  "$_bench/DrawLatticeBench.cpp",
+  "$_bench/EncoderBench.cpp",
+  "$_bench/FontCacheBench.cpp",
+  "$_bench/FontScalerBench.cpp",
+  "$_bench/FSRectBench.cpp",
+  "$_bench/GameBench.cpp",
+  "$_bench/GeometryBench.cpp",
+  "$_bench/GLBench.cpp",
+  "$_bench/GLInstancedArraysBench.cpp",
+  "$_bench/GLVec4ScalarBench.cpp",
+  "$_bench/GLVertexAttributesBench.cpp",
+  "$_bench/GMBench.cpp",
+  "$_bench/GradientBench.cpp",
+  "$_bench/GrMemoryPoolBench.cpp",
+  "$_bench/GrMipMapBench.cpp",
+  "$_bench/GrResourceCacheBench.cpp",
+  "$_bench/HairlinePathBench.cpp",
+  "$_bench/HardStopGradientBench_ScaleNumColors.cpp",
+  "$_bench/HardStopGradientBench_ScaleNumHardStops.cpp",
+  "$_bench/HardStopGradientBench_SpecialHardStops.cpp",
+  "$_bench/ImageBench.cpp",
+  "$_bench/ImageCacheBench.cpp",
+  "$_bench/ImageCacheBudgetBench.cpp",
+  "$_bench/ImageFilterCollapse.cpp",
+  "$_bench/ImageFilterDAGBench.cpp",
+  "$_bench/InterpBench.cpp",
+  "$_bench/LightingBench.cpp",
+  "$_bench/LineBench.cpp",
+  "$_bench/MagnifierBench.cpp",
+  "$_bench/MathBench.cpp",
+  "$_bench/Matrix44Bench.cpp",
+  "$_bench/MatrixBench.cpp",
+  "$_bench/MatrixConvolutionBench.cpp",
+  "$_bench/MeasureBench.cpp",
+  "$_bench/MemoryBench.cpp",
+  "$_bench/MemsetBench.cpp",
+  "$_bench/MergeBench.cpp",
+  "$_bench/MipMapBench.cpp",
+  "$_bench/MorphologyBench.cpp",
+  "$_bench/MutexBench.cpp",
+  "$_bench/pack_int_uint16_t_Bench.cpp",
+  "$_bench/PatchBench.cpp",
+  "$_bench/PatchGridBench.cpp",
+  "$_bench/PathBench.cpp",
+  "$_bench/PathIterBench.cpp",
+  "$_bench/PDFBench.cpp",
+  "$_bench/PerlinNoiseBench.cpp",
+  "$_bench/PictureNestingBench.cpp",
+  "$_bench/PictureOverheadBench.cpp",
+  "$_bench/PicturePlaybackBench.cpp",
+  "$_bench/PremulAndUnpremulAlphaOpsBench.cpp",
+  "$_bench/QuickRejectBench.cpp",
+  "$_bench/ReadPixBench.cpp",
+  "$_bench/RecordingBench.cpp",
+  "$_bench/RectanizerBench.cpp",
+  "$_bench/RectBench.cpp",
+  "$_bench/RectoriBench.cpp",
+  "$_bench/RefCntBench.cpp",
+  "$_bench/RegionBench.cpp",
+  "$_bench/RegionContainBench.cpp",
+  "$_bench/RepeatTileBench.cpp",
+  "$_bench/RotatedRectBench.cpp",
+  "$_bench/RTreeBench.cpp",
+  "$_bench/ScalarBench.cpp",
+  "$_bench/ShaderMaskBench.cpp",
+  "$_bench/ShapesBench.cpp",
+  "$_bench/Sk4fBench.cpp",
+  "$_bench/SkBlend_optsBench.cpp",
+  "$_bench/SkGlyphCacheBench.cpp",
+  "$_bench/SkLinearBitmapPipelineBench.cpp",
+  "$_bench/SKPAnimationBench.cpp",
+  "$_bench/SKPBench.cpp",
+  "$_bench/SkRasterPipelineBench.cpp",
+  "$_bench/SortBench.cpp",
+  "$_bench/StrokeBench.cpp",
+  "$_bench/SwizzleBench.cpp",
+  "$_bench/TableBench.cpp",
+  "$_bench/TextBench.cpp",
+  "$_bench/TextBlobBench.cpp",
+  "$_bench/TileBench.cpp",
+  "$_bench/TileImageFilterBench.cpp",
+  "$_bench/TopoSortBench.cpp",
+  "$_bench/VertBench.cpp",
+  "$_bench/WritePixelsBench.cpp",
+  "$_bench/WriterBench.cpp",
+  "$_bench/Xfer4fBench.cpp",
+  "$_bench/XferF16Bench.cpp",
+  "$_bench/XfermodeBench.cpp",
+]
diff --git a/gn/gm.gni b/gn/gm.gni
new file mode 100644 (file)
index 0000000..6d68f12
--- /dev/null
+++ b/gn/gm.gni
@@ -0,0 +1,303 @@
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Things are easiest for everyone if these source paths are absolute.
+_gm = get_path_info("../gm", "abspath")
+
+gm_sources = [
+  "$_gm/aaa.cpp",
+  "$_gm/aaclip.cpp",
+  "$_gm/aarectmodes.cpp",
+  "$_gm/aaxfermodes.cpp",
+  "$_gm/addarc.cpp",
+  "$_gm/all_bitmap_configs.cpp",
+  "$_gm/alphagradients.cpp",
+  "$_gm/animatedGif.cpp",
+  "$_gm/anisotropic.cpp",
+  "$_gm/annotated_text.cpp",
+  "$_gm/arcofzorro.cpp",
+  "$_gm/arcto.cpp",
+  "$_gm/arithmode.cpp",
+  "$_gm/badpaint.cpp",
+  "$_gm/beziereffects.cpp",
+  "$_gm/beziers.cpp",
+  "$_gm/bigblurs.cpp",
+  "$_gm/bigmatrix.cpp",
+  "$_gm/bigrrectaaeffect.cpp",
+  "$_gm/bigtext.cpp",
+  "$_gm/bigtileimagefilter.cpp",
+  "$_gm/bitmapcopy.cpp",
+  "$_gm/bitmapfilters.cpp",
+  "$_gm/bitmapimage.cpp",
+  "$_gm/bitmappremul.cpp",
+  "$_gm/bitmaprect.cpp",
+  "$_gm/bitmaprecttest.cpp",
+  "$_gm/bitmapshader.cpp",
+  "$_gm/bleed.cpp",
+  "$_gm/blend.cpp",
+  "$_gm/blurcircles.cpp",
+  "$_gm/blurcircles2.cpp",
+  "$_gm/blurquickreject.cpp",
+  "$_gm/blurrect.cpp",
+  "$_gm/blurredclippedcircle.cpp",
+  "$_gm/blurroundrect.cpp",
+  "$_gm/blurs.cpp",
+  "$_gm/bmpfilterqualityrepeat.cpp",
+  "$_gm/bug5252.cpp",
+  "$_gm/bug530095.cpp",
+  "$_gm/bug615686.cpp",
+  "$_gm/cgm.c",
+  "$_gm/cgms.cpp",
+  "$_gm/circles.cpp",
+  "$_gm/circulararcs.cpp",
+  "$_gm/circularclips.cpp",
+  "$_gm/clip_strokerect.cpp",
+  "$_gm/clipdrawdraw.cpp",
+  "$_gm/clippedbitmapshaders.cpp",
+  "$_gm/color4f.cpp",
+  "$_gm/colorcube.cpp",
+  "$_gm/coloremoji.cpp",
+  "$_gm/colorfilterimagefilter.cpp",
+  "$_gm/colorfilters.cpp",
+  "$_gm/colormatrix.cpp",
+  "$_gm/colorspacexform.cpp",
+  "$_gm/colortype.cpp",
+  "$_gm/colortypexfermode.cpp",
+  "$_gm/colorwheel.cpp",
+  "$_gm/complexclip.cpp",
+  "$_gm/complexclip_blur_tiled.cpp",
+  "$_gm/complexclip2.cpp",
+  "$_gm/complexclip3.cpp",
+  "$_gm/composeshader.cpp",
+  "$_gm/concavepaths.cpp",
+  "$_gm/conicpaths.cpp",
+  "$_gm/constcolorprocessor.cpp",
+  "$_gm/convex_all_line_paths.cpp",
+  "$_gm/convexpaths.cpp",
+  "$_gm/convexpolyclip.cpp",
+  "$_gm/convexpolyeffect.cpp",
+  "$_gm/copyTo4444.cpp",
+  "$_gm/croppedrects.cpp",
+  "$_gm/cubicpaths.cpp",
+  "$_gm/dashcircle.cpp",
+  "$_gm/dashcubics.cpp",
+  "$_gm/dashing.cpp",
+  "$_gm/deferredtextureimage.cpp",
+  "$_gm/degeneratesegments.cpp",
+  "$_gm/dftext.cpp",
+  "$_gm/discard.cpp",
+  "$_gm/displacement.cpp",
+  "$_gm/distantclip.cpp",
+  "$_gm/downsamplebitmap.cpp",
+  "$_gm/draw_bitmap_rect_skbug4374.cpp",
+  "$_gm/drawable.cpp",
+  "$_gm/drawatlas.cpp",
+  "$_gm/drawatlascolor.cpp",
+  "$_gm/drawbitmaprect.cpp",
+  "$_gm/drawfilter.cpp",
+  "$_gm/drawlooper.cpp",
+  "$_gm/drawminibitmaprect.cpp",
+  "$_gm/drawregion.cpp",
+  "$_gm/drawregionmodes.cpp",
+  "$_gm/dropshadowimagefilter.cpp",
+  "$_gm/drrect.cpp",
+  "$_gm/dstreadshuffle.cpp",
+  "$_gm/emboss.cpp",
+  "$_gm/emptypath.cpp",
+  "$_gm/encode.cpp",
+  "$_gm/encode-platform.cpp",
+  "$_gm/extractbitmap.cpp",
+  "$_gm/fadefilter.cpp",
+  "$_gm/fatpathfill.cpp",
+  "$_gm/filltypes.cpp",
+  "$_gm/filltypespersp.cpp",
+  "$_gm/filterbitmap.cpp",
+  "$_gm/filterfastbounds.cpp",
+  "$_gm/filterindiabox.cpp",
+  "$_gm/fontcache.cpp",
+  "$_gm/fontmgr.cpp",
+  "$_gm/fontscaler.cpp",
+  "$_gm/fontscalerdistortable.cpp",
+  "$_gm/gamma.cpp",
+  "$_gm/gammacolorfilter.cpp",
+  "$_gm/gammatext.cpp",
+  "$_gm/gamut.cpp",
+  "$_gm/gaussianedge.cpp",
+  "$_gm/getpostextpath.cpp",
+  "$_gm/giantbitmap.cpp",
+  "$_gm/glyph_pos.cpp",
+  "$_gm/glyph_pos_align.cpp",
+  "$_gm/gm.cpp",
+  "$_gm/gradient_matrix.cpp",
+  "$_gm/gradientDirtyLaundry.cpp",
+  "$_gm/gradients.cpp",
+  "$_gm/gradients_2pt_conical.cpp",
+  "$_gm/gradients_no_texture.cpp",
+  "$_gm/gradtext.cpp",
+  "$_gm/grayscalejpg.cpp",
+  "$_gm/hairlines.cpp",
+  "$_gm/hairmodes.cpp",
+  "$_gm/hardstop_gradients.cpp",
+  "$_gm/hittestpath.cpp",
+  "$_gm/image.cpp",
+  "$_gm/image_pict.cpp",
+  "$_gm/image_shader.cpp",
+  "$_gm/imagealphathreshold.cpp",
+  "$_gm/imageblur.cpp",
+  "$_gm/imageblur2.cpp",
+  "$_gm/imageblurtiled.cpp",
+  "$_gm/imagefilters.cpp",
+  "$_gm/imagefiltersbase.cpp",
+  "$_gm/imagefiltersclipped.cpp",
+  "$_gm/imagefilterscropexpand.cpp",
+  "$_gm/imagefilterscropped.cpp",
+  "$_gm/imagefiltersgraph.cpp",
+  "$_gm/imagefiltersscaled.cpp",
+  "$_gm/imagefiltersstroked.cpp",
+  "$_gm/imagefilterstransformed.cpp",
+  "$_gm/imagefromyuvtextures.cpp",
+  "$_gm/imagemagnifier.cpp",
+  "$_gm/imagemakewithfilter.cpp",
+  "$_gm/imagemasksubset.cpp",
+  "$_gm/imageresizetiled.cpp",
+  "$_gm/imagescalealigned.cpp",
+  "$_gm/imagesource.cpp",
+  "$_gm/imagesource2.cpp",
+  "$_gm/imagetoyuvplanes.cpp",
+  "$_gm/internal_links.cpp",
+  "$_gm/inversepaths.cpp",
+  "$_gm/labpcsdemo.cpp",
+  "$_gm/largeglyphblur.cpp",
+  "$_gm/lattice.cpp",
+  "$_gm/lcdblendmodes.cpp",
+  "$_gm/lcdoverlap.cpp",
+  "$_gm/lcdtext.cpp",
+  "$_gm/lighting.cpp",
+  "$_gm/lightingshader.cpp",
+  "$_gm/lightingshader2.cpp",
+  "$_gm/lightingshaderbevel.cpp",
+  "$_gm/linepaths.cpp",
+  "$_gm/localmatriximagefilter.cpp",
+  "$_gm/lumafilter.cpp",
+  "$_gm/matrixconvolution.cpp",
+  "$_gm/matriximagefilter.cpp",
+  "$_gm/megalooper.cpp",
+  "$_gm/mipmap.cpp",
+  "$_gm/mixedtextblobs.cpp",
+  "$_gm/modecolorfilters.cpp",
+  "$_gm/morphology.cpp",
+  "$_gm/multipicturedraw.cpp",
+  "$_gm/nested.cpp",
+  "$_gm/ninepatchstretch.cpp",
+  "$_gm/nonclosedpaths.cpp",
+  "$_gm/occludedrrectblur.cpp",
+  "$_gm/offsetimagefilter.cpp",
+  "$_gm/ovals.cpp",
+  "$_gm/OverStroke.cpp",
+  "$_gm/patch.cpp",
+  "$_gm/patchgrid.cpp",
+  "$_gm/path_stroke_with_zero_length.cpp",
+  "$_gm/pathcontourstart.cpp",
+  "$_gm/patheffects.cpp",
+  "$_gm/pathfill.cpp",
+  "$_gm/pathinterior.cpp",
+  "$_gm/pathmaskcache.cpp",
+  "$_gm/pathopsinverse.cpp",
+  "$_gm/pathopsskpclip.cpp",
+  "$_gm/pathreverse.cpp",
+  "$_gm/pdf_never_embed.cpp",
+  "$_gm/perlinnoise.cpp",
+  "$_gm/perspshaders.cpp",
+  "$_gm/picture.cpp",
+  "$_gm/pictureimagefilter.cpp",
+  "$_gm/pictureimagegenerator.cpp",
+  "$_gm/pictureshader.cpp",
+  "$_gm/pictureshadertile.cpp",
+  "$_gm/pixelsnap.cpp",
+  "$_gm/plus.cpp",
+  "$_gm/points.cpp",
+  "$_gm/poly2poly.cpp",
+  "$_gm/polygons.cpp",
+  "$_gm/quadpaths.cpp",
+  "$_gm/recordopts.cpp",
+  "$_gm/rectangletexture.cpp",
+  "$_gm/rects.cpp",
+  "$_gm/repeated_bitmap.cpp",
+  "$_gm/resizeimagefilter.cpp",
+  "$_gm/reveal.cpp",
+  "$_gm/roundrects.cpp",
+  "$_gm/rrect.cpp",
+  "$_gm/rrectclipdrawpaint.cpp",
+  "$_gm/rrects.cpp",
+  "$_gm/samplerstress.cpp",
+  "$_gm/scaledstrokes.cpp",
+  "$_gm/shaderbounds.cpp",
+  "$_gm/shadertext.cpp",
+  "$_gm/shadertext2.cpp",
+  "$_gm/shadertext3.cpp",
+  "$_gm/shadowmaps.cpp",
+  "$_gm/shadows.cpp",
+  "$_gm/shallowgradient.cpp",
+  "$_gm/shapes.cpp",
+  "$_gm/showmiplevels.cpp",
+  "$_gm/simpleaaclip.cpp",
+  "$_gm/simplerect.cpp",
+  "$_gm/skbug_257.cpp",
+  "$_gm/skbug_4868.cpp",
+  "$_gm/skbug_5321.cpp",
+  "$_gm/skbug1719.cpp",
+  "$_gm/SkLinearBitmapPipelineGM.cpp",
+  "$_gm/smallarc.cpp",
+  "$_gm/smallimage.cpp",
+  "$_gm/smallpaths.cpp",
+  "$_gm/spritebitmap.cpp",
+  "$_gm/srcmode.cpp",
+  "$_gm/stlouisarch.cpp",
+  "$_gm/stringart.cpp",
+  "$_gm/stroke_rect_shader.cpp",
+  "$_gm/strokedlines.cpp",
+  "$_gm/strokefill.cpp",
+  "$_gm/strokerect.cpp",
+  "$_gm/strokerects.cpp",
+  "$_gm/strokes.cpp",
+  "$_gm/stroketext.cpp",
+  "$_gm/subsetshader.cpp",
+  "$_gm/surface.cpp",
+  "$_gm/tablecolorfilter.cpp",
+  "$_gm/tallstretchedbitmaps.cpp",
+  "$_gm/texdata.cpp",
+  "$_gm/textblob.cpp",
+  "$_gm/textblobblockreordering.cpp",
+  "$_gm/textblobcolortrans.cpp",
+  "$_gm/textblobgeometrychange.cpp",
+  "$_gm/textbloblooper.cpp",
+  "$_gm/textblobmixedsizes.cpp",
+  "$_gm/textblobrandomfont.cpp",
+  "$_gm/textblobshader.cpp",
+  "$_gm/textblobtransforms.cpp",
+  "$_gm/textblobuseaftergpufree.cpp",
+  "$_gm/texteffects.cpp",
+  "$_gm/texturedomaineffect.cpp",
+  "$_gm/thinrects.cpp",
+  "$_gm/thinstrokedrects.cpp",
+  "$_gm/tiledscaledbitmap.cpp",
+  "$_gm/tileimagefilter.cpp",
+  "$_gm/tilemodes.cpp",
+  "$_gm/tilemodes_scaled.cpp",
+  "$_gm/tinybitmap.cpp",
+  "$_gm/transparency.cpp",
+  "$_gm/typeface.cpp",
+  "$_gm/variedtext.cpp",
+  "$_gm/vertices.cpp",
+  "$_gm/verttext.cpp",
+  "$_gm/verttext2.cpp",
+  "$_gm/verylargebitmap.cpp",
+  "$_gm/windowrectangles.cpp",
+  "$_gm/xfermodeimagefilter.cpp",
+  "$_gm/xfermodes.cpp",
+  "$_gm/xfermodes2.cpp",
+  "$_gm/xfermodes3.cpp",
+  "$_gm/yuvtorgbeffect.cpp",
+]
diff --git a/gn/samples.gni b/gn/samples.gni
new file mode 100644 (file)
index 0000000..0fd0df9
--- /dev/null
@@ -0,0 +1,105 @@
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Things are easiest for everyone if these source paths are absolute.
+_samplecode = get_path_info("../samplecode", "abspath")
+
+samples_sources = [
+  "$_samplecode/ClockFaceView.cpp",
+  "$_samplecode/GMSampleView.cpp",
+  "$_samplecode/OverView.cpp",
+  "$_samplecode/PerlinPatch.cpp",
+  "$_samplecode/Sample2PtRadial.cpp",
+  "$_samplecode/SampleAAClip.cpp",
+  "$_samplecode/SampleAAGeometry.cpp",
+  "$_samplecode/SampleAARectModes.cpp",
+  "$_samplecode/SampleAARects.cpp",
+  "$_samplecode/SampleAll.cpp",
+  "$_samplecode/SampleAndroidShadows.cpp",
+  "$_samplecode/SampleAnimatedText.cpp",
+  "$_samplecode/SampleAnimBlur.cpp",
+  "$_samplecode/SampleArc.cpp",
+  "$_samplecode/SampleAtlas.cpp",
+  "$_samplecode/SampleBevel.cpp",
+  "$_samplecode/SampleBigBlur.cpp",
+  "$_samplecode/SampleBigGradient.cpp",
+  "$_samplecode/SampleBitmapRect.cpp",
+  "$_samplecode/SampleBlur.cpp",
+  "$_samplecode/SampleCamera.cpp",
+  "$_samplecode/SampleChart.cpp",
+  "$_samplecode/SampleCircle.cpp",
+  "$_samplecode/SampleClip.cpp",
+  "$_samplecode/SampleClipDrawMatch.cpp",
+  "$_samplecode/SampleClock.cpp",
+  "$_samplecode/SampleCode.cpp",
+  "$_samplecode/SampleColorFilter.cpp",
+  "$_samplecode/SampleComplexClip.cpp",
+  "$_samplecode/SampleConcavePaths.cpp",
+  "$_samplecode/SampleDegenerateTwoPtRadials.cpp",
+  "$_samplecode/SampleDither.cpp",
+  "$_samplecode/SampleDitherBitmap.cpp",
+  "$_samplecode/SampleEffects.cpp",
+  "$_samplecode/SampleEmboss.cpp",
+  "$_samplecode/SampleFatBits.cpp",
+  "$_samplecode/SampleFillType.cpp",
+  "$_samplecode/SampleFilter.cpp",
+  "$_samplecode/SampleFilter2.cpp",
+  "$_samplecode/SampleFilterFuzz.cpp",
+  "$_samplecode/SampleFilterQuality.cpp",
+  "$_samplecode/SampleFontScalerTest.cpp",
+  "$_samplecode/SampleFuzz.cpp",
+  "$_samplecode/SampleGradients.cpp",
+  "$_samplecode/SampleHairCurves.cpp",
+  "$_samplecode/SampleHairline.cpp",
+  "$_samplecode/SampleHairModes.cpp",
+  "$_samplecode/SampleHT.cpp",
+  "$_samplecode/SampleIdentityScale.cpp",
+  "$_samplecode/SampleLayerMask.cpp",
+  "$_samplecode/SampleLayers.cpp",
+  "$_samplecode/SampleLCD.cpp",
+  "$_samplecode/SampleLighting.cpp",
+  "$_samplecode/SampleLines.cpp",
+  "$_samplecode/SampleLitAtlas.cpp",
+  "$_samplecode/SampleManyRects.cpp",
+  "$_samplecode/SampleMeasure.cpp",
+  "$_samplecode/SampleMegaStroke.cpp",
+  "$_samplecode/SamplePatch.cpp",
+  "$_samplecode/SamplePath.cpp",
+  "$_samplecode/SamplePathClip.cpp",
+  "$_samplecode/SamplePathEffects.cpp",
+  "$_samplecode/SamplePathFuzz.cpp",
+  "$_samplecode/SamplePathOverstroke.cpp",
+  "$_samplecode/SamplePdfFileViewer.cpp",
+  "$_samplecode/SamplePoints.cpp",
+  "$_samplecode/SamplePolyToPoly.cpp",
+  "$_samplecode/SampleQuadStroker.cpp",
+  "$_samplecode/SampleRectanizer.cpp",
+  "$_samplecode/SampleRegion.cpp",
+  "$_samplecode/SampleRepeatTile.cpp",
+  "$_samplecode/SampleShaders.cpp",
+  "$_samplecode/SampleShaderText.cpp",
+  "$_samplecode/SampleShadowing.cpp",
+  "$_samplecode/SampleShip.cpp",
+  "$_samplecode/SampleSlides.cpp",
+  "$_samplecode/SampleStringArt.cpp",
+  "$_samplecode/SampleStrokePath.cpp",
+  "$_samplecode/SampleStrokeRect.cpp",
+  "$_samplecode/SampleSubpixelTranslate.cpp",
+  "$_samplecode/SampleSVGFile.cpp",
+  "$_samplecode/SampleSVGPong.cpp",
+  "$_samplecode/SampleText.cpp",
+  "$_samplecode/SampleTextAlpha.cpp",
+  "$_samplecode/SampleTextBox.cpp",
+  "$_samplecode/SampleTextOnPath.cpp",
+  "$_samplecode/SampleTextureDomain.cpp",
+  "$_samplecode/SampleTiling.cpp",
+  "$_samplecode/SampleTinyBitmap.cpp",
+  "$_samplecode/SampleUnpremul.cpp",
+  "$_samplecode/SampleVertices.cpp",
+  "$_samplecode/SampleWritePixels.cpp",
+  "$_samplecode/SampleXfer.cpp",
+  "$_samplecode/SampleXfermodesBlur.cpp",
+  "$_samplecode/vertexdump.cpp",
+]
diff --git a/gn/tests.gni b/gn/tests.gni
new file mode 100644 (file)
index 0000000..790237b
--- /dev/null
@@ -0,0 +1,303 @@
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Things are easiest for everyone if these source paths are absolute.
+_tests = get_path_info("../tests", "abspath")
+
+tests_sources = [
+  "$_tests/AAClipTest.cpp",
+  "$_tests/AnnotationTest.cpp",
+  "$_tests/ApplyGammaTest.cpp",
+  "$_tests/AsADashTest.cpp",
+  "$_tests/BadIcoTest.cpp",
+  "$_tests/BitmapCopyTest.cpp",
+  "$_tests/BitmapGetColorTest.cpp",
+  "$_tests/BitmapTest.cpp",
+  "$_tests/BitSetTest.cpp",
+  "$_tests/BlendTest.cpp",
+  "$_tests/BlitMaskClip.cpp",
+  "$_tests/BlitRowTest.cpp",
+  "$_tests/BlurTest.cpp",
+  "$_tests/CachedDataTest.cpp",
+  "$_tests/CachedDecodingPixelRefTest.cpp",
+  "$_tests/CanvasStateHelpers.cpp",
+  "$_tests/CanvasStateTest.cpp",
+  "$_tests/CanvasTest.cpp",
+  "$_tests/ChecksumTest.cpp",
+  "$_tests/ClampRangeTest.cpp",
+  "$_tests/ClearTest.cpp",
+  "$_tests/ClipBoundsTest.cpp",
+  "$_tests/ClipCubicTest.cpp",
+  "$_tests/ClipperTest.cpp",
+  "$_tests/ClipStackTest.cpp",
+  "$_tests/CodecAnimTest.cpp",
+  "$_tests/CodecPartialTest.cpp",
+  "$_tests/CodecTest.cpp",
+  "$_tests/ColorFilterTest.cpp",
+  "$_tests/ColorMatrixTest.cpp",
+  "$_tests/ColorPrivTest.cpp",
+  "$_tests/ColorSpaceTest.cpp",
+  "$_tests/ColorSpaceXformTest.cpp",
+  "$_tests/ColorTest.cpp",
+  "$_tests/CopySurfaceTest.cpp",
+  "$_tests/CPlusPlusEleven.cpp",
+  "$_tests/CTest.cpp",
+  "$_tests/DashPathEffectTest.cpp",
+  "$_tests/DataRefTest.cpp",
+  "$_tests/DequeTest.cpp",
+  "$_tests/DeviceLooperTest.cpp",
+  "$_tests/DeviceTest.cpp",
+  "$_tests/DFPathRendererTest.cpp",
+  "$_tests/DiscardableMemoryPoolTest.cpp",
+  "$_tests/DiscardableMemoryTest.cpp",
+  "$_tests/DrawBitmapRectTest.cpp",
+  "$_tests/DrawFilterTest.cpp",
+  "$_tests/DrawPathTest.cpp",
+  "$_tests/DrawTextTest.cpp",
+  "$_tests/DynamicHashTest.cpp",
+  "$_tests/EGLImageTest.cpp",
+  "$_tests/EmptyPathTest.cpp",
+  "$_tests/ExifTest.cpp",
+  "$_tests/FillPathTest.cpp",
+  "$_tests/FitsInTest.cpp",
+  "$_tests/FlattenableCustomFactory.cpp",
+  "$_tests/FlattenableFactoryToName.cpp",
+  "$_tests/FlattenDrawableTest.cpp",
+  "$_tests/Float16Test.cpp",
+  "$_tests/FloatingPointTextureTest.cpp",
+  "$_tests/FontHostStreamTest.cpp",
+  "$_tests/FontHostTest.cpp",
+  "$_tests/FontMgrAndroidParserTest.cpp",
+  "$_tests/FontMgrTest.cpp",
+  "$_tests/FontNamesTest.cpp",
+  "$_tests/FontObjTest.cpp",
+  "$_tests/FrontBufferedStreamTest.cpp",
+  "$_tests/GeometryTest.cpp",
+  "$_tests/GifTest.cpp",
+  "$_tests/GLProgramsTest.cpp",
+  "$_tests/GpuColorFilterTest.cpp",
+  "$_tests/GpuDrawPathTest.cpp",
+  "$_tests/GpuLayerCacheTest.cpp",
+  "$_tests/GpuRectanizerTest.cpp",
+  "$_tests/GpuSampleLocationsTest.cpp",
+  "$_tests/GradientTest.cpp",
+  "$_tests/GrAllocatorTest.cpp",
+  "$_tests/GrContextAbandonTest.cpp",
+  "$_tests/GrContextFactoryTest.cpp",
+  "$_tests/GrDrawTargetTest.cpp",
+  "$_tests/GrGetCoeffBlendKnownComponentsTest.cpp",
+  "$_tests/GrGLSLPrettyPrintTest.cpp",
+  "$_tests/GrMemoryPoolTest.cpp",
+  "$_tests/GrPorterDuffTest.cpp",
+  "$_tests/GrShapeTest.cpp",
+  "$_tests/GrSurfaceTest.cpp",
+  "$_tests/GrTextureMipMapInvalidationTest.cpp",
+  "$_tests/GrTextureStripAtlasTest.cpp",
+  "$_tests/GrTRecorderTest.cpp",
+  "$_tests/HashTest.cpp",
+  "$_tests/image-bitmap.cpp",
+  "$_tests/ImageCacheTest.cpp",
+  "$_tests/ImageFilterCacheTest.cpp",
+  "$_tests/ImageFilterTest.cpp",
+  "$_tests/ImageFrom565Bitmap.cpp",
+  "$_tests/ImageGeneratorTest.cpp",
+  "$_tests/ImageIsOpaqueTest.cpp",
+  "$_tests/ImageNewShaderTest.cpp",
+  "$_tests/ImageTest.cpp",
+  "$_tests/IndexedPngOverflowTest.cpp",
+  "$_tests/InfRectTest.cpp",
+  "$_tests/InterpolatorTest.cpp",
+  "$_tests/InvalidIndexedPngTest.cpp",
+  "$_tests/IsClosedSingleContourTest.cpp",
+  "$_tests/LayerDrawLooperTest.cpp",
+  "$_tests/LayerRasterizerTest.cpp",
+  "$_tests/LListTest.cpp",
+  "$_tests/MallocPixelRefTest.cpp",
+  "$_tests/MaskCacheTest.cpp",
+  "$_tests/MathTest.cpp",
+  "$_tests/Matrix44Test.cpp",
+  "$_tests/MatrixClipCollapseTest.cpp",
+  "$_tests/MatrixTest.cpp",
+  "$_tests/MD5Test.cpp",
+  "$_tests/MemoryTest.cpp",
+  "$_tests/MemsetTest.cpp",
+  "$_tests/MessageBusTest.cpp",
+  "$_tests/MetaDataTest.cpp",
+  "$_tests/MipMapTest.cpp",
+  "$_tests/OnceTest.cpp",
+  "$_tests/OSPathTest.cpp",
+  "$_tests/OverAlignedTest.cpp",
+  "$_tests/PackBitsTest.cpp",
+  "$_tests/PackedConfigsTextureTest.cpp",
+  "$_tests/PaintBreakTextTest.cpp",
+  "$_tests/PaintImageFilterTest.cpp",
+  "$_tests/PaintTest.cpp",
+  "$_tests/ParsePathTest.cpp",
+  "$_tests/PathCoverageTest.cpp",
+  "$_tests/PathMeasureTest.cpp",
+  "$_tests/PathTest.cpp",
+  "$_tests/PDFDeflateWStreamTest.cpp",
+  "$_tests/PDFDocumentTest.cpp",
+  "$_tests/PDFGlyphsToUnicodeTest.cpp",
+  "$_tests/PDFInvalidBitmapTest.cpp",
+  "$_tests/PDFJpegEmbedTest.cpp",
+  "$_tests/PDFMetadataAttributeTest.cpp",
+  "$_tests/PDFOpaqueSrcModeToSrcOverTest.cpp",
+  "$_tests/PDFPrimitivesTest.cpp",
+  "$_tests/PictureBBHTest.cpp",
+  "$_tests/PictureShaderTest.cpp",
+  "$_tests/PictureTest.cpp",
+  "$_tests/PipeTest.cpp",
+  "$_tests/PixelRefTest.cpp",
+  "$_tests/Point3Test.cpp",
+  "$_tests/PointTest.cpp",
+  "$_tests/PremulAlphaRoundTripTest.cpp",
+  "$_tests/PrimitiveProcessorTest.cpp",
+  "$_tests/ProxyTest.cpp",
+  "$_tests/QuickRejectTest.cpp",
+  "$_tests/RandomTest.cpp",
+  "$_tests/Reader32Test.cpp",
+  "$_tests/ReadPixelsTest.cpp",
+  "$_tests/ReadWriteAlphaTest.cpp",
+  "$_tests/RecordDrawTest.cpp",
+  "$_tests/RecorderTest.cpp",
+  "$_tests/RecordingXfermodeTest.cpp",
+  "$_tests/RecordOptsTest.cpp",
+  "$_tests/RecordPatternTest.cpp",
+  "$_tests/RecordTest.cpp",
+  "$_tests/RectangleTextureTest.cpp",
+  "$_tests/RectTest.cpp",
+  "$_tests/RefCntTest.cpp",
+  "$_tests/RefDictTest.cpp",
+  "$_tests/RegionTest.cpp",
+  "$_tests/ResourceCacheTest.cpp",
+  "$_tests/RoundRectTest.cpp",
+  "$_tests/RRectInPathTest.cpp",
+  "$_tests/RTreeTest.cpp",
+  "$_tests/ScalarTest.cpp",
+  "$_tests/ScaleToSidesTest.cpp",
+  "$_tests/SerializationTest.cpp",
+  "$_tests/ShaderOpacityTest.cpp",
+  "$_tests/ShaderTest.cpp",
+  "$_tests/SizeTest.cpp",
+  "$_tests/Sk4x4fTest.cpp",
+  "$_tests/SkBase64Test.cpp",
+  "$_tests/SkBlend_optsTest.cpp",
+  "$_tests/skbug5221.cpp",
+  "$_tests/SkColor4fTest.cpp",
+  "$_tests/SkDOMTest.cpp",
+  "$_tests/SkImageTest.cpp",
+  "$_tests/SkLinearBitmapPipelineTest.cpp",
+  "$_tests/SkLiteDLTest.cpp",
+  "$_tests/SkNxTest.cpp",
+  "$_tests/SkPEGTest.cpp",
+  "$_tests/SkRasterPipelineTest.cpp",
+  "$_tests/SkResourceCacheTest.cpp",
+  "$_tests/SkSharedMutexTest.cpp",
+  "$_tests/SkSLErrorTest.cpp",
+  "$_tests/SkSLGLSLTest.cpp",
+  "$_tests/SmallAllocatorTest.cpp",
+  "$_tests/SortTest.cpp",
+  "$_tests/SpecialImageTest.cpp",
+  "$_tests/SpecialSurfaceTest.cpp",
+  "$_tests/SrcOverTest.cpp",
+  "$_tests/SRGBMipMapTest.cpp",
+  "$_tests/SRGBReadWritePixelsTest.cpp",
+  "$_tests/SRGBTest.cpp",
+  "$_tests/StreamTest.cpp",
+  "$_tests/StringTest.cpp",
+  "$_tests/StrokerTest.cpp",
+  "$_tests/StrokeTest.cpp",
+  "$_tests/SubsetPath.cpp",
+  "$_tests/SurfaceTest.cpp",
+  "$_tests/SVGDeviceTest.cpp",
+  "$_tests/SwizzlerTest.cpp",
+  "$_tests/TArrayTest.cpp",
+  "$_tests/TDPQueueTest.cpp",
+  "$_tests/TemplatesTest.cpp",
+  "$_tests/TessellatingPathRendererTests.cpp",
+  "$_tests/Test.cpp",
+  "$_tests/TestConfigParsing.cpp",
+  "$_tests/TestTest.cpp",
+  "$_tests/TextBlobCacheTest.cpp",
+  "$_tests/TextBlobTest.cpp",
+  "$_tests/TextureCompressionTest.cpp",
+  "$_tests/Time.cpp",
+  "$_tests/TLSTest.cpp",
+  "$_tests/TopoSortTest.cpp",
+  "$_tests/TraceMemoryDumpTest.cpp",
+  "$_tests/TracingTest.cpp",
+  "$_tests/TypefaceTest.cpp",
+  "$_tests/UnicodeTest.cpp",
+  "$_tests/UtilsTest.cpp",
+  "$_tests/VarAllocTest.cpp",
+  "$_tests/VkClearTests.cpp",
+  "$_tests/VkHeapTests.cpp",
+  "$_tests/VkUploadPixelsTests.cpp",
+  "$_tests/VkWrapTests.cpp",
+  "$_tests/WindowRectanglesTest.cpp",
+  "$_tests/WritePixelsTest.cpp",
+  "$_tests/Writer32Test.cpp",
+  "$_tests/XfermodeTest.cpp",
+  "$_tests/YUVCacheTest.cpp",
+  "$_tests/YUVTest.cpp",
+]
+
+pathops_tests_sources = [
+  "$_tests/PathOpsAngleIdeas.cpp",
+  "$_tests/PathOpsAngleTest.cpp",
+  "$_tests/PathOpsBattles.cpp",
+  "$_tests/PathOpsBoundsTest.cpp",
+  "$_tests/PathOpsBuilderConicTest.cpp",
+  "$_tests/PathOpsBuilderTest.cpp",
+  "$_tests/PathOpsBuildUseTest.cpp",
+  "$_tests/PathOpsChalkboardTest.cpp",
+  "$_tests/PathOpsConicIntersectionTest.cpp",
+  "$_tests/PathOpsConicLineIntersectionTest.cpp",
+  "$_tests/PathOpsConicQuadIntersectionTest.cpp",
+  "$_tests/PathOpsCubicConicIntersectionTest.cpp",
+  "$_tests/PathOpsCubicIntersectionTest.cpp",
+  "$_tests/PathOpsCubicIntersectionTestData.cpp",
+  "$_tests/PathOpsCubicLineIntersectionIdeas.cpp",
+  "$_tests/PathOpsCubicLineIntersectionTest.cpp",
+  "$_tests/PathOpsCubicQuadIntersectionTest.cpp",
+  "$_tests/PathOpsCubicReduceOrderTest.cpp",
+  "$_tests/PathOpsDCubicTest.cpp",
+  "$_tests/PathOpsDebug.cpp",
+  "$_tests/PathOpsDLineTest.cpp",
+  "$_tests/PathOpsDPointTest.cpp",
+  "$_tests/PathOpsDRectTest.cpp",
+  "$_tests/PathOpsDVectorTest.cpp",
+  "$_tests/PathOpsExtendedTest.cpp",
+  "$_tests/PathOpsFuzz763Test.cpp",
+  "$_tests/PathOpsInverseTest.cpp",
+  "$_tests/PathOpsIssue3651.cpp",
+  "$_tests/PathOpsLineIntersectionTest.cpp",
+  "$_tests/PathOpsLineParametetersTest.cpp",
+  "$_tests/PathOpsOpCircleThreadedTest.cpp",
+  "$_tests/PathOpsOpCubicThreadedTest.cpp",
+  "$_tests/PathOpsOpLoopThreadedTest.cpp",
+  "$_tests/PathOpsOpRectThreadedTest.cpp",
+  "$_tests/PathOpsOpTest.cpp",
+  "$_tests/PathOpsQuadIntersectionTest.cpp",
+  "$_tests/PathOpsQuadIntersectionTestData.cpp",
+  "$_tests/PathOpsQuadLineIntersectionTest.cpp",
+  "$_tests/PathOpsQuadLineIntersectionThreadedTest.cpp",
+  "$_tests/PathOpsQuadReduceOrderTest.cpp",
+  "$_tests/PathOpsSimplifyDegenerateThreadedTest.cpp",
+  "$_tests/PathOpsSimplifyFailTest.cpp",
+  "$_tests/PathOpsSimplifyQuadralateralsThreadedTest.cpp",
+  "$_tests/PathOpsSimplifyQuadThreadedTest.cpp",
+  "$_tests/PathOpsSimplifyRectThreadedTest.cpp",
+  "$_tests/PathOpsSimplifyTest.cpp",
+  "$_tests/PathOpsSimplifyTrianglesThreadedTest.cpp",
+  "$_tests/PathOpsSkpTest.cpp",
+  "$_tests/PathOpsTestCommon.cpp",
+  "$_tests/PathOpsThreadedCommon.cpp",
+  "$_tests/PathOpsThreeWayTest.cpp",
+  "$_tests/PathOpsTigerTest.cpp",
+  "$_tests/PathOpsTightBoundsTest.cpp",
+  "$_tests/PathOpsTypesTest.cpp",
+]