Create .gni files for samples, tests, gms, and benches.

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>
diff --git a/gn/gm.gni b/gn/gm.gni
new file mode 100644
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",
+]