split skia.gyp into separate gypfile for each source dir
see http://codereview.appspot.com/4527084/

Now, to build out/Debug/SampleApp on Linux, do the following:

cd trunk/gyp
rm -rf Makefile *mk *.Makefile out
./gyp_skia -fmake --ignore-environment "--toplevel-dir=$PWD" \
  -Icommon.gypi "--depth=$PWD" SampleApp.gyp
make



git-svn-id: http://skia.googlecode.com/svn/trunk/gyp@1446 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/SampleApp.gyp b/SampleApp.gyp
new file mode 100644
index 0000000..24f9963
--- /dev/null
+++ b/SampleApp.gyp
@@ -0,0 +1,169 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'SampleApp',
+      'type': 'executable',
+      'mac_bundle' : 1,
+      'include_dirs' : [
+        '../src/core', # needed to get SkConcaveToTriangle, maybe this should be moved to include dir?
+        '../gm',       # SampleGM.cpp pulls gm.h
+      ],
+      'sources': [
+        # gm files needed for SampleGM.cpp
+        '../gm/bitmapfilters.cpp',
+        '../gm/blurs.cpp',
+        '../gm/complexclip.cpp',
+        '../gm/filltypes.cpp',
+        '../gm/gm.h',
+        '../gm/gradients.cpp',
+        '../gm/nocolorbleed.cpp',
+        '../gm/points.cpp',
+        '../gm/poly2poly.cpp',
+        '../gm/shadertext.cpp',
+        '../gm/shadows.cpp',
+        '../gm/shapes.cpp',
+        '../gm/tilemodes.cpp',
+        '../gm/xfermodes.cpp',
+
+        '../samplecode/ClockFaceView.cpp',
+        '../samplecode/OverView.cpp',
+        '../samplecode/SampleAll.cpp',
+        '../samplecode/SampleAnimator.cpp',
+        '../samplecode/SampleApp.cpp',
+        '../samplecode/SampleArc.cpp',
+        '../samplecode/SampleAvoid.cpp',
+        '../samplecode/SampleBigGradient.cpp',
+        '../samplecode/SampleBitmapRect.cpp',
+        '../samplecode/SampleBlur.cpp',
+        '../samplecode/SampleCamera.cpp',
+        '../samplecode/SampleCircle.cpp',
+        '../samplecode/SampleCode.h',
+        '../samplecode/SampleColorFilter.cpp',
+        '../samplecode/SampleComplexClip.cpp',
+        '../samplecode/SampleCull.cpp',
+        '../samplecode/SampleDecode.cpp',
+        '../samplecode/SampleDither.cpp',
+        '../samplecode/SampleDitherBitmap.cpp',
+        '../samplecode/SampleDrawLooper.cpp',
+        '../samplecode/SampleEffects.cpp',
+        '../samplecode/SampleEmboss.cpp',
+        '../samplecode/SampleEncode.cpp',
+        '../samplecode/SampleExtractAlpha.cpp',
+        '../samplecode/SampleFillType.cpp',
+        '../samplecode/SampleFilter.cpp',
+        '../samplecode/SampleFilter2.cpp',
+        '../samplecode/SampleFontCache.cpp',
+        '../samplecode/SampleFontScalerTest.cpp',
+        '../samplecode/SampleFuzz.cpp',
+        '../samplecode/SampleGM.cpp',
+        '../samplecode/SampleGradients.cpp',
+        '../samplecode/SampleHairline.cpp',
+        '../samplecode/SampleImage.cpp',
+        '../samplecode/SampleImageDir.cpp',
+        '../samplecode/SampleLayerMask.cpp',
+        '../samplecode/SampleLayers.cpp',
+        '../samplecode/SampleLCD.cpp',
+        '../samplecode/SampleLineClipper.cpp',
+        '../samplecode/SampleLines.cpp',
+        '../samplecode/SampleMeasure.cpp',
+        '../samplecode/SampleMipMap.cpp',
+        '../samplecode/SampleMovie.cpp',
+        '../samplecode/SampleNinePatch.cpp',
+        '../samplecode/SampleOvalTest.cpp',
+        '../samplecode/SampleOverflow.cpp',
+        '../samplecode/SamplePageFlip.cpp',
+        '../samplecode/SamplePatch.cpp',
+        '../samplecode/SamplePath.cpp',
+        '../samplecode/SamplePathClip.cpp',
+        '../samplecode/SamplePathEffects.cpp',
+        '../samplecode/SamplePicture.cpp',
+        '../samplecode/SamplePoints.cpp',
+        '../samplecode/SamplePolyToPoly.cpp',
+        '../samplecode/SampleAARects.cpp',
+        '../samplecode/SampleRegion.cpp',
+        '../samplecode/SampleRepeatTile.cpp',
+        '../samplecode/SampleShaders.cpp',
+        '../samplecode/SampleShaderText.cpp',
+        '../samplecode/SampleShapes.cpp',
+        '../samplecode/SampleSkLayer.cpp',
+        '../samplecode/SampleSlides.cpp',
+        '../samplecode/SampleStrokePath.cpp',
+        '../samplecode/SampleStrokeText.cpp',
+        '../samplecode/SampleSVG.cpp',
+        '../samplecode/SampleTests.cpp',
+        '../samplecode/SampleText.cpp',
+        '../samplecode/SampleTextAlpha.cpp',
+        '../samplecode/SampleTextBox.cpp',
+        '../samplecode/SampleTextEffects.cpp',
+        '../samplecode/SampleTextOnPath.cpp',
+        '../samplecode/SampleTextureDomain.cpp',
+        '../samplecode/SampleTiling.cpp',
+        '../samplecode/SampleTinyBitmap.cpp',
+        '../samplecode/SampleTriangles.cpp',
+        '../samplecode/SampleTypeface.cpp',
+        '../samplecode/SampleUnitMapper.cpp',
+        '../samplecode/SampleVertices.cpp',
+        '../samplecode/SampleXfermodes.cpp',
+        '../samplecode/SampleXfermodesBlur.cpp',
+      ],
+      'sources!': [
+        '../samplecode/SampleSkLayer.cpp', #relies on SkMatrix44 which doesn't compile
+        '../samplecode/SampleTests.cpp',   #includes unknown file SkShaderExtras.h
+        '../samplecode/SampleWarp.cpp',
+        '../samplecode/SampleFontCache.cpp',
+      ],
+      'dependencies': [
+        'skia.gyp:skia',
+        'effects.gyp:effects',
+        'images.gyp:images',
+        'views.gyp:views',
+        'utils.gyp:utils',
+        'animator.gyp:animator',
+        'xml.gyp:xml',
+        'svg.gyp:svg',
+        'experimental.gyp:experimental',
+        'gpu.gyp:gr',
+        'gpu.gyp:skgr',
+      ],
+      'conditions' : [
+       [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+         'sources!': [
+            '../samplecode/SampleDecode.cpp',
+         ],
+        }],
+        [ 'OS == "win"', {
+          'sources!': [
+            # require UNIX functions
+            '../samplecode/SampleEncode.cpp',
+            '../samplecode/SamplePageFlip.cpp',
+          ],
+        }],
+        [ 'OS == "mac"', {
+          'sources!': [
+            '../samplecode/SampleDecode.cpp',
+          ],
+        }],
+
+      ],
+      'msvs_settings': {
+        'VCLinkerTool': {
+          'SubSystem': '2',
+          'AdditionalDependencies': [
+              'OpenGL32.lib',
+              'usp10.lib',
+              'd3d9.lib',
+          ],
+        },
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/animator.gyp b/animator.gyp
new file mode 100644
index 0000000..d0d54aa
--- /dev/null
+++ b/animator.gyp
@@ -0,0 +1,193 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'animator',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/effects',
+        '../include/animator',
+        '../include/views',
+        '../include/xml',
+        '../include/utils',
+        '../include/images',
+      ],
+      'sources': [
+        '../include/animator/SkAnimator.h',
+        '../include/animator/SkAnimatorView.h',
+
+        '../src/animator/SkAnimate.h',
+        '../src/animator/SkAnimateActive.cpp',
+        '../src/animator/SkAnimateActive.h',
+        '../src/animator/SkAnimateBase.cpp',
+        '../src/animator/SkAnimateBase.h',
+        '../src/animator/SkAnimateField.cpp',
+        '../src/animator/SkAnimateMaker.cpp',
+        '../src/animator/SkAnimateMaker.h',
+        '../src/animator/SkAnimateProperties.h',
+        '../src/animator/SkAnimateSet.cpp',
+        '../src/animator/SkAnimateSet.h',
+        '../src/animator/SkAnimator.cpp',
+        '../src/animator/SkAnimatorScript.cpp',
+        '../src/animator/SkAnimatorScript.h',
+        #'../src/animator/SkAnimatorScript2.cpp', fails on windows
+        #'../src/animator/SkAnimatorScript2.h',
+        '../src/animator/SkBase64.cpp',
+        '../src/animator/SkBase64.h',
+        '../src/animator/SkBoundable.cpp',
+        '../src/animator/SkBoundable.h',
+        '../src/animator/SkBuildCondensedInfo.cpp',
+        #'../src/animator/SkCondensedDebug.cpp', fails on windows
+        #'../src/animator/SkCondensedRelease.cpp',
+        '../src/animator/SkDisplayable.cpp',
+        '../src/animator/SkDisplayable.h',
+        '../src/animator/SkDisplayAdd.cpp',
+        '../src/animator/SkDisplayAdd.h',
+        '../src/animator/SkDisplayApply.cpp',
+        '../src/animator/SkDisplayApply.h',
+        '../src/animator/SkDisplayBounds.cpp',
+        '../src/animator/SkDisplayBounds.h',
+        '../src/animator/SkDisplayEvent.cpp',
+        '../src/animator/SkDisplayEvent.h',
+        '../src/animator/SkDisplayEvents.cpp',
+        '../src/animator/SkDisplayEvents.h',
+        '../src/animator/SkDisplayInclude.cpp',
+        '../src/animator/SkDisplayInclude.h',
+        '../src/animator/SkDisplayInput.cpp',
+        '../src/animator/SkDisplayInput.h',
+        '../src/animator/SkDisplayList.cpp',
+        '../src/animator/SkDisplayList.h',
+        '../src/animator/SkDisplayMath.cpp',
+        '../src/animator/SkDisplayMath.h',
+        '../src/animator/SkDisplayMovie.cpp',
+        '../src/animator/SkDisplayMovie.h',
+        '../src/animator/SkDisplayNumber.cpp',
+        '../src/animator/SkDisplayNumber.h',
+        '../src/animator/SkDisplayPost.cpp',
+        '../src/animator/SkDisplayPost.h',
+        '../src/animator/SkDisplayRandom.cpp',
+        '../src/animator/SkDisplayRandom.h',
+        '../src/animator/SkDisplayScreenplay.cpp',
+        '../src/animator/SkDisplayScreenplay.h',
+        '../src/animator/SkDisplayType.cpp',
+        '../src/animator/SkDisplayType.h',
+        '../src/animator/SkDisplayTypes.cpp',
+        '../src/animator/SkDisplayTypes.h',
+        '../src/animator/SkDisplayXMLParser.cpp',
+        '../src/animator/SkDisplayXMLParser.h',
+        '../src/animator/SkDraw3D.cpp',
+        '../src/animator/SkDraw3D.h',
+        '../src/animator/SkDrawable.cpp',
+        '../src/animator/SkDrawable.h',
+        '../src/animator/SkDrawBitmap.cpp',
+        '../src/animator/SkDrawBitmap.h',
+        '../src/animator/SkDrawBlur.cpp',
+        '../src/animator/SkDrawBlur.h',
+        '../src/animator/SkDrawClip.cpp',
+        '../src/animator/SkDrawClip.h',
+        '../src/animator/SkDrawColor.cpp',
+        '../src/animator/SkDrawColor.h',
+        '../src/animator/SkDrawDash.cpp',
+        '../src/animator/SkDrawDash.h',
+        '../src/animator/SkDrawDiscrete.cpp',
+        '../src/animator/SkDrawDiscrete.h',
+        '../src/animator/SkDrawEmboss.cpp',
+        '../src/animator/SkDrawEmboss.h',
+        '../src/animator/SkDrawExtraPathEffect.cpp',
+        '../src/animator/SkDrawFull.cpp',
+        '../src/animator/SkDrawFull.h',
+        '../src/animator/SkDrawGradient.cpp',
+        '../src/animator/SkDrawGradient.h',
+        '../src/animator/SkDrawGroup.cpp',
+        '../src/animator/SkDrawGroup.h',
+        '../src/animator/SkDrawLine.cpp',
+        '../src/animator/SkDrawLine.h',
+        '../src/animator/SkDrawMatrix.cpp',
+        '../src/animator/SkDrawMatrix.h',
+        '../src/animator/SkDrawOval.cpp',
+        '../src/animator/SkDrawOval.h',
+        '../src/animator/SkDrawPaint.cpp',
+        '../src/animator/SkDrawPaint.h',
+        '../src/animator/SkDrawPath.cpp',
+        '../src/animator/SkDrawPath.h',
+        '../src/animator/SkDrawPoint.cpp',
+        '../src/animator/SkDrawPoint.h',
+        '../src/animator/SkDrawRectangle.cpp',
+        '../src/animator/SkDrawRectangle.h',
+        '../src/animator/SkDrawSaveLayer.cpp',
+        '../src/animator/SkDrawSaveLayer.h',
+        '../src/animator/SkDrawShader.cpp',
+        '../src/animator/SkDrawShader.h',
+        '../src/animator/SkDrawText.cpp',
+        '../src/animator/SkDrawText.h',
+        '../src/animator/SkDrawTextBox.cpp',
+        '../src/animator/SkDrawTextBox.h',
+        '../src/animator/SkDrawTo.cpp',
+        '../src/animator/SkDrawTo.h',
+        '../src/animator/SkDrawTransparentShader.cpp',
+        '../src/animator/SkDrawTransparentShader.h',
+        '../src/animator/SkDump.cpp',
+        '../src/animator/SkDump.h',
+        '../src/animator/SkExtras.h',
+        '../src/animator/SkGetCondensedInfo.cpp',
+        '../src/animator/SkHitClear.cpp',
+        '../src/animator/SkHitClear.h',
+        '../src/animator/SkHitTest.cpp',
+        '../src/animator/SkHitTest.h',
+        '../src/animator/SkIntArray.h',
+        '../src/animator/SkMatrixParts.cpp',
+        '../src/animator/SkMatrixParts.h',
+        '../src/animator/SkMemberInfo.cpp',
+        '../src/animator/SkMemberInfo.h',
+        '../src/animator/SkOpArray.cpp',
+        '../src/animator/SkOpArray.h',
+        '../src/animator/SkOperand.h',
+        '../src/animator/SkOperand2.h',
+        '../src/animator/SkOperandInterpolator.h',
+        '../src/animator/SkOperandIterpolator.cpp',
+        '../src/animator/SkPaintParts.cpp',
+        '../src/animator/SkPaintParts.h',
+        '../src/animator/SkParseSVGPath.cpp',
+        '../src/animator/SkPathParts.cpp',
+        '../src/animator/SkPathParts.h',
+        '../src/animator/SkPostParts.cpp',
+        '../src/animator/SkPostParts.h',
+        '../src/animator/SkScript.cpp',
+        '../src/animator/SkScript.h',
+        '../src/animator/SkScript2.h',
+        '../src/animator/SkScriptCallBack.h',
+        '../src/animator/SkScriptDecompile.cpp',
+        '../src/animator/SkScriptRuntime.cpp',
+        '../src/animator/SkScriptRuntime.h',
+        '../src/animator/SkScriptTokenizer.cpp',
+        '../src/animator/SkSnapshot.cpp',
+        '../src/animator/SkSnapshot.h',
+        '../src/animator/SkTDArray_Experimental.h',
+        '../src/animator/SkTextOnPath.cpp',
+        '../src/animator/SkTextOnPath.h',
+        '../src/animator/SkTextToPath.cpp',
+        '../src/animator/SkTextToPath.h',
+        '../src/animator/SkTime.cpp',
+        '../src/animator/SkTypedArray.cpp',
+        '../src/animator/SkTypedArray.h',
+        '../src/animator/SkXMLAnimatorWriter.cpp',
+        '../src/animator/SkXMLAnimatorWriter.h',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/animator',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/effects.gyp b/effects.gyp
new file mode 100644
index 0000000..6db77b5
--- /dev/null
+++ b/effects.gyp
@@ -0,0 +1,83 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'effects',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/effects',
+      ],
+      'sources': [
+        '../include/effects/Sk1DPathEffect.h',
+        '../include/effects/Sk2DPathEffect.h',
+        '../include/effects/SkAvoidXfermode.h',
+        '../include/effects/SkBlurDrawLooper.h',
+        '../include/effects/SkBlurMaskFilter.h',
+        '../include/effects/SkColorMatrix.h',
+        '../include/effects/SkColorMatrixFilter.h',
+        '../include/effects/SkCornerPathEffect.h',
+        '../include/effects/SkDashPathEffect.h',
+        '../include/effects/SkDiscretePathEffect.h',
+        '../include/effects/SkDrawExtraPathEffect.h',
+        '../include/effects/SkEmbossMaskFilter.h',
+        '../include/effects/SkGradientShader.h',
+        '../include/effects/SkGroupShape.h',
+        '../include/effects/SkKernel33MaskFilter.h',
+        '../include/effects/SkLayerDrawLooper.h',
+        '../include/effects/SkLayerRasterizer.h',
+        '../include/effects/SkPaintFlagsDrawFilter.h',
+        '../include/effects/SkPixelXorXfermode.h',
+        '../include/effects/SkPorterDuff.h',
+        '../include/effects/SkRectShape.h',
+        '../include/effects/SkTableMaskFilter.h',
+        '../include/effects/SkTransparentShader.h',
+
+        '../src/effects/Sk1DPathEffect.cpp',
+        '../src/effects/Sk2DPathEffect.cpp',
+        '../src/effects/SkAvoidXfermode.cpp',
+        '../src/effects/SkBitmapCache.cpp',
+        '../src/effects/SkBitmapCache.h',
+        '../src/effects/SkBlurDrawLooper.cpp',
+        '../src/effects/SkBlurMask.cpp',
+        '../src/effects/SkBlurMask.h',
+        '../src/effects/SkBlurMaskFilter.cpp',
+        '../src/effects/SkColorFilters.cpp',
+        '../src/effects/SkColorMatrixFilter.cpp',
+        '../src/effects/SkCornerPathEffect.cpp',
+        '../src/effects/SkDashPathEffect.cpp',
+        '../src/effects/SkDiscretePathEffect.cpp',
+        '../src/effects/SkEmbossMask.cpp',
+        '../src/effects/SkEmbossMask.h',
+        '../src/effects/SkEmbossMask_Table.h',
+        '../src/effects/SkEmbossMaskFilter.cpp',
+        '../src/effects/SkGradientShader.cpp',
+        '../src/effects/SkGroupShape.cpp',
+        '../src/effects/SkKernel33MaskFilter.cpp',
+        '../src/effects/SkLayerDrawLooper.cpp',
+        '../src/effects/SkLayerRasterizer.cpp',
+        '../src/effects/SkPaintFlagsDrawFilter.cpp',
+        '../src/effects/SkPixelXorXfermode.cpp',
+        '../src/effects/SkPorterDuff.cpp',
+        '../src/effects/SkRadialGradient_Table.h',
+        '../src/effects/SkRectShape.cpp',
+        '../src/effects/SkTableMaskFilter.cpp',
+        '../src/effects/SkTransparentShader.cpp',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/effects',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/experimental.gyp b/experimental.gyp
new file mode 100644
index 0000000..50e60e8
--- /dev/null
+++ b/experimental.gyp
@@ -0,0 +1,37 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'experimental',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+      ],
+      'sources': [
+        '../experimental/SkMatrix44.cpp',
+        '../experimental/SkMatrix44.h',
+        '../experimental/SkSetPoly3To3.cpp',
+        '../experimental/SkSetPoly3To3_A.cpp',
+        '../experimental/SkSetPoly3To3_D.cpp',
+      ],
+      'sources!': [
+        '../experimental/SkMatrix44.cpp',  #doesn't compile
+        '../experimental/SkMatrix44.h',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../experimental',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/gpu.gyp b/gpu.gyp
new file mode 100644
index 0000000..bbfa460
--- /dev/null
+++ b/gpu.gyp
@@ -0,0 +1,285 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'skgr',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../src/core',
+        '../include/gpu',
+        '../gpu/include',
+      ],
+      'sources': [
+        '../include/gpu/SkGpuCanvas.h',
+        '../include/gpu/SkGpuDevice.h',
+        '../include/gpu/SkGpuDeviceFactory.h',
+        '../include/gpu/SkGr.h',
+        '../include/gpu/SkGrTexturePixelRef.h',
+
+        '../src/gpu/GrPrintf_skia.cpp',
+        '../src/gpu/SkGpuCanvas.cpp',
+        '../src/gpu/SkGpuDevice.cpp',
+        '../src/gpu/SkGr.cpp',
+        '../src/gpu/SkGrFontScaler.cpp',
+        '../src/gpu/SkGrTexturePixelRef.cpp',
+      ],
+      'conditions': [
+          [ 'OS == "linux"', {
+          'defines': [
+              'GR_LINUX_BUILD=1',
+          ],
+          }],
+          [ 'OS == "mac"', {
+          'defines': [
+              'GR_MAC_BUILD=1',
+          ],
+          }],
+          [ 'OS == "win"', {
+          'defines': [
+              'GR_WIN32_BUILD=1',
+          ],
+          }],
+      ],
+      'direct_dependent_settings': {
+        'conditions': [
+          [ 'OS == "linux"', {
+            'defines': [
+              'GR_LINUX_BUILD=1',
+            ],
+          }],
+          [ 'OS == "mac"', {
+            'defines': [
+              'GR_MAC_BUILD=1',
+            ],
+          }],
+          [ 'OS == "win"', {
+            'defines': [
+              'GR_WIN32_BUILD=1',
+            ],
+          }],
+        ],
+        'include_dirs': [
+          '../include/gpu',
+        ],
+      },
+    },
+    {
+      'target_name': 'gr',
+      'type': 'static_library',
+      'include_dirs': [
+        '../gpu/include',
+        '../include/core',
+        '../include/config',
+      ],
+      'dependencies': [
+        'libtess.gyp:libtess',
+      ],
+      'sources': [
+        '../gpu/include/GrAllocator.h',
+        '../gpu/include/GrAllocPool.h',
+        '../gpu/include/GrAtlas.h',
+        '../gpu/include/GrClip.h',
+        '../gpu/include/GrClipIterator.h',
+        '../gpu/include/GrColor.h',
+        '../gpu/include/GrConfig.h',
+        '../gpu/include/GrContext.h',
+        '../gpu/include/GrContext_impl.h',
+        '../gpu/include/GrDrawTarget.h',
+        '../gpu/include/GrFontScaler.h',
+        '../gpu/include/GrGeometryBuffer.h',
+        '../gpu/include/GrGLConfig.h',
+        '../gpu/include/GrGLConfig_chrome.h',
+        '../gpu/include/GrGLIndexBuffer.h',
+        '../gpu/include/GrGLInterface.h',
+        '../gpu/include/GrGLIRect.h',
+        '../gpu/include/GrGLTexture.h',
+        '../gpu/include/GrGLVertexBuffer.h',
+        '../gpu/include/GrGlyph.h',
+        '../gpu/include/GrGpu.h',
+        '../gpu/include/GrGpuVertex.h',
+        '../gpu/include/GrIndexBuffer.h',
+        '../gpu/include/GrInOrderDrawBuffer.h',
+        '../gpu/include/GrInstanceCounter.h',
+        '../gpu/include/GrIPoint.h',
+        '../gpu/include/GrKey.h',
+        '../gpu/include/GrMatrix.h',
+        '../gpu/include/GrMemory.h',
+        '../gpu/include/GrMesh.h',
+        '../gpu/include/GrNoncopyable.h',
+        '../gpu/include/GrPaint.h',
+        '../gpu/include/GrPath.h',
+        '../gpu/include/GrPathRenderer.h',
+        '../gpu/include/GrPathSink.h',
+        '../gpu/include/GrPlotMgr.h',
+        '../gpu/include/GrPoint.h',
+        '../gpu/include/GrRandom.h',
+        '../gpu/include/GrRect.h',
+        '../gpu/include/GrRectanizer.h',
+        '../gpu/include/GrRefCnt.h',
+        '../gpu/include/GrResource.h',
+        '../gpu/include/GrSamplerState.h',
+        '../gpu/include/GrScalar.h',
+        '../gpu/include/GrStencil.h',
+        '../gpu/include/GrStopwatch.h',
+        '../gpu/include/GrStringBuilder.h',
+        '../gpu/include/GrTArray.h',
+        '../gpu/include/GrTBSearch.h',
+        '../gpu/include/GrTDArray.h',
+        '../gpu/include/GrTesselatedPathRenderer.h',
+        '../gpu/include/GrTextContext.h',
+        '../gpu/include/GrTextStrike.h',
+        '../gpu/include/GrTexture.h',
+        '../gpu/include/GrTextureCache.h',
+        '../gpu/include/GrTHashCache.h',
+        '../gpu/include/GrTLList.h',
+        '../gpu/include/GrTouchGesture.h',
+        '../gpu/include/GrTypes.h',
+        '../gpu/include/GrUserConfig.h',
+        '../gpu/include/GrVertexBuffer.h',
+
+        '../gpu/src/GrAllocPool.cpp',
+        '../gpu/src/GrAtlas.cpp',
+        '../gpu/src/GrBinHashKey.h',
+        '../gpu/src/GrBufferAllocPool.cpp',
+        '../gpu/src/GrBufferAllocPool.h',
+        '../gpu/src/GrClip.cpp',
+        '../gpu/src/GrContext.cpp',
+        '../gpu/src/GrCreatePathRenderer_none.cpp',
+        '../gpu/src/GrDrawTarget.cpp',
+        '../gpu/src/GrGLDefaultInterface_none.cpp',
+        '../gpu/src/GrGLIndexBuffer.cpp',
+        '../gpu/src/GrGLInterface.cpp',
+        '../gpu/src/GrGLProgram.cpp',
+        '../gpu/src/GrGLProgram.h',
+        '../gpu/src/GrGLTexture.cpp',
+        '../gpu/src/GrGLUtil.cpp',
+        '../gpu/src/GrGLVertexBuffer.cpp',
+        '../gpu/src/GrGpu.cpp',
+        '../gpu/src/GrGpuFactory.cpp',
+        '../gpu/src/GrGpuGL.cpp',
+        '../gpu/src/GrGpuGL.h',
+        '../gpu/src/GrGpuGLFixed.cpp',
+        '../gpu/src/GrGpuGLFixed.h',
+        '../gpu/src/GrGpuGLShaders.cpp',
+        '../gpu/src/GrGpuGLShaders.h',
+        '../gpu/src/GrInOrderDrawBuffer.cpp',
+        '../gpu/src/GrMatrix.cpp',
+        '../gpu/src/GrMemory.cpp',
+        '../gpu/src/GrPathRenderer.cpp',
+        '../gpu/src/GrPathUtils.cpp',
+        '../gpu/src/GrPathUtils.h',
+        '../gpu/src/GrRectanizer.cpp',
+        '../gpu/src/GrRedBlackTree.h',
+        '../gpu/src/GrResource.cpp',
+        '../gpu/src/GrStencil.cpp',
+        '../gpu/src/GrTesselatedPathRenderer.cpp',
+        '../gpu/src/GrTextContext.cpp',
+        '../gpu/src/GrTextStrike.cpp',
+        '../gpu/src/GrTextStrike_impl.h',
+        '../gpu/src/GrTexture.cpp',
+        '../gpu/src/GrTextureCache.cpp',
+        '../gpu/src/gr_unittests.cpp',
+
+        '../gpu/src/mac/GrGLDefaultInterface_mac.cpp',
+
+        '../gpu/src/win/GrGLDefaultInterface_win.cpp',
+
+        '../gpu/src/unix/GrGLDefaultInterface_unix.cpp',
+
+        '../gpu/src/mesa/GrGLDefaultInterface_mesa.cpp',
+      ],
+      'sources!': [
+        '../gpu/src/mesa/GrGLDefaultInterface_mesa.cpp',
+      ],
+      'defines': [
+        'GR_IMPLEMENTATION=1',
+      ],
+      'conditions': [
+        [ 'OS == "linux"', {
+          'defines': [
+              'GR_LINUX_BUILD=1',
+          ],
+          'sources!': [
+            '../gpu/src/GrGLDefaultInterface_none.cpp',
+          ],
+          'link_settings': {
+            'libraries': [
+              '-lGL',
+              '-lX11',
+            ],
+          },
+        }],
+        [ 'OS == "mac"', {
+          'defines': [
+              'GR_MAC_BUILD=1',
+          ],
+          'link_settings': {
+            'libraries': [
+              '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+            ],
+          },
+          'sources!': [
+            '../gpu/src/GrGLDefaultInterface_none.cpp',
+          ],
+          }],
+        [ 'OS == "win"', {
+          'defines': [
+            'GR_WIN32_BUILD=1',
+            'GR_GL_FUNCTION_TYPE=__stdcall',
+          ],
+          'sources!': [
+            '../gpu/src/GrGLDefaultInterface_none.cpp',
+          ],
+        }],
+        [ 'OS != "win"', {
+          'sources!': [
+            '../gpu/src/win/GrGLDefaultInterface_win.cpp',
+          ],
+        }],
+        [ 'OS != "mac"', {
+          'sources!': [
+            '../gpu/src/mac/GrGLDefaultInterface_mac.cpp',
+          ],
+        }],
+        [ 'OS != "linux"', {
+          'sources!': [
+            '../gpu/src/unix/GrGLDefaultInterface_unix.cpp',
+          ],
+        }],
+      ],
+      'direct_dependent_settings': {
+        'conditions': [
+          [ 'OS == "linux"', {
+            'defines': [
+              'GR_LINUX_BUILD=1',
+            ],
+          }],
+          [ 'OS == "mac"', {
+            'defines': [
+              'GR_MAC_BUILD=1',
+            ],
+          }],
+          [ 'OS == "win"', {
+            'defines': [
+              'GR_WIN32_BUILD=1',
+              'GR_GL_FUNCTION_TYPE=__stdcall',
+            ],
+          }],
+        ],
+        'include_dirs': [
+          '../gpu/include',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/images.gyp b/images.gyp
new file mode 100644
index 0000000..dd91501
--- /dev/null
+++ b/images.gyp
@@ -0,0 +1,104 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'images',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/images',
+      ],
+      'sources': [
+        '../include/images/SkFlipPixelRef.h',
+        '../include/images/SkImageDecoder.h',
+        '../include/images/SkImageEncoder.h',
+        '../include/images/SkImageRef.h',
+        '../include/images/SkImageRef_GlobalPool.h',
+        '../include/images/SkJpegUtility.h',
+        '../include/images/SkMovie.h',
+        '../include/images/SkPageFlipper.h',
+
+        '../src/images/bmpdecoderhelper.cpp',
+        '../src/images/bmpdecoderhelper.h',
+        '../src/images/SkBitmap_RLEPixels.h',
+        '../src/images/SkCreateRLEPixelRef.cpp',
+        '../src/images/SkFDStream.cpp',
+        '../src/images/SkFlipPixelRef.cpp',
+        '../src/images/SkImageDecoder.cpp',
+        '../src/images/SkImageDecoder_Factory.cpp',
+        '../src/images/SkImageDecoder_libbmp.cpp',
+        '../src/images/SkImageDecoder_libgif.cpp',
+        '../src/images/SkImageDecoder_libico.cpp',
+        '../src/images/SkImageDecoder_libjpeg.cpp',
+        '../src/images/SkImageDecoder_libpng.cpp',
+        '../src/images/SkImageDecoder_libpvjpeg.c',
+        '../src/images/SkImageDecoder_wbmp.cpp',
+        '../src/images/SkImageEncoder.cpp',
+        '../src/images/SkImageEncoder_Factory.cpp',
+        '../src/images/SkImageRef.cpp',
+        '../src/images/SkImageRefPool.cpp',
+        '../src/images/SkImageRefPool.h',
+        '../src/images/SkImageRef_GlobalPool.cpp',
+        '../src/images/SkJpegUtility.cpp',
+        '../src/images/SkMovie.cpp',
+        '../src/images/SkMovie_gif.cpp',
+        '../src/images/SkPageFlipper.cpp',
+        '../src/images/SkScaledBitmapSampler.cpp',
+        '../src/images/SkScaledBitmapSampler.h',
+      ],
+      'conditions': [
+        [ 'OS == "win"', {
+          'sources!': [
+            '../include/images/SkJpegUtility.h',
+
+            '../src/images/SkFDStream.cpp',
+            '../src/images/SkImageDecoder_libgif.cpp',
+            '../src/images/SkImageDecoder_libjpeg.cpp',
+            '../src/images/SkImageDecoder_libpng.cpp',
+            '../src/images/SkImageDecoder_libpvjpeg.c',
+            '../src/images/SkJpegUtility.cpp',
+            '../src/images/SkMovie_gif.cpp',
+          ],
+        }],
+        [ 'OS == "mac"', {
+          'sources!': [
+            '../include/images/SkJpegUtility.h',
+
+            '../src/images/SkImageDecoder_libgif.cpp',
+            '../src/images/SkImageDecoder_libjpeg.cpp',
+            '../src/images/SkImageDecoder_libpng.cpp',
+            '../src/images/SkImageDecoder_libpvjpeg.c',
+            '../src/images/SkJpegUtility.cpp',
+            '../src/images/SkMovie_gif.cpp',
+          ],
+        }],
+        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+          'sources!': [
+            '../include/images/SkJpegUtility.h',
+
+            '../src/images/SkImageDecoder_libjpeg.cpp',
+            '../src/images/SkImageDecoder_libgif.cpp',
+            '../src/images/SkImageDecoder_libpvjpeg.c',
+            '../src/images/SkJpegUtility.cpp',
+            '../src/images/SkMovie_gif.cpp',
+          ],
+        }],
+
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/images',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/libtess.gyp b/libtess.gyp
new file mode 100644
index 0000000..69e9ffd
--- /dev/null
+++ b/libtess.gyp
@@ -0,0 +1,52 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'libtess',
+      'type': 'static_library',
+      'include_dirs': [
+        '../third_party/glu',
+      ],
+      'sources': [
+        '../third_party/glu/internal_glu.h',
+        '../third_party/glu/gluos.h',
+        '../third_party/glu/libtess/dict-list.h',
+        '../third_party/glu/libtess/dict.c',
+        '../third_party/glu/libtess/dict.h',
+        '../third_party/glu/libtess/geom.c',
+        '../third_party/glu/libtess/geom.h',
+        '../third_party/glu/libtess/memalloc.c',
+        '../third_party/glu/libtess/memalloc.h',
+        '../third_party/glu/libtess/mesh.c',
+        '../third_party/glu/libtess/mesh.h',
+        '../third_party/glu/libtess/normal.c',
+        '../third_party/glu/libtess/normal.h',
+        '../third_party/glu/libtess/priorityq-heap.h',
+        '../third_party/glu/libtess/priorityq-sort.h',
+        '../third_party/glu/libtess/priorityq.c',
+        '../third_party/glu/libtess/priorityq.h',
+        '../third_party/glu/libtess/render.c',
+        '../third_party/glu/libtess/render.h',
+        '../third_party/glu/libtess/sweep.c',
+        '../third_party/glu/libtess/sweep.h',
+        '../third_party/glu/libtess/tess.c',
+        '../third_party/glu/libtess/tess.h',
+        '../third_party/glu/libtess/tessmono.c',
+        '../third_party/glu/libtess/tessmono.h',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../third_party/glu',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/opts.gyp b/opts.gyp
new file mode 100644
index 0000000..a93bf44
--- /dev/null
+++ b/opts.gyp
@@ -0,0 +1,52 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    # Due to an unfortunate intersection of lameness between gcc and gyp,
+    # we have to build the *_SSE2.cpp files in a separate target.  The
+    # gcc lameness is that, in order to compile SSE2 intrinsics code, it
+    # must be passed the -msse2 flag.  However, with this flag, it may
+    # emit SSE2 instructions even for scalar code, such as the CPUID
+    # test used to test for the presence of SSE2.  So that, and all other
+    # code must be compiled *without* -msse2.  The gyp lameness is that it
+    # does not allow file-specific CFLAGS, so we must create this extra
+    # target for those files to be compiled with -msse2.
+    #
+    # This is actually only a problem on 32-bit Linux (all Intel Macs have
+    # SSE2, Linux x86_64 has SSE2 by definition, and MSC will happily emit
+    # SSE2 from instrinsics, while generating plain ol' 386 for everything
+    # else).  However, to keep the .gyp file simple and avoid platform-specific
+    # build breakage, we do this on all platforms.
+
+    # For about the same reason, we need to compile the ARM opts files
+    # separately as well.
+    {
+      'target_name': 'opts',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../src/core',
+      ],
+      'conditions': [
+        [ '(OS == "linux" or OS == "freebsd" or OS == "openbsd")', {
+          'cflags': [
+            '-msse2',
+          ],
+        }],
+      ],
+      'sources': [
+        '../src/opts/SkBitmapProcState_opts_SSE2.cpp',
+        '../src/opts/SkBlitRow_opts_SSE2.cpp',
+        '../src/opts/SkUtils_opts_SSE2.cpp',
+      ],
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/pdf.gyp b/pdf.gyp
new file mode 100644
index 0000000..1ad3e05
--- /dev/null
+++ b/pdf.gyp
@@ -0,0 +1,55 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'pdf',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/pdf',
+        '../src/core', # needed to get SkGlyphCache.h and SkTextFormatParams.h
+      ],
+      'sources': [
+        '../include/pdf/SkPDFCatalog.h',
+        '../include/pdf/SkPDFDevice.h',
+        '../include/pdf/SkPDFDocument.h',
+        '../include/pdf/SkPDFFont.h',
+        '../include/pdf/SkPDFFormXObject.h',
+        '../include/pdf/SkPDFGraphicState.h',
+        '../include/pdf/SkPDFImage.h',
+        '../include/pdf/SkPDFPage.h',
+        '../include/pdf/SkPDFShader.h',
+        '../include/pdf/SkPDFStream.h',
+        '../include/pdf/SkPDFTypes.h',
+        '../include/pdf/SkPDFUtils.h',
+
+        '../src/pdf/SkPDFCatalog.cpp',
+        '../src/pdf/SkPDFDevice.cpp',
+        '../src/pdf/SkPDFDocument.cpp',
+        '../src/pdf/SkPDFFont.cpp',
+        '../src/pdf/SkPDFFormXObject.cpp',
+        '../src/pdf/SkPDFGraphicState.cpp',
+        '../src/pdf/SkPDFImage.cpp',
+        '../src/pdf/SkPDFPage.cpp',
+        '../src/pdf/SkPDFShader.cpp',
+        '../src/pdf/SkPDFStream.cpp',
+        '../src/pdf/SkPDFTypes.cpp',
+        '../src/pdf/SkPDFUtils.cpp',
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/pdf',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/skia.gyp b/skia.gyp
index 7bafbf7..c3cc4b4 100644
--- a/skia.gyp
+++ b/skia.gyp
@@ -1,58 +1,7 @@
 {
-  'target_defaults': {
-    'configurations': {
-      'Debug': {
-        'defines': [
-          'SK_DEBUG',
-          'GR_DEBUG=1',
-        ],
-      },
-      'Release': {
-        'defines': [
-          'SK_RELEASE',
-          'GR_RELEASE=1',
-        ],
-      },
-    },
-    'conditions': [
-      [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
-        'include_dirs' : [
-          '/usr/include/freetype2',
-        ],
-      }],
-      [ 'OS == "mac"', {
-        'defines': [
-          'SK_BUILD_FOR_MAC',
-        ],
-      }],
-      [ 'OS == "win"', {
-        'defines': [
-          'SK_BUILD_FOR_WIN32',
-          'SK_IGNORE_STDINT_DOT_H',
-        ],
-      }],
-      [ 'OS == "linux"', {
-        'defines': [
-          'SK_SAMPLES_FOR_X',
-          'SK_BUILD_FOR_UNIX',
-        ],
-      }],
-    ],
-    'direct_dependent_settings': {
-      'conditions': [
-        [ 'OS == "mac"', {
-          'defines': [
-            'SK_BUILD_FOR_MAC',
-          ],
-        }],
-        [ 'OS == "win"', {
-          'defines': [
-            'SK_BUILD_FOR_WIN32',
-          ],
-        }],
-      ],
-    },
-  },
+  'includes': [
+    'target_defaults.gypi',
+  ],
   'targets': [
     {
       'target_name': 'skia',
@@ -366,1235 +315,9 @@
         ],
       },
       'dependencies': [
-        'skia_opts'
+        'opts.gyp:opts'
       ],
     },
-
-    # Due to an unfortunate intersection of lameness between gcc and gyp,
-    # we have to build the *_SSE2.cpp files in a separate target.  The
-    # gcc lameness is that, in order to compile SSE2 intrinsics code, it
-    # must be passed the -msse2 flag.  However, with this flag, it may
-    # emit SSE2 instructions even for scalar code, such as the CPUID
-    # test used to test for the presence of SSE2.  So that, and all other
-    # code must be compiled *without* -msse2.  The gyp lameness is that it
-    # does not allow file-specific CFLAGS, so we must create this extra
-    # target for those files to be compiled with -msse2.
-    #
-    # This is actually only a problem on 32-bit Linux (all Intel Macs have
-    # SSE2, Linux x86_64 has SSE2 by definition, and MSC will happily emit
-    # SSE2 from instrinsics, while generating plain ol' 386 for everything
-    # else).  However, to keep the .gyp file simple and avoid platform-specific
-    # build breakage, we do this on all platforms.
-
-    # For about the same reason, we need to compile the ARM opts files
-    # separately as well.
-    {
-      'target_name': 'skia_opts',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../src/core',
-      ],
-      'conditions': [
-        [ '(OS == "linux" or OS == "freebsd" or OS == "openbsd")', {
-          'cflags': [
-            '-msse2',
-          ],
-        }],
-      ],
-      'sources': [
-        '../src/opts/SkBitmapProcState_opts_SSE2.cpp',
-        '../src/opts/SkBlitRow_opts_SSE2.cpp',
-        '../src/opts/SkUtils_opts_SSE2.cpp',
-      ],
-    },
-    {
-      'target_name': 'effects',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/effects',
-      ],
-      'sources': [
-        '../include/effects/Sk1DPathEffect.h',
-        '../include/effects/Sk2DPathEffect.h',
-        '../include/effects/SkAvoidXfermode.h',
-        '../include/effects/SkBlurDrawLooper.h',
-        '../include/effects/SkBlurMaskFilter.h',
-        '../include/effects/SkColorMatrix.h',
-        '../include/effects/SkColorMatrixFilter.h',
-        '../include/effects/SkCornerPathEffect.h',
-        '../include/effects/SkDashPathEffect.h',
-        '../include/effects/SkDiscretePathEffect.h',
-        '../include/effects/SkDrawExtraPathEffect.h',
-        '../include/effects/SkEmbossMaskFilter.h',
-        '../include/effects/SkGradientShader.h',
-        '../include/effects/SkGroupShape.h',
-        '../include/effects/SkKernel33MaskFilter.h',
-        '../include/effects/SkLayerDrawLooper.h',
-        '../include/effects/SkLayerRasterizer.h',
-        '../include/effects/SkPaintFlagsDrawFilter.h',
-        '../include/effects/SkPixelXorXfermode.h',
-        '../include/effects/SkPorterDuff.h',
-        '../include/effects/SkRectShape.h',
-        '../include/effects/SkTableMaskFilter.h',
-        '../include/effects/SkTransparentShader.h',
-
-        '../src/effects/Sk1DPathEffect.cpp',
-        '../src/effects/Sk2DPathEffect.cpp',
-        '../src/effects/SkAvoidXfermode.cpp',
-        '../src/effects/SkBitmapCache.cpp',
-        '../src/effects/SkBitmapCache.h',
-        '../src/effects/SkBlurDrawLooper.cpp',
-        '../src/effects/SkBlurMask.cpp',
-        '../src/effects/SkBlurMask.h',
-        '../src/effects/SkBlurMaskFilter.cpp',
-        '../src/effects/SkColorFilters.cpp',
-        '../src/effects/SkColorMatrixFilter.cpp',
-        '../src/effects/SkCornerPathEffect.cpp',
-        '../src/effects/SkDashPathEffect.cpp',
-        '../src/effects/SkDiscretePathEffect.cpp',
-        '../src/effects/SkEmbossMask.cpp',
-        '../src/effects/SkEmbossMask.h',
-        '../src/effects/SkEmbossMask_Table.h',
-        '../src/effects/SkEmbossMaskFilter.cpp',
-        '../src/effects/SkGradientShader.cpp',
-        '../src/effects/SkGroupShape.cpp',
-        '../src/effects/SkKernel33MaskFilter.cpp',
-        '../src/effects/SkLayerDrawLooper.cpp',
-        '../src/effects/SkLayerRasterizer.cpp',
-        '../src/effects/SkPaintFlagsDrawFilter.cpp',
-        '../src/effects/SkPixelXorXfermode.cpp',
-        '../src/effects/SkPorterDuff.cpp',
-        '../src/effects/SkRadialGradient_Table.h',
-        '../src/effects/SkRectShape.cpp',
-        '../src/effects/SkTableMaskFilter.cpp',
-        '../src/effects/SkTransparentShader.cpp',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/effects',
-        ],
-      },
-    },
-    {
-      'target_name': 'images',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/images',
-      ],
-      'sources': [
-        '../include/images/SkFlipPixelRef.h',
-        '../include/images/SkImageDecoder.h',
-        '../include/images/SkImageEncoder.h',
-        '../include/images/SkImageRef.h',
-        '../include/images/SkImageRef_GlobalPool.h',
-        '../include/images/SkJpegUtility.h',
-        '../include/images/SkMovie.h',
-        '../include/images/SkPageFlipper.h',
-
-        '../src/images/bmpdecoderhelper.cpp',
-        '../src/images/bmpdecoderhelper.h',
-        '../src/images/SkBitmap_RLEPixels.h',
-        '../src/images/SkCreateRLEPixelRef.cpp',
-        '../src/images/SkFDStream.cpp',
-        '../src/images/SkFlipPixelRef.cpp',
-        '../src/images/SkImageDecoder.cpp',
-        '../src/images/SkImageDecoder_Factory.cpp',
-        '../src/images/SkImageDecoder_libbmp.cpp',
-        '../src/images/SkImageDecoder_libgif.cpp',
-        '../src/images/SkImageDecoder_libico.cpp',
-        '../src/images/SkImageDecoder_libjpeg.cpp',
-        '../src/images/SkImageDecoder_libpng.cpp',
-        '../src/images/SkImageDecoder_libpvjpeg.c',
-        '../src/images/SkImageDecoder_wbmp.cpp',
-        '../src/images/SkImageEncoder.cpp',
-        '../src/images/SkImageEncoder_Factory.cpp',
-        '../src/images/SkImageRef.cpp',
-        '../src/images/SkImageRefPool.cpp',
-        '../src/images/SkImageRefPool.h',
-        '../src/images/SkImageRef_GlobalPool.cpp',
-        '../src/images/SkJpegUtility.cpp',
-        '../src/images/SkMovie.cpp',
-        '../src/images/SkMovie_gif.cpp',
-        '../src/images/SkPageFlipper.cpp',
-        '../src/images/SkScaledBitmapSampler.cpp',
-        '../src/images/SkScaledBitmapSampler.h',
-      ],
-      'conditions': [
-        [ 'OS == "win"', {
-          'sources!': [
-            '../include/images/SkJpegUtility.h',
-
-            '../src/images/SkFDStream.cpp',
-            '../src/images/SkImageDecoder_libgif.cpp',
-            '../src/images/SkImageDecoder_libjpeg.cpp',
-            '../src/images/SkImageDecoder_libpng.cpp',
-            '../src/images/SkImageDecoder_libpvjpeg.c',
-            '../src/images/SkJpegUtility.cpp',
-            '../src/images/SkMovie_gif.cpp',
-          ],
-        }],
-        [ 'OS == "mac"', {
-          'sources!': [
-            '../include/images/SkJpegUtility.h',
-
-            '../src/images/SkImageDecoder_libgif.cpp',
-            '../src/images/SkImageDecoder_libjpeg.cpp',
-            '../src/images/SkImageDecoder_libpng.cpp',
-            '../src/images/SkImageDecoder_libpvjpeg.c',
-            '../src/images/SkJpegUtility.cpp',
-            '../src/images/SkMovie_gif.cpp',
-          ],
-        }],
-        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
-          'sources!': [
-            '../include/images/SkJpegUtility.h',
-
-            '../src/images/SkImageDecoder_libjpeg.cpp',
-            '../src/images/SkImageDecoder_libgif.cpp',
-            '../src/images/SkImageDecoder_libpvjpeg.c',
-            '../src/images/SkJpegUtility.cpp',
-            '../src/images/SkMovie_gif.cpp',
-          ],
-        }],
-
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/images',
-        ],
-      },
-    },
-    {
-      'target_name': 'xml',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/xml',
-        '../include/utils',
-      ],
-      'sources': [
-        '../include/xml/SkBML_WXMLParser.h',
-        '../include/xml/SkBML_XMLParser.h',
-        '../include/xml/SkDOM.h',
-        '../include/xml/SkJS.h',
-        '../include/xml/SkXMLParser.h',
-        '../include/xml/SkXMLWriter.h',
-
-        '../src/xml/SkBML_Verbs.h',
-        '../src/xml/SkBML_XMLParser.cpp',
-        '../src/xml/SkDOM.cpp',
-        '../src/xml/SkJS.cpp',
-        '../src/xml/SkJSDisplayable.cpp',
-        '../src/xml/SkXMLParser.cpp',
-        '../src/xml/SkXMLPullParser.cpp',
-        '../src/xml/SkXMLWriter.cpp',
-      ],
-      'sources!': [
-          '../src/xml/SkXMLPullParser.cpp', #if 0 around class decl in header
-      ],
-      'conditions': [
-        [ 'OS == "win" or OS == "mac" or OS == "linux" or OS == "openbsd" or OS == "solaris"', {
-          'sources!': [
-            # no jsapi.h by default on system
-            '../include/xml/SkJS.h',
-            '../src/xml/SkJS.cpp',
-            '../src/xml/SkJSDisplayable.cpp',
-          ],
-        }],
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/xml',
-        ],
-      },
-    },
-    {
-      'target_name': 'pdf',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/pdf',
-        '../src/core', # needed to get SkGlyphCache.h and SkTextFormatParams.h
-      ],
-      'sources': [
-        '../include/pdf/SkPDFCatalog.h',
-        '../include/pdf/SkPDFDevice.h',
-        '../include/pdf/SkPDFDocument.h',
-        '../include/pdf/SkPDFFont.h',
-        '../include/pdf/SkPDFFormXObject.h',
-        '../include/pdf/SkPDFGraphicState.h',
-        '../include/pdf/SkPDFImage.h',
-        '../include/pdf/SkPDFPage.h',
-        '../include/pdf/SkPDFShader.h',
-        '../include/pdf/SkPDFStream.h',
-        '../include/pdf/SkPDFTypes.h',
-        '../include/pdf/SkPDFUtils.h',
-
-        '../src/pdf/SkPDFCatalog.cpp',
-        '../src/pdf/SkPDFDevice.cpp',
-        '../src/pdf/SkPDFDocument.cpp',
-        '../src/pdf/SkPDFFont.cpp',
-        '../src/pdf/SkPDFFormXObject.cpp',
-        '../src/pdf/SkPDFGraphicState.cpp',
-        '../src/pdf/SkPDFImage.cpp',
-        '../src/pdf/SkPDFPage.cpp',
-        '../src/pdf/SkPDFShader.cpp',
-        '../src/pdf/SkPDFStream.cpp',
-        '../src/pdf/SkPDFTypes.cpp',
-        '../src/pdf/SkPDFUtils.cpp',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/pdf',
-        ],
-      },
-    },
-    {
-      'target_name': 'utils',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/utils',
-        '../include/views',
-        '../include/effects',
-        '../include/xml',
-      ],
-      'sources': [
-        '../include/utils/SkBoundaryPatch.h',
-        '../include/utils/SkCamera.h',
-        '../include/utils/SkCubicInterval.h',
-        '../include/utils/SkCullPoints.h',
-        '../include/utils/SkDumpCanvas.h',
-        '../include/utils/SkEGLContext.h',
-        '../include/utils/SkGLCanvas.h',
-        '../include/utils/SkInterpolator.h',
-        '../include/utils/SkLayer.h',
-        '../include/utils/SkMeshUtils.h',
-        '../include/utils/SkNinePatch.h',
-        '../include/utils/SkNWayCanvas.h',
-        '../include/utils/SkParse.h',
-        '../include/utils/SkParsePaint.h',
-        '../include/utils/SkParsePath.h',
-        '../include/utils/SkProxyCanvas.h',
-        '../include/utils/SkSfntUtils.h',
-        '../include/utils/SkTextBox.h',
-        '../include/utils/SkUnitMappers.h',
-
-        '../src/utils/SkBoundaryPatch.cpp',
-        '../src/utils/SkCamera.cpp',
-        '../src/utils/SkColorMatrix.cpp',
-        '../src/utils/SkCubicInterval.cpp',
-        '../src/utils/SkCullPoints.cpp',
-        '../src/utils/SkDumpCanvas.cpp',
-        '../src/utils/SkEGLContext_none.cpp',
-        '../src/utils/SkInterpolator.cpp',
-        '../src/utils/SkLayer.cpp',
-        '../src/utils/SkMeshUtils.cpp',
-        '../src/utils/SkNinePatch.cpp',
-        '../src/utils/SkNWayCanvas.cpp',
-        '../src/utils/SkOSFile.cpp',
-        '../src/utils/SkParse.cpp',
-        '../src/utils/SkParseColor.cpp',
-        '../src/utils/SkParsePath.cpp',
-        '../src/utils/SkProxyCanvas.cpp',
-        '../src/utils/SkSfntUtils.cpp',
-        '../src/utils/SkUnitMappers.cpp',
-
-        '../src/utils/mac/SkEGLContext_Mesa.cpp',
-      ],
-      'sources!': [
-          '../src/utils/mac/SkEGLContext_Mesa.cpp',
-      ],
-      'conditions': [
-        [ 'OS == "mac"', {
-          'sources': [
-            '../include/utils/SkCGUtils.h',
-            '../src/utils/mac/SkCreateCGImageRef.cpp',
-            '../src/utils/mac/SkEGLContext_mac.cpp',
-          ],
-        }],
-        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
-          'sources': [
-            '../src/utils/unix/SkEGLContext_Unix.cpp',
-          ],
-        }],
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/utils',
-        ],
-      },
-    },
-    {
-      'target_name': 'views',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/views',
-        '../include/xml',
-        '../include/utils',
-        '../include/images',
-        '../include/animator',
-        '../include/effects',
-      ],
-      'sources': [
-        '../include/views/SkApplication.h',
-        '../include/views/SkBGViewArtist.h',
-        '../include/views/SkBorderView.h',
-        '../include/views/SkEvent.h',
-        '../include/views/SkEventSink.h',
-        '../include/views/SkImageView.h',
-        '../include/views/SkKey.h',
-        '../include/views/SkOSMenu.h',
-        '../include/views/SkOSWindow_Mac.h',
-        '../include/views/SkOSWindow_SDL.h',
-        '../include/views/SkOSWindow_Unix.h',
-        '../include/views/SkOSWindow_Win.h',
-        #'../include/views/SkOSWindow_wxwidgets.h',
-        '../include/views/SkProgressBarView.h',
-        '../include/views/SkScrollBarView.h',
-        '../include/views/SkStackViewLayout.h',
-        '../include/views/SkSystemEventTypes.h',
-        '../include/views/SkTouchGesture.h',
-        '../include/views/SkView.h',
-        '../include/views/SkViewInflate.h',
-        '../include/views/SkWidget.h',
-        '../include/views/SkWidgetViews.h',
-        '../include/views/SkWindow.h',
-
-        '../src/views/SkBGViewArtist.cpp',
-        '../src/views/SkBorderView.cpp',
-        '../src/views/SkEvent.cpp',
-        '../src/views/SkEventSink.cpp',
-        '../src/views/SkImageView.cpp',
-        '../src/views/SkListView.cpp',
-        '../src/views/SkListWidget.cpp',
-        '../src/views/SkOSMenu.cpp',
-        '../src/views/SkParsePaint.cpp',
-        '../src/views/SkProgressBarView.cpp',
-        '../src/views/SkProgressView.cpp',
-        '../src/views/SkScrollBarView.cpp',
-        '../src/views/SkStackViewLayout.cpp',
-        '../src/views/SkStaticTextView.cpp',
-        '../src/views/SkTagList.cpp',
-        '../src/views/SkTagList.h',
-        '../src/views/SkTextBox.cpp',
-        '../src/views/SkTouchGesture.cpp',
-        '../src/views/SkView.cpp',
-        '../src/views/SkViewInflate.cpp',
-        '../src/views/SkViewPriv.cpp',
-        '../src/views/SkViewPriv.h',
-        '../src/views/SkWidget.cpp',
-        '../src/views/SkWidgets.cpp',
-        '../src/views/SkWidgetViews.cpp',
-        '../src/views/SkWindow.cpp',
-      ],
-      'sources!' : [
-        '../src/views/SkListView.cpp',   #depends on missing SkListSource implementation
-        '../src/views/SkListWidget.cpp', #depends on missing SkListSource implementation
-      ],
-      'conditions': [
-        [ 'OS == "win"', {
-          'sources': [
-            '../src/utils/win/SkOSWindow_Win.cpp',
-            '../src/utils/win/skia_win.cpp',
-          ],
-        }],
-        [ 'OS == "mac"', {
-          'sources': [
-            '../include/utils/SkCGUtils.h',
-            #'../src/utils/mac/SkBitmap_Mac.cpp',
-            '../src/utils/mac/SkCreateCGImageRef.cpp',
-            '../src/utils/mac/SkEGLContext_mac.cpp',
-            '../src/utils/mac/skia_mac.cpp',
-            '../src/utils/mac/SkOSWindow_Mac.cpp',
-          ],
-          'link_settings': {
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
-              '$(SDKROOT)/System/Library/Frameworks/AGL.framework',
-            ],
-          },
-        }],
-        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
-          'include_dirs' : [
-            '../include/utils/unix',
-          ],
-          'sources': [
-            '../src/utils/unix/keysym2ucs.c',
-            '../src/utils/unix/SkOSWindow_Unix.cpp',
-            '../unix_test_app/main.cpp',
-          ],
-        }],
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/views',
-        ],
-      },
-    },
-    {
-      'target_name': 'skgr',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../src/core',
-        '../include/gpu',
-        '../gpu/include',
-      ],
-      'sources': [
-        '../include/gpu/SkGpuCanvas.h',
-        '../include/gpu/SkGpuDevice.h',
-        '../include/gpu/SkGpuDeviceFactory.h',
-        '../include/gpu/SkGr.h',
-        '../include/gpu/SkGrTexturePixelRef.h',
-
-        '../src/gpu/GrPrintf_skia.cpp',
-        '../src/gpu/SkGpuCanvas.cpp',
-        '../src/gpu/SkGpuDevice.cpp',
-        '../src/gpu/SkGr.cpp',
-        '../src/gpu/SkGrFontScaler.cpp',
-        '../src/gpu/SkGrTexturePixelRef.cpp',
-      ],
-      'conditions': [
-          [ 'OS == "linux"', {
-          'defines': [
-              'GR_LINUX_BUILD=1',
-          ],
-          }],
-          [ 'OS == "mac"', {
-          'defines': [
-              'GR_MAC_BUILD=1',
-          ],
-          }],
-          [ 'OS == "win"', {
-          'defines': [
-              'GR_WIN32_BUILD=1',
-          ],
-          }],
-      ],
-      'direct_dependent_settings': {
-        'conditions': [
-          [ 'OS == "linux"', {
-            'defines': [
-              'GR_LINUX_BUILD=1',
-            ],
-          }],
-          [ 'OS == "mac"', {
-            'defines': [
-              'GR_MAC_BUILD=1',
-            ],
-          }],
-          [ 'OS == "win"', {
-            'defines': [
-              'GR_WIN32_BUILD=1',
-            ],
-          }],
-        ],
-        'include_dirs': [
-          '../include/gpu',
-        ],
-      },
-    },
-    {
-      'target_name': 'gr',
-      'type': 'static_library',
-      'include_dirs': [
-        '../gpu/include',
-        '../include/core',
-        '../include/config',
-      ],
-      'dependencies': [
-        'libtess',
-      ],
-      'sources': [
-        '../gpu/include/GrAllocator.h',
-        '../gpu/include/GrAllocPool.h',
-        '../gpu/include/GrAtlas.h',
-        '../gpu/include/GrClip.h',
-        '../gpu/include/GrClipIterator.h',
-        '../gpu/include/GrColor.h',
-        '../gpu/include/GrConfig.h',
-        '../gpu/include/GrContext.h',
-        '../gpu/include/GrContext_impl.h',
-        '../gpu/include/GrDrawTarget.h',
-        '../gpu/include/GrFontScaler.h',
-        '../gpu/include/GrGeometryBuffer.h',
-        '../gpu/include/GrGLConfig.h',
-        '../gpu/include/GrGLConfig_chrome.h',
-        '../gpu/include/GrGLIndexBuffer.h',
-        '../gpu/include/GrGLInterface.h',
-        '../gpu/include/GrGLIRect.h',
-        '../gpu/include/GrGLTexture.h',
-        '../gpu/include/GrGLVertexBuffer.h',
-        '../gpu/include/GrGlyph.h',
-        '../gpu/include/GrGpu.h',
-        '../gpu/include/GrGpuVertex.h',
-        '../gpu/include/GrIndexBuffer.h',
-        '../gpu/include/GrInOrderDrawBuffer.h',
-        '../gpu/include/GrInstanceCounter.h',
-        '../gpu/include/GrIPoint.h',
-        '../gpu/include/GrKey.h',
-        '../gpu/include/GrMatrix.h',
-        '../gpu/include/GrMemory.h',
-        '../gpu/include/GrMesh.h',
-        '../gpu/include/GrNoncopyable.h',
-        '../gpu/include/GrPaint.h',
-        '../gpu/include/GrPath.h',
-        '../gpu/include/GrPathRenderer.h',
-        '../gpu/include/GrPathSink.h',
-        '../gpu/include/GrPlotMgr.h',
-        '../gpu/include/GrPoint.h',
-        '../gpu/include/GrRandom.h',
-        '../gpu/include/GrRect.h',
-        '../gpu/include/GrRectanizer.h',
-        '../gpu/include/GrRefCnt.h',
-        '../gpu/include/GrResource.h',
-        '../gpu/include/GrSamplerState.h',
-        '../gpu/include/GrScalar.h',
-        '../gpu/include/GrStencil.h',
-        '../gpu/include/GrStopwatch.h',
-        '../gpu/include/GrStringBuilder.h',
-        '../gpu/include/GrTArray.h',
-        '../gpu/include/GrTBSearch.h',
-        '../gpu/include/GrTDArray.h',
-        '../gpu/include/GrTesselatedPathRenderer.h',
-        '../gpu/include/GrTextContext.h',
-        '../gpu/include/GrTextStrike.h',
-        '../gpu/include/GrTexture.h',
-        '../gpu/include/GrTextureCache.h',
-        '../gpu/include/GrTHashCache.h',
-        '../gpu/include/GrTLList.h',
-        '../gpu/include/GrTouchGesture.h',
-        '../gpu/include/GrTypes.h',
-        '../gpu/include/GrUserConfig.h',
-        '../gpu/include/GrVertexBuffer.h',
-
-        '../gpu/src/GrAllocPool.cpp',
-        '../gpu/src/GrAtlas.cpp',
-        '../gpu/src/GrBinHashKey.h',
-        '../gpu/src/GrBufferAllocPool.cpp',
-        '../gpu/src/GrBufferAllocPool.h',
-        '../gpu/src/GrClip.cpp',
-        '../gpu/src/GrContext.cpp',
-        '../gpu/src/GrCreatePathRenderer_none.cpp',
-        '../gpu/src/GrDrawTarget.cpp',
-        '../gpu/src/GrGLDefaultInterface_none.cpp',
-        '../gpu/src/GrGLIndexBuffer.cpp',
-        '../gpu/src/GrGLInterface.cpp',
-        '../gpu/src/GrGLProgram.cpp',
-        '../gpu/src/GrGLProgram.h',
-        '../gpu/src/GrGLTexture.cpp',
-        '../gpu/src/GrGLUtil.cpp',
-        '../gpu/src/GrGLVertexBuffer.cpp',
-        '../gpu/src/GrGpu.cpp',
-        '../gpu/src/GrGpuFactory.cpp',
-        '../gpu/src/GrGpuGL.cpp',
-        '../gpu/src/GrGpuGL.h',
-        '../gpu/src/GrGpuGLFixed.cpp',
-        '../gpu/src/GrGpuGLFixed.h',
-        '../gpu/src/GrGpuGLShaders.cpp',
-        '../gpu/src/GrGpuGLShaders.h',
-        '../gpu/src/GrInOrderDrawBuffer.cpp',
-        '../gpu/src/GrMatrix.cpp',
-        '../gpu/src/GrMemory.cpp',
-        '../gpu/src/GrPathRenderer.cpp',
-        '../gpu/src/GrPathUtils.cpp',
-        '../gpu/src/GrPathUtils.h',
-        '../gpu/src/GrRectanizer.cpp',
-        '../gpu/src/GrRedBlackTree.h',
-        '../gpu/src/GrResource.cpp',
-        '../gpu/src/GrStencil.cpp',
-        '../gpu/src/GrTesselatedPathRenderer.cpp',
-        '../gpu/src/GrTextContext.cpp',
-        '../gpu/src/GrTextStrike.cpp',
-        '../gpu/src/GrTextStrike_impl.h',
-        '../gpu/src/GrTexture.cpp',
-        '../gpu/src/GrTextureCache.cpp',
-        '../gpu/src/gr_unittests.cpp',
-
-        '../gpu/src/mac/GrGLDefaultInterface_mac.cpp',
-
-        '../gpu/src/win/GrGLDefaultInterface_win.cpp',
-
-        '../gpu/src/unix/GrGLDefaultInterface_unix.cpp',
-
-        '../gpu/src/mesa/GrGLDefaultInterface_mesa.cpp',
-      ],
-      'sources!': [
-        '../gpu/src/mesa/GrGLDefaultInterface_mesa.cpp',
-      ],
-      'defines': [
-        'GR_IMPLEMENTATION=1',
-      ],
-      'conditions': [
-        [ 'OS == "linux"', {
-          'defines': [
-              'GR_LINUX_BUILD=1',
-          ],
-          'sources!': [
-            '../gpu/src/GrGLDefaultInterface_none.cpp',
-          ],
-          'link_settings': {
-            'libraries': [
-              '-lGL',
-              '-lX11',
-            ],
-          },
-        }],
-        [ 'OS == "mac"', {
-          'defines': [
-              'GR_MAC_BUILD=1',
-          ],
-          'link_settings': {
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
-            ],
-          },
-          'sources!': [
-            '../gpu/src/GrGLDefaultInterface_none.cpp',
-          ],
-          }],
-        [ 'OS == "win"', {
-          'defines': [
-            'GR_WIN32_BUILD=1',
-            'GR_GL_FUNCTION_TYPE=__stdcall',
-          ],
-          'sources!': [
-            '../gpu/src/GrGLDefaultInterface_none.cpp',
-          ],
-        }],
-        [ 'OS != "win"', {
-          'sources!': [
-            '../gpu/src/win/GrGLDefaultInterface_win.cpp',
-          ],
-        }],
-        [ 'OS != "mac"', {
-          'sources!': [
-            '../gpu/src/mac/GrGLDefaultInterface_mac.cpp',
-          ],
-        }],
-        [ 'OS != "linux"', {
-          'sources!': [
-            '../gpu/src/unix/GrGLDefaultInterface_unix.cpp',
-          ],
-        }],
-      ],
-      'direct_dependent_settings': {
-        'conditions': [
-          [ 'OS == "linux"', {
-            'defines': [
-              'GR_LINUX_BUILD=1',
-            ],
-          }],
-          [ 'OS == "mac"', {
-            'defines': [
-              'GR_MAC_BUILD=1',
-            ],
-          }],
-          [ 'OS == "win"', {
-            'defines': [
-              'GR_WIN32_BUILD=1',
-              'GR_GL_FUNCTION_TYPE=__stdcall',
-            ],
-          }],
-        ],
-        'include_dirs': [
-          '../gpu/include',
-        ],
-      },
-    },
-    {
-      'target_name': 'animator',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/effects',
-        '../include/animator',
-        '../include/views',
-        '../include/xml',
-        '../include/utils',
-        '../include/images',
-      ],
-      'sources': [
-        '../include/animator/SkAnimator.h',
-        '../include/animator/SkAnimatorView.h',
-
-        '../src/animator/SkAnimate.h',
-        '../src/animator/SkAnimateActive.cpp',
-        '../src/animator/SkAnimateActive.h',
-        '../src/animator/SkAnimateBase.cpp',
-        '../src/animator/SkAnimateBase.h',
-        '../src/animator/SkAnimateField.cpp',
-        '../src/animator/SkAnimateMaker.cpp',
-        '../src/animator/SkAnimateMaker.h',
-        '../src/animator/SkAnimateProperties.h',
-        '../src/animator/SkAnimateSet.cpp',
-        '../src/animator/SkAnimateSet.h',
-        '../src/animator/SkAnimator.cpp',
-        '../src/animator/SkAnimatorScript.cpp',
-        '../src/animator/SkAnimatorScript.h',
-        #'../src/animator/SkAnimatorScript2.cpp', fails on windows
-        #'../src/animator/SkAnimatorScript2.h',
-        '../src/animator/SkBase64.cpp',
-        '../src/animator/SkBase64.h',
-        '../src/animator/SkBoundable.cpp',
-        '../src/animator/SkBoundable.h',
-        '../src/animator/SkBuildCondensedInfo.cpp',
-        #'../src/animator/SkCondensedDebug.cpp', fails on windows
-        #'../src/animator/SkCondensedRelease.cpp',
-        '../src/animator/SkDisplayable.cpp',
-        '../src/animator/SkDisplayable.h',
-        '../src/animator/SkDisplayAdd.cpp',
-        '../src/animator/SkDisplayAdd.h',
-        '../src/animator/SkDisplayApply.cpp',
-        '../src/animator/SkDisplayApply.h',
-        '../src/animator/SkDisplayBounds.cpp',
-        '../src/animator/SkDisplayBounds.h',
-        '../src/animator/SkDisplayEvent.cpp',
-        '../src/animator/SkDisplayEvent.h',
-        '../src/animator/SkDisplayEvents.cpp',
-        '../src/animator/SkDisplayEvents.h',
-        '../src/animator/SkDisplayInclude.cpp',
-        '../src/animator/SkDisplayInclude.h',
-        '../src/animator/SkDisplayInput.cpp',
-        '../src/animator/SkDisplayInput.h',
-        '../src/animator/SkDisplayList.cpp',
-        '../src/animator/SkDisplayList.h',
-        '../src/animator/SkDisplayMath.cpp',
-        '../src/animator/SkDisplayMath.h',
-        '../src/animator/SkDisplayMovie.cpp',
-        '../src/animator/SkDisplayMovie.h',
-        '../src/animator/SkDisplayNumber.cpp',
-        '../src/animator/SkDisplayNumber.h',
-        '../src/animator/SkDisplayPost.cpp',
-        '../src/animator/SkDisplayPost.h',
-        '../src/animator/SkDisplayRandom.cpp',
-        '../src/animator/SkDisplayRandom.h',
-        '../src/animator/SkDisplayScreenplay.cpp',
-        '../src/animator/SkDisplayScreenplay.h',
-        '../src/animator/SkDisplayType.cpp',
-        '../src/animator/SkDisplayType.h',
-        '../src/animator/SkDisplayTypes.cpp',
-        '../src/animator/SkDisplayTypes.h',
-        '../src/animator/SkDisplayXMLParser.cpp',
-        '../src/animator/SkDisplayXMLParser.h',
-        '../src/animator/SkDraw3D.cpp',
-        '../src/animator/SkDraw3D.h',
-        '../src/animator/SkDrawable.cpp',
-        '../src/animator/SkDrawable.h',
-        '../src/animator/SkDrawBitmap.cpp',
-        '../src/animator/SkDrawBitmap.h',
-        '../src/animator/SkDrawBlur.cpp',
-        '../src/animator/SkDrawBlur.h',
-        '../src/animator/SkDrawClip.cpp',
-        '../src/animator/SkDrawClip.h',
-        '../src/animator/SkDrawColor.cpp',
-        '../src/animator/SkDrawColor.h',
-        '../src/animator/SkDrawDash.cpp',
-        '../src/animator/SkDrawDash.h',
-        '../src/animator/SkDrawDiscrete.cpp',
-        '../src/animator/SkDrawDiscrete.h',
-        '../src/animator/SkDrawEmboss.cpp',
-        '../src/animator/SkDrawEmboss.h',
-        '../src/animator/SkDrawExtraPathEffect.cpp',
-        '../src/animator/SkDrawFull.cpp',
-        '../src/animator/SkDrawFull.h',
-        '../src/animator/SkDrawGradient.cpp',
-        '../src/animator/SkDrawGradient.h',
-        '../src/animator/SkDrawGroup.cpp',
-        '../src/animator/SkDrawGroup.h',
-        '../src/animator/SkDrawLine.cpp',
-        '../src/animator/SkDrawLine.h',
-        '../src/animator/SkDrawMatrix.cpp',
-        '../src/animator/SkDrawMatrix.h',
-        '../src/animator/SkDrawOval.cpp',
-        '../src/animator/SkDrawOval.h',
-        '../src/animator/SkDrawPaint.cpp',
-        '../src/animator/SkDrawPaint.h',
-        '../src/animator/SkDrawPath.cpp',
-        '../src/animator/SkDrawPath.h',
-        '../src/animator/SkDrawPoint.cpp',
-        '../src/animator/SkDrawPoint.h',
-        '../src/animator/SkDrawRectangle.cpp',
-        '../src/animator/SkDrawRectangle.h',
-        '../src/animator/SkDrawSaveLayer.cpp',
-        '../src/animator/SkDrawSaveLayer.h',
-        '../src/animator/SkDrawShader.cpp',
-        '../src/animator/SkDrawShader.h',
-        '../src/animator/SkDrawText.cpp',
-        '../src/animator/SkDrawText.h',
-        '../src/animator/SkDrawTextBox.cpp',
-        '../src/animator/SkDrawTextBox.h',
-        '../src/animator/SkDrawTo.cpp',
-        '../src/animator/SkDrawTo.h',
-        '../src/animator/SkDrawTransparentShader.cpp',
-        '../src/animator/SkDrawTransparentShader.h',
-        '../src/animator/SkDump.cpp',
-        '../src/animator/SkDump.h',
-        '../src/animator/SkExtras.h',
-        '../src/animator/SkGetCondensedInfo.cpp',
-        '../src/animator/SkHitClear.cpp',
-        '../src/animator/SkHitClear.h',
-        '../src/animator/SkHitTest.cpp',
-        '../src/animator/SkHitTest.h',
-        '../src/animator/SkIntArray.h',
-        '../src/animator/SkMatrixParts.cpp',
-        '../src/animator/SkMatrixParts.h',
-        '../src/animator/SkMemberInfo.cpp',
-        '../src/animator/SkMemberInfo.h',
-        '../src/animator/SkOpArray.cpp',
-        '../src/animator/SkOpArray.h',
-        '../src/animator/SkOperand.h',
-        '../src/animator/SkOperand2.h',
-        '../src/animator/SkOperandInterpolator.h',
-        '../src/animator/SkOperandIterpolator.cpp',
-        '../src/animator/SkPaintParts.cpp',
-        '../src/animator/SkPaintParts.h',
-        '../src/animator/SkParseSVGPath.cpp',
-        '../src/animator/SkPathParts.cpp',
-        '../src/animator/SkPathParts.h',
-        '../src/animator/SkPostParts.cpp',
-        '../src/animator/SkPostParts.h',
-        '../src/animator/SkScript.cpp',
-        '../src/animator/SkScript.h',
-        '../src/animator/SkScript2.h',
-        '../src/animator/SkScriptCallBack.h',
-        '../src/animator/SkScriptDecompile.cpp',
-        '../src/animator/SkScriptRuntime.cpp',
-        '../src/animator/SkScriptRuntime.h',
-        '../src/animator/SkScriptTokenizer.cpp',
-        '../src/animator/SkSnapshot.cpp',
-        '../src/animator/SkSnapshot.h',
-        '../src/animator/SkTDArray_Experimental.h',
-        '../src/animator/SkTextOnPath.cpp',
-        '../src/animator/SkTextOnPath.h',
-        '../src/animator/SkTextToPath.cpp',
-        '../src/animator/SkTextToPath.h',
-        '../src/animator/SkTime.cpp',
-        '../src/animator/SkTypedArray.cpp',
-        '../src/animator/SkTypedArray.h',
-        '../src/animator/SkXMLAnimatorWriter.cpp',
-        '../src/animator/SkXMLAnimatorWriter.h',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/animator',
-        ],
-      },
-    },
-
-    {
-      'target_name': 'svg',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-        '../include/xml',
-        '../include/utils',
-        '../include/svg',
-      ],
-      'sources': [
-        '../include/svg/SkSVGAttribute.h',
-        '../include/svg/SkSVGBase.h',
-        '../include/svg/SkSVGPaintState.h',
-        '../include/svg/SkSVGParser.h',
-        '../include/svg/SkSVGTypes.h',
-
-        '../src/svg/SkSVGCircle.cpp',
-        '../src/svg/SkSVGCircle.h',
-        '../src/svg/SkSVGClipPath.cpp',
-        '../src/svg/SkSVGClipPath.h',
-        '../src/svg/SkSVGDefs.cpp',
-        '../src/svg/SkSVGDefs.h',
-        '../src/svg/SkSVGElements.cpp',
-        '../src/svg/SkSVGElements.h',
-        '../src/svg/SkSVGEllipse.cpp',
-        '../src/svg/SkSVGEllipse.h',
-        '../src/svg/SkSVGFeColorMatrix.cpp',
-        '../src/svg/SkSVGFeColorMatrix.h',
-        '../src/svg/SkSVGFilter.cpp',
-        '../src/svg/SkSVGFilter.h',
-        '../src/svg/SkSVGG.cpp',
-        '../src/svg/SkSVGG.h',
-        '../src/svg/SkSVGGradient.cpp',
-        '../src/svg/SkSVGGradient.h',
-        '../src/svg/SkSVGGroup.cpp',
-        '../src/svg/SkSVGGroup.h',
-        '../src/svg/SkSVGImage.cpp',
-        '../src/svg/SkSVGImage.h',
-        '../src/svg/SkSVGLine.cpp',
-        '../src/svg/SkSVGLine.h',
-        '../src/svg/SkSVGLinearGradient.cpp',
-        '../src/svg/SkSVGLinearGradient.h',
-        '../src/svg/SkSVGMask.cpp',
-        '../src/svg/SkSVGMask.h',
-        '../src/svg/SkSVGMetadata.cpp',
-        '../src/svg/SkSVGMetadata.h',
-        '../src/svg/SkSVGPaintState.cpp',
-        '../src/svg/SkSVGParser.cpp',
-        '../src/svg/SkSVGPath.cpp',
-        '../src/svg/SkSVGPath.h',
-        '../src/svg/SkSVGPolygon.cpp',
-        '../src/svg/SkSVGPolygon.h',
-        '../src/svg/SkSVGPolyline.cpp',
-        '../src/svg/SkSVGPolyline.h',
-        '../src/svg/SkSVGRadialGradient.cpp',
-        '../src/svg/SkSVGRadialGradient.h',
-        '../src/svg/SkSVGRect.cpp',
-        '../src/svg/SkSVGRect.h',
-        '../src/svg/SkSVGStop.cpp',
-        '../src/svg/SkSVGStop.h',
-        '../src/svg/SkSVGSVG.cpp',
-        '../src/svg/SkSVGSVG.h',
-        '../src/svg/SkSVGSymbol.cpp',
-        '../src/svg/SkSVGSymbol.h',
-        '../src/svg/SkSVGText.cpp',
-        '../src/svg/SkSVGText.h',
-        '../src/svg/SkSVGUse.cpp',
-      ],
-      'sources!' : [
-          '../src/svg/SkSVG.cpp', # doesn't compile, maybe this is test code?
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../include/svg',
-        ],
-      },
-    },
-
-    {
-      'target_name': 'experimental',
-      'type': 'static_library',
-      'include_dirs': [
-        '../include/config',
-        '../include/core',
-      ],
-      'sources': [
-        '../experimental/SkMatrix44.cpp',
-        '../experimental/SkMatrix44.h',
-        '../experimental/SkSetPoly3To3.cpp',
-        '../experimental/SkSetPoly3To3_A.cpp',
-        '../experimental/SkSetPoly3To3_D.cpp',
-      ],
-      'sources!': [
-        '../experimental/SkMatrix44.cpp',  #doesn't compile
-        '../experimental/SkMatrix44.h',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../experimental',
-        ],
-      },
-    },
-
-    {
-      'target_name': 'SampleApp',
-      'type': 'executable',
-      'mac_bundle' : 1,
-      'include_dirs' : [
-        '../src/core', # needed to get SkConcaveToTriangle, maybe this should be moved to include dir?
-        '../gm',       # SampleGM.cpp pulls gm.h
-      ],
-      'sources': [
-        # gm files needed for SampleGM.cpp
-        '../gm/bitmapfilters.cpp',
-        '../gm/blurs.cpp',
-        '../gm/complexclip.cpp',
-        '../gm/filltypes.cpp',
-        '../gm/gm.h',
-        '../gm/gradients.cpp',
-        '../gm/nocolorbleed.cpp',
-        '../gm/points.cpp',
-        '../gm/poly2poly.cpp',
-        '../gm/shadertext.cpp',
-        '../gm/shadows.cpp',
-        '../gm/shapes.cpp',
-        '../gm/tilemodes.cpp',
-        '../gm/xfermodes.cpp',
-
-        '../samplecode/ClockFaceView.cpp',
-        '../samplecode/OverView.cpp',
-        '../samplecode/SampleAll.cpp',
-        '../samplecode/SampleAnimator.cpp',
-        '../samplecode/SampleApp.cpp',
-        '../samplecode/SampleArc.cpp',
-        '../samplecode/SampleAvoid.cpp',
-        '../samplecode/SampleBigGradient.cpp',
-        '../samplecode/SampleBitmapRect.cpp',
-        '../samplecode/SampleBlur.cpp',
-        '../samplecode/SampleCamera.cpp',
-        '../samplecode/SampleCircle.cpp',
-        '../samplecode/SampleCode.h',
-        '../samplecode/SampleColorFilter.cpp',
-        '../samplecode/SampleComplexClip.cpp',
-        '../samplecode/SampleCull.cpp',
-        '../samplecode/SampleDecode.cpp',
-        '../samplecode/SampleDither.cpp',
-        '../samplecode/SampleDitherBitmap.cpp',
-        '../samplecode/SampleDrawLooper.cpp',
-        '../samplecode/SampleEffects.cpp',
-        '../samplecode/SampleEmboss.cpp',
-        '../samplecode/SampleEncode.cpp',
-        '../samplecode/SampleExtractAlpha.cpp',
-        '../samplecode/SampleFillType.cpp',
-        '../samplecode/SampleFilter.cpp',
-        '../samplecode/SampleFilter2.cpp',
-        '../samplecode/SampleFontCache.cpp',
-        '../samplecode/SampleFontScalerTest.cpp',
-        '../samplecode/SampleFuzz.cpp',
-        '../samplecode/SampleGM.cpp',
-        '../samplecode/SampleGradients.cpp',
-        '../samplecode/SampleHairline.cpp',
-        '../samplecode/SampleImage.cpp',
-        '../samplecode/SampleImageDir.cpp',
-        '../samplecode/SampleLayerMask.cpp',
-        '../samplecode/SampleLayers.cpp',
-        '../samplecode/SampleLCD.cpp',
-        '../samplecode/SampleLineClipper.cpp',
-        '../samplecode/SampleLines.cpp',
-        '../samplecode/SampleMeasure.cpp',
-        '../samplecode/SampleMipMap.cpp',
-        '../samplecode/SampleMovie.cpp',
-        '../samplecode/SampleNinePatch.cpp',
-        '../samplecode/SampleOvalTest.cpp',
-        '../samplecode/SampleOverflow.cpp',
-        '../samplecode/SamplePageFlip.cpp',
-        '../samplecode/SamplePatch.cpp',
-        '../samplecode/SamplePath.cpp',
-        '../samplecode/SamplePathClip.cpp',
-        '../samplecode/SamplePathEffects.cpp',
-        '../samplecode/SamplePicture.cpp',
-        '../samplecode/SamplePoints.cpp',
-        '../samplecode/SamplePolyToPoly.cpp',
-        '../samplecode/SampleAARects.cpp',
-        '../samplecode/SampleRegion.cpp',
-        '../samplecode/SampleRepeatTile.cpp',
-        '../samplecode/SampleShaders.cpp',
-        '../samplecode/SampleShaderText.cpp',
-        '../samplecode/SampleShapes.cpp',
-        '../samplecode/SampleSkLayer.cpp',
-        '../samplecode/SampleSlides.cpp',
-        '../samplecode/SampleStrokePath.cpp',
-        '../samplecode/SampleStrokeText.cpp',
-        '../samplecode/SampleSVG.cpp',
-        '../samplecode/SampleTests.cpp',
-        '../samplecode/SampleText.cpp',
-        '../samplecode/SampleTextAlpha.cpp',
-        '../samplecode/SampleTextBox.cpp',
-        '../samplecode/SampleTextEffects.cpp',
-        '../samplecode/SampleTextOnPath.cpp',
-        '../samplecode/SampleTextureDomain.cpp',
-        '../samplecode/SampleTiling.cpp',
-        '../samplecode/SampleTinyBitmap.cpp',
-        '../samplecode/SampleTriangles.cpp',
-        '../samplecode/SampleTypeface.cpp',
-        '../samplecode/SampleUnitMapper.cpp',
-        '../samplecode/SampleVertices.cpp',
-        '../samplecode/SampleXfermodes.cpp',
-        '../samplecode/SampleXfermodesBlur.cpp',
-      ],
-      'sources!': [
-        '../samplecode/SampleSkLayer.cpp', #relies on SkMatrix44 which doesn't compile
-        '../samplecode/SampleTests.cpp',   #includes unknown file SkShaderExtras.h
-        '../samplecode/SampleWarp.cpp',
-        '../samplecode/SampleFontCache.cpp',
-      ],
-      'dependencies': [
-        'skia',
-        'effects',
-        'images',
-        'views',
-        'utils',
-        'animator',
-        'xml',
-        'svg',
-        'experimental',
-        'gr',
-        'skgr',
-      ],
-      'conditions' : [
-       [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
-         'sources!': [
-            '../samplecode/SampleDecode.cpp',
-         ],
-        }],
-        [ 'OS == "win"', {
-          'sources!': [
-            # require UNIX functions
-            '../samplecode/SampleEncode.cpp',
-            '../samplecode/SamplePageFlip.cpp',
-          ],
-        }],
-        [ 'OS == "mac"', {
-          'sources!': [
-            '../samplecode/SampleDecode.cpp',
-          ],
-        }],
-
-      ],
-      'msvs_settings': {
-        'VCLinkerTool': {
-          'SubSystem': '2',
-          'AdditionalDependencies': [
-              'OpenGL32.lib',
-              'usp10.lib',
-              'd3d9.lib',
-          ],
-        },
-      },
-    },
-    {
-      'target_name': 'libtess',
-      'type': 'static_library',
-      'include_dirs': [
-        '../third_party/glu',
-      ],
-      'sources': [
-        '../third_party/glu/internal_glu.h',
-        '../third_party/glu/gluos.h',
-        '../third_party/glu/libtess/dict-list.h',
-        '../third_party/glu/libtess/dict.c',
-        '../third_party/glu/libtess/dict.h',
-        '../third_party/glu/libtess/geom.c',
-        '../third_party/glu/libtess/geom.h',
-        '../third_party/glu/libtess/memalloc.c',
-        '../third_party/glu/libtess/memalloc.h',
-        '../third_party/glu/libtess/mesh.c',
-        '../third_party/glu/libtess/mesh.h',
-        '../third_party/glu/libtess/normal.c',
-        '../third_party/glu/libtess/normal.h',
-        '../third_party/glu/libtess/priorityq-heap.h',
-        '../third_party/glu/libtess/priorityq-sort.h',
-        '../third_party/glu/libtess/priorityq.c',
-        '../third_party/glu/libtess/priorityq.h',
-        '../third_party/glu/libtess/render.c',
-        '../third_party/glu/libtess/render.h',
-        '../third_party/glu/libtess/sweep.c',
-        '../third_party/glu/libtess/sweep.h',
-        '../third_party/glu/libtess/tess.c',
-        '../third_party/glu/libtess/tess.h',
-        '../third_party/glu/libtess/tessmono.c',
-        '../third_party/glu/libtess/tessmono.h',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../third_party/glu',
-        ],
-      },
-    },
   ],
 }
 
diff --git a/svg.gyp b/svg.gyp
new file mode 100644
index 0000000..273ddec
--- /dev/null
+++ b/svg.gyp
@@ -0,0 +1,91 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'svg',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/xml',
+        '../include/utils',
+        '../include/svg',
+      ],
+      'sources': [
+        '../include/svg/SkSVGAttribute.h',
+        '../include/svg/SkSVGBase.h',
+        '../include/svg/SkSVGPaintState.h',
+        '../include/svg/SkSVGParser.h',
+        '../include/svg/SkSVGTypes.h',
+
+        '../src/svg/SkSVGCircle.cpp',
+        '../src/svg/SkSVGCircle.h',
+        '../src/svg/SkSVGClipPath.cpp',
+        '../src/svg/SkSVGClipPath.h',
+        '../src/svg/SkSVGDefs.cpp',
+        '../src/svg/SkSVGDefs.h',
+        '../src/svg/SkSVGElements.cpp',
+        '../src/svg/SkSVGElements.h',
+        '../src/svg/SkSVGEllipse.cpp',
+        '../src/svg/SkSVGEllipse.h',
+        '../src/svg/SkSVGFeColorMatrix.cpp',
+        '../src/svg/SkSVGFeColorMatrix.h',
+        '../src/svg/SkSVGFilter.cpp',
+        '../src/svg/SkSVGFilter.h',
+        '../src/svg/SkSVGG.cpp',
+        '../src/svg/SkSVGG.h',
+        '../src/svg/SkSVGGradient.cpp',
+        '../src/svg/SkSVGGradient.h',
+        '../src/svg/SkSVGGroup.cpp',
+        '../src/svg/SkSVGGroup.h',
+        '../src/svg/SkSVGImage.cpp',
+        '../src/svg/SkSVGImage.h',
+        '../src/svg/SkSVGLine.cpp',
+        '../src/svg/SkSVGLine.h',
+        '../src/svg/SkSVGLinearGradient.cpp',
+        '../src/svg/SkSVGLinearGradient.h',
+        '../src/svg/SkSVGMask.cpp',
+        '../src/svg/SkSVGMask.h',
+        '../src/svg/SkSVGMetadata.cpp',
+        '../src/svg/SkSVGMetadata.h',
+        '../src/svg/SkSVGPaintState.cpp',
+        '../src/svg/SkSVGParser.cpp',
+        '../src/svg/SkSVGPath.cpp',
+        '../src/svg/SkSVGPath.h',
+        '../src/svg/SkSVGPolygon.cpp',
+        '../src/svg/SkSVGPolygon.h',
+        '../src/svg/SkSVGPolyline.cpp',
+        '../src/svg/SkSVGPolyline.h',
+        '../src/svg/SkSVGRadialGradient.cpp',
+        '../src/svg/SkSVGRadialGradient.h',
+        '../src/svg/SkSVGRect.cpp',
+        '../src/svg/SkSVGRect.h',
+        '../src/svg/SkSVGStop.cpp',
+        '../src/svg/SkSVGStop.h',
+        '../src/svg/SkSVGSVG.cpp',
+        '../src/svg/SkSVGSVG.h',
+        '../src/svg/SkSVGSymbol.cpp',
+        '../src/svg/SkSVGSymbol.h',
+        '../src/svg/SkSVGText.cpp',
+        '../src/svg/SkSVGText.h',
+        '../src/svg/SkSVGUse.cpp',
+      ],
+      'sources!' : [
+          '../src/svg/SkSVG.cpp', # doesn't compile, maybe this is test code?
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/svg',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/target_defaults.gypi b/target_defaults.gypi
new file mode 100644
index 0000000..c7cca18
--- /dev/null
+++ b/target_defaults.gypi
@@ -0,0 +1,62 @@
+{
+  'target_defaults': {
+    'configurations': {
+      'Debug': {
+        'defines': [
+          'SK_DEBUG',
+          'GR_DEBUG=1',
+        ],
+      },
+      'Release': {
+        'defines': [
+          'SK_RELEASE',
+          'GR_RELEASE=1',
+        ],
+      },
+    },
+    'conditions': [
+      [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+        'include_dirs' : [
+          '/usr/include/freetype2',
+        ],
+      }],
+      [ 'OS == "mac"', {
+        'defines': [
+          'SK_BUILD_FOR_MAC',
+        ],
+      }],
+      [ 'OS == "win"', {
+        'defines': [
+          'SK_BUILD_FOR_WIN32',
+          'SK_IGNORE_STDINT_DOT_H',
+        ],
+      }],
+      [ 'OS == "linux"', {
+        'defines': [
+          'SK_SAMPLES_FOR_X',
+          'SK_BUILD_FOR_UNIX',
+        ],
+      }],
+    ],
+    'direct_dependent_settings': {
+      'conditions': [
+        [ 'OS == "mac"', {
+          'defines': [
+            'SK_BUILD_FOR_MAC',
+          ],
+        }],
+        [ 'OS == "win"', {
+          'defines': [
+            'SK_BUILD_FOR_WIN32',
+          ],
+        }],
+      ],
+    },
+  },
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/utils.gyp b/utils.gyp
new file mode 100644
index 0000000..6356d73
--- /dev/null
+++ b/utils.gyp
@@ -0,0 +1,90 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'utils',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/utils',
+        '../include/views',
+        '../include/effects',
+        '../include/xml',
+      ],
+      'sources': [
+        '../include/utils/SkBoundaryPatch.h',
+        '../include/utils/SkCamera.h',
+        '../include/utils/SkCubicInterval.h',
+        '../include/utils/SkCullPoints.h',
+        '../include/utils/SkDumpCanvas.h',
+        '../include/utils/SkEGLContext.h',
+        '../include/utils/SkGLCanvas.h',
+        '../include/utils/SkInterpolator.h',
+        '../include/utils/SkLayer.h',
+        '../include/utils/SkMeshUtils.h',
+        '../include/utils/SkNinePatch.h',
+        '../include/utils/SkNWayCanvas.h',
+        '../include/utils/SkParse.h',
+        '../include/utils/SkParsePaint.h',
+        '../include/utils/SkParsePath.h',
+        '../include/utils/SkProxyCanvas.h',
+        '../include/utils/SkSfntUtils.h',
+        '../include/utils/SkTextBox.h',
+        '../include/utils/SkUnitMappers.h',
+
+        '../src/utils/SkBoundaryPatch.cpp',
+        '../src/utils/SkCamera.cpp',
+        '../src/utils/SkColorMatrix.cpp',
+        '../src/utils/SkCubicInterval.cpp',
+        '../src/utils/SkCullPoints.cpp',
+        '../src/utils/SkDumpCanvas.cpp',
+        '../src/utils/SkEGLContext_none.cpp',
+        '../src/utils/SkInterpolator.cpp',
+        '../src/utils/SkLayer.cpp',
+        '../src/utils/SkMeshUtils.cpp',
+        '../src/utils/SkNinePatch.cpp',
+        '../src/utils/SkNWayCanvas.cpp',
+        '../src/utils/SkOSFile.cpp',
+        '../src/utils/SkParse.cpp',
+        '../src/utils/SkParseColor.cpp',
+        '../src/utils/SkParsePath.cpp',
+        '../src/utils/SkProxyCanvas.cpp',
+        '../src/utils/SkSfntUtils.cpp',
+        '../src/utils/SkUnitMappers.cpp',
+
+        '../src/utils/mac/SkEGLContext_Mesa.cpp',
+      ],
+      'sources!': [
+          '../src/utils/mac/SkEGLContext_Mesa.cpp',
+      ],
+      'conditions': [
+        [ 'OS == "mac"', {
+          'sources': [
+            '../include/utils/SkCGUtils.h',
+            '../src/utils/mac/SkCreateCGImageRef.cpp',
+            '../src/utils/mac/SkEGLContext_mac.cpp',
+          ],
+        }],
+        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+          'sources': [
+            '../src/utils/unix/SkEGLContext_Unix.cpp',
+          ],
+        }],
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/utils',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/views.gyp b/views.gyp
new file mode 100644
index 0000000..7c95a76
--- /dev/null
+++ b/views.gyp
@@ -0,0 +1,122 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'views',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/views',
+        '../include/xml',
+        '../include/utils',
+        '../include/images',
+        '../include/animator',
+        '../include/effects',
+      ],
+      'sources': [
+        '../include/views/SkApplication.h',
+        '../include/views/SkBGViewArtist.h',
+        '../include/views/SkBorderView.h',
+        '../include/views/SkEvent.h',
+        '../include/views/SkEventSink.h',
+        '../include/views/SkImageView.h',
+        '../include/views/SkKey.h',
+        '../include/views/SkOSMenu.h',
+        '../include/views/SkOSWindow_Mac.h',
+        '../include/views/SkOSWindow_SDL.h',
+        '../include/views/SkOSWindow_Unix.h',
+        '../include/views/SkOSWindow_Win.h',
+        #'../include/views/SkOSWindow_wxwidgets.h',
+        '../include/views/SkProgressBarView.h',
+        '../include/views/SkScrollBarView.h',
+        '../include/views/SkStackViewLayout.h',
+        '../include/views/SkSystemEventTypes.h',
+        '../include/views/SkTouchGesture.h',
+        '../include/views/SkView.h',
+        '../include/views/SkViewInflate.h',
+        '../include/views/SkWidget.h',
+        '../include/views/SkWidgetViews.h',
+        '../include/views/SkWindow.h',
+
+        '../src/views/SkBGViewArtist.cpp',
+        '../src/views/SkBorderView.cpp',
+        '../src/views/SkEvent.cpp',
+        '../src/views/SkEventSink.cpp',
+        '../src/views/SkImageView.cpp',
+        '../src/views/SkListView.cpp',
+        '../src/views/SkListWidget.cpp',
+        '../src/views/SkOSMenu.cpp',
+        '../src/views/SkParsePaint.cpp',
+        '../src/views/SkProgressBarView.cpp',
+        '../src/views/SkProgressView.cpp',
+        '../src/views/SkScrollBarView.cpp',
+        '../src/views/SkStackViewLayout.cpp',
+        '../src/views/SkStaticTextView.cpp',
+        '../src/views/SkTagList.cpp',
+        '../src/views/SkTagList.h',
+        '../src/views/SkTextBox.cpp',
+        '../src/views/SkTouchGesture.cpp',
+        '../src/views/SkView.cpp',
+        '../src/views/SkViewInflate.cpp',
+        '../src/views/SkViewPriv.cpp',
+        '../src/views/SkViewPriv.h',
+        '../src/views/SkWidget.cpp',
+        '../src/views/SkWidgets.cpp',
+        '../src/views/SkWidgetViews.cpp',
+        '../src/views/SkWindow.cpp',
+      ],
+      'sources!' : [
+        '../src/views/SkListView.cpp',   #depends on missing SkListSource implementation
+        '../src/views/SkListWidget.cpp', #depends on missing SkListSource implementation
+      ],
+      'conditions': [
+        [ 'OS == "win"', {
+          'sources': [
+            '../src/utils/win/SkOSWindow_Win.cpp',
+            '../src/utils/win/skia_win.cpp',
+          ],
+        }],
+        [ 'OS == "mac"', {
+          'sources': [
+            '../include/utils/SkCGUtils.h',
+            #'../src/utils/mac/SkBitmap_Mac.cpp',
+            '../src/utils/mac/SkCreateCGImageRef.cpp',
+            '../src/utils/mac/SkEGLContext_mac.cpp',
+            '../src/utils/mac/skia_mac.cpp',
+            '../src/utils/mac/SkOSWindow_Mac.cpp',
+          ],
+          'link_settings': {
+            'libraries': [
+              '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
+              '$(SDKROOT)/System/Library/Frameworks/AGL.framework',
+            ],
+          },
+        }],
+        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+          'include_dirs' : [
+            '../include/utils/unix',
+          ],
+          'sources': [
+            '../src/utils/unix/keysym2ucs.c',
+            '../src/utils/unix/SkOSWindow_Unix.cpp',
+            '../unix_test_app/main.cpp',
+          ],
+        }],
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/views',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/xml.gyp b/xml.gyp
new file mode 100644
index 0000000..8e825ad
--- /dev/null
+++ b/xml.gyp
@@ -0,0 +1,58 @@
+{
+  'includes': [
+    'target_defaults.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'xml',
+      'type': 'static_library',
+      'include_dirs': [
+        '../include/config',
+        '../include/core',
+        '../include/xml',
+        '../include/utils',
+      ],
+      'sources': [
+        '../include/xml/SkBML_WXMLParser.h',
+        '../include/xml/SkBML_XMLParser.h',
+        '../include/xml/SkDOM.h',
+        '../include/xml/SkJS.h',
+        '../include/xml/SkXMLParser.h',
+        '../include/xml/SkXMLWriter.h',
+
+        '../src/xml/SkBML_Verbs.h',
+        '../src/xml/SkBML_XMLParser.cpp',
+        '../src/xml/SkDOM.cpp',
+        '../src/xml/SkJS.cpp',
+        '../src/xml/SkJSDisplayable.cpp',
+        '../src/xml/SkXMLParser.cpp',
+        '../src/xml/SkXMLPullParser.cpp',
+        '../src/xml/SkXMLWriter.cpp',
+      ],
+      'sources!': [
+          '../src/xml/SkXMLPullParser.cpp', #if 0 around class decl in header
+      ],
+      'conditions': [
+        [ 'OS == "win" or OS == "mac" or OS == "linux" or OS == "openbsd" or OS == "solaris"', {
+          'sources!': [
+            # no jsapi.h by default on system
+            '../include/xml/SkJS.h',
+            '../src/xml/SkJS.cpp',
+            '../src/xml/SkJSDisplayable.cpp',
+          ],
+        }],
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include/xml',
+        ],
+      },
+    },
+  ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2: