summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaligh Uddin <baligh@google.com>2013-11-01 16:01:50 -0700
committerBaligh Uddin <baligh@google.com>2013-11-01 16:01:50 -0700
commit492eca10cdbfb13f963abf4b0f16c6536abf17b5 (patch)
tree8ec7fd160da63434c3467634aa57235228813d41
parent226525d75d212275020646c41a5c25ee4817fa5b (diff)
parentd194b7120ce19bf8fd18b65be7851865b7d88e9c (diff)
downloadgyp-idea133.tar.gz
Merge remote-tracking branch 'origin/kitkat-dev'chromium_org-pre-replicationidea133
-rw-r--r--FileReaderApp.gyp71
-rw-r--r--SampleApp.gyp326
-rw-r--r--SimpleCocoaApp.gyp60
-rw-r--r--SimpleiOSApp.gyp69
-rw-r--r--android_deps.gyp20
-rw-r--r--android_system.gyp20
-rw-r--r--angle.gyp41
-rw-r--r--animator.gyp193
-rw-r--r--apptype_console.gypi83
-rw-r--r--bench.gyp95
-rw-r--r--bench.gypi85
-rw-r--r--chromeos_deps.gyp9
-rw-r--r--cityhash.gyp5
-rw-r--r--common.gypi118
-rw-r--r--common_conditions.gypi489
-rw-r--r--common_variables.gypi160
-rw-r--r--core.gyp136
-rw-r--r--core.gypi380
-rw-r--r--debugger.gyp194
-rw-r--r--effects.gyp45
-rw-r--r--effects.gypi121
-rw-r--r--everything.gyp31
-rw-r--r--experimental.gyp97
-rw-r--r--flags.gyp28
-rw-r--r--freetype.gyp134
-rw-r--r--gm.gyp96
-rw-r--r--gmslides.gypi139
-rw-r--r--gpu.gyp271
-rw-r--r--gpu.gypi282
-rw-r--r--images.gyp176
-rw-r--r--jsoncpp.gyp67
-rw-r--r--libjpeg.gyp141
-rw-r--r--libwebp.gyp176
-rw-r--r--lua.gyp71
-rw-r--r--most.gyp36
-rw-r--r--nacl.gyp19
-rw-r--r--opts.gyp180
-rw-r--r--pathops.gypi62
-rw-r--r--pathops_unittest.gyp48
-rw-r--r--pathops_unittest.gypi46
-rw-r--r--pdf.gyp41
-rw-r--r--pdf.gypi50
-rw-r--r--pdfviewer.gyp125
-rw-r--r--pixman_test.gyp175
-rw-r--r--ports.gyp175
-rw-r--r--public_headers.gypi316
-rw-r--r--sfnt.gyp56
-rw-r--r--shapeops_demo.gyp124
-rw-r--r--shapeops_edge.gyp135
-rw-r--r--shapeops_tool.gyp37
-rw-r--r--skia_lib.gyp66
-rw-r--r--svg.gyp90
-rw-r--r--tests.gyp172
-rw-r--r--tools.gyp477
-rw-r--r--utils.gyp229
-rw-r--r--views.gyp148
-rw-r--r--views_animated.gyp71
-rw-r--r--xml.gyp57
-rw-r--r--xps.gyp66
-rw-r--r--zlib.gyp44
60 files changed, 7474 insertions, 0 deletions
diff --git a/FileReaderApp.gyp b/FileReaderApp.gyp
new file mode 100644
index 0000000..f590ffe
--- /dev/null
+++ b/FileReaderApp.gyp
@@ -0,0 +1,71 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'FileReaderApp',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+
+ 'include_dirs' : [
+ '../include/pipe',
+ '../experimental/FileReaderApp',
+ '../experimental/SimpleCocoaApp',
+ ],
+ 'sources': [
+ '../experimental/FileReaderApp/ReaderView.cpp',
+ '../src/pipe/SkGPipeRead.cpp',
+ ],
+ 'sources!': [
+ '../src/utils/mac/SkOSWindow_Mac.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'conditions' : [
+ # Only supports Mac currently
+ ['skia_os == "mac"', {
+ 'sources': [
+ '../experimental/SimpleCocoaApp/SkNSWindow.mm',
+ '../experimental/SimpleCocoaApp/SkNSView.mm',
+ '../experimental/FileReaderApp/FileReaderApp-Info.plist',
+ '../experimental/FileReaderApp/FileReaderAppDelegate.mm',
+ '../experimental/FileReaderApp/FileReaderApp_Prefix.pch',
+ '../experimental/FileReaderApp/FileReaderWindow.mm',
+ '../experimental/FileReaderApp/main.m',
+ '../include/utils/mac/SkCGUtils.h',
+ '../src/utils/mac/SkCreateCGImageRef.cpp',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
+ '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ 'libraries!': [
+ # Currently skia mac apps rely on Carbon and AGL for UI. Future
+ # apps should use Cocoa instead and dependencies on Carbon and AGL
+ # should eventually be removed
+ '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
+ '$(SDKROOT)/System/Library/Frameworks/AGL.framework',
+ ],
+ },
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/FileReaderApp/FileReaderApp-Info.plist',
+ },
+ 'mac_bundle_resources' : [
+ '../experimental/FileReaderApp/English.lproj/InfoPlist.strings',
+ '../experimental/FileReaderApp/English.lproj/MainMenu.xib',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/SampleApp.gyp b/SampleApp.gyp
new file mode 100644
index 0000000..4fb8a84
--- /dev/null
+++ b/SampleApp.gyp
@@ -0,0 +1,326 @@
+{
+ 'variables': {
+ #manaully set sample_pdf_file_viewer to 1 to have the PdfViewer in SampleApp
+ 'sample_pdf_file_viewer%': 0,
+ },
+ 'targets': [
+ {
+ 'target_name': 'SampleApp',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+ 'include_dirs' : [
+ '../src/core',
+ '../src/effects', #needed for BlurMask.h
+ '../gm', # needed to pull gm.h
+ '../samplecode', # To pull SampleApp.h and SampleCode.h
+ '../src/pipe/utils', # For TiledPipeController
+ '../src/utils/debugger',
+ ],
+ 'includes': [
+ 'gmslides.gypi',
+ ],
+ 'sources': [
+ '../src/utils/debugger/SkDrawCommand.h',
+ '../src/utils/debugger/SkDrawCommand.cpp',
+ '../src/utils/debugger/SkDebugCanvas.h',
+ '../src/utils/debugger/SkDebugCanvas.cpp',
+ '../src/utils/debugger/SkObjectParser.h',
+ '../src/utils/debugger/SkObjectParser.cpp',
+
+ '../gm/gm.cpp',
+ '../gm/gm.h',
+
+ '../samplecode/GMSampleView.h',
+ '../samplecode/ClockFaceView.cpp',
+ '../samplecode/OverView.cpp',
+ '../samplecode/OverView.h',
+ '../samplecode/Sample2PtRadial.cpp',
+ '../samplecode/SampleAAClip.cpp',
+ '../samplecode/SampleAARects.cpp',
+ '../samplecode/SampleAARectModes.cpp',
+ '../samplecode/SampleAll.cpp',
+ '../samplecode/SampleAnimator.cpp',
+ '../samplecode/SampleAnimBlur.cpp',
+ '../samplecode/SampleApp.cpp',
+ '../samplecode/SampleArc.cpp',
+ '../samplecode/SampleAvoid.cpp',
+ '../samplecode/SampleBigBlur.cpp',
+ '../samplecode/SampleBigGradient.cpp',
+ '../samplecode/SampleBitmapRect.cpp',
+ '../samplecode/SampleBlur.cpp',
+ '../samplecode/SampleCamera.cpp',
+ '../samplecode/SampleChart.cpp',
+ '../samplecode/SampleCircle.cpp',
+ '../samplecode/SampleClip.cpp',
+ '../samplecode/SampleCode.h',
+ '../samplecode/SampleColorFilter.cpp',
+ '../samplecode/SampleComplexClip.cpp',
+ '../samplecode/SampleConcavePaths.cpp',
+ '../samplecode/SampleCull.cpp',
+ '../samplecode/SampleDegenerateTwoPtRadials.cpp',
+ '../samplecode/SampleDither.cpp',
+ '../samplecode/SampleDitherBitmap.cpp',
+ '../samplecode/SampleEffects.cpp',
+ '../samplecode/SampleEmboss.cpp',
+ '../samplecode/SampleEmptyPath.cpp',
+ '../samplecode/SampleEncode.cpp',
+ '../samplecode/SampleFatBits.cpp',
+ '../samplecode/SampleFillType.cpp',
+ '../samplecode/SampleFilter.cpp',
+ '../samplecode/SampleFilter2.cpp',
+ '../samplecode/SampleFontCache.cpp',
+ '../samplecode/SampleFontScalerTest.cpp',
+ '../samplecode/SampleFuzz.cpp',
+ '../samplecode/SampleGradients.cpp',
+ '../samplecode/SampleHairCurves.cpp',
+ '../samplecode/SampleHairline.cpp',
+ '../samplecode/SampleHairModes.cpp',
+ '../samplecode/SampleLayerMask.cpp',
+ '../samplecode/SampleLayers.cpp',
+ '../samplecode/SampleLCD.cpp',
+ '../samplecode/SampleLines.cpp',
+ '../samplecode/SampleLua.cpp',
+ '../samplecode/SampleManyRects.cpp',
+ '../samplecode/SampleMeasure.cpp',
+ '../samplecode/SampleMipMap.cpp',
+ '../samplecode/SampleMovie.cpp',
+ '../samplecode/SampleOvalTest.cpp',
+ '../samplecode/SampleOverflow.cpp',
+ '../samplecode/SamplePatch.cpp',
+ '../samplecode/SamplePath.cpp',
+ '../samplecode/SamplePathClip.cpp',
+ '../samplecode/SamplePathUtils.cpp',
+ '../samplecode/SamplePathEffects.cpp',
+ '../samplecode/SamplePicture.cpp',
+ '../samplecode/SamplePictFile.cpp',
+ '../samplecode/SamplePoints.cpp',
+ '../samplecode/SamplePolyToPoly.cpp',
+ '../samplecode/SampleRegion.cpp',
+ '../samplecode/SampleRepeatTile.cpp',
+ '../samplecode/SampleRotateCircles.cpp',
+ '../samplecode/SampleShaders.cpp',
+ '../samplecode/SampleShaderText.cpp',
+ '../samplecode/SampleSkLayer.cpp',
+ '../samplecode/SampleSlides.cpp',
+ '../samplecode/SampleStrokePath.cpp',
+ '../samplecode/SampleTests.cpp',
+ '../samplecode/SampleText.cpp',
+ '../samplecode/SampleTextAlpha.cpp',
+ '../samplecode/SampleTextBox.cpp',
+ '../samplecode/SampleTextOnPath.cpp',
+ '../samplecode/SampleTextureDomain.cpp',
+ '../samplecode/SampleTiling.cpp',
+ '../samplecode/SampleTinyBitmap.cpp',
+ '../samplecode/SampleUnitMapper.cpp',
+ '../samplecode/SampleUnpremul.cpp',
+ '../samplecode/SampleVertices.cpp',
+ '../samplecode/SampleXfermodesBlur.cpp',
+ '../samplecode/TransitionView.cpp',
+ '../samplecode/TransitionView.h',
+
+ # DrawingBoard
+ #'../experimental/DrawingBoard/SkColorPalette.h',
+ #'../experimental/DrawingBoard/SkColorPalette.cpp',
+ #'../experimental/DrawingBoard/SkNetPipeController.h',
+ #'../experimental/DrawingBoard/SkNetPipeController.cpp',
+ #'../experimental/DrawingBoard/SampleDrawingClient.cpp',
+ #'../experimental/DrawingBoard/SampleDrawingServer.cpp',
+
+ # Networking
+ #'../experimental/Networking/SampleNetPipeReader.cpp',
+ #'../experimental/Networking/SkSockets.cpp',
+ #'../experimental/Networking/SkSockets.h',
+
+ # TiledPipeController
+ '../src/pipe/utils/SamplePipeControllers.h',
+ '../src/pipe/utils/SamplePipeControllers.cpp',
+
+ # Lua
+ '../src/utils/SkLuaCanvas.cpp',
+ '../src/utils/SkLua.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_lib.gyp:skia_lib',
+ 'views.gyp:views',
+ 'animator.gyp:animator',
+ 'xml.gyp:xml',
+ 'experimental.gyp:experimental',
+ 'pdf.gyp:pdf',
+ 'views_animated.gyp:views_animated',
+ 'lua.gyp:lua',
+ ],
+ 'conditions' : [
+ [ 'sample_pdf_file_viewer == 1', {
+ 'defines': [
+ 'SAMPLE_PDF_FILE_VIEWER',
+ ],
+ 'dependencies': [
+ 'pdfviewer.gyp:libpdfviewer',
+ ],
+ 'include_dirs' : [
+ '../experimental/PdfViewer/',
+ ],
+ 'sources': [
+ '../samplecode/SamplePdfFileViewer.cpp',
+ ]
+ }],
+ [ 'skia_os == "win"', {
+ 'sources!': [
+ # require UNIX functions
+ '../samplecode/SampleEncode.cpp',
+ ],
+ }],
+ [ 'skia_os == "mac"', {
+ 'sources': [
+ # Sample App specific files
+ '../src/views/mac/SampleApp-Info.plist',
+ '../src/views/mac/SampleAppDelegate.h',
+ '../src/views/mac/SampleAppDelegate.mm',
+ '../src/views/mac/SkSampleNSView.h',
+ '../src/views/mac/SkSampleNSView.mm',
+
+ # Mac files
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../src/views/mac/skia_mac.mm',
+ '../src/views/mac/SkNSView.h',
+ '../src/views/mac/SkNSView.mm',
+ '../src/views/mac/SkOptionsTableView.h',
+ '../src/views/mac/SkOptionsTableView.mm',
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/SkTextFieldCell.h',
+ '../src/views/mac/SkTextFieldCell.m',
+ ],
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../src/views/mac/SampleApp-Info.plist',
+ },
+ 'mac_bundle_resources' : [
+ '../src/views/mac/SampleApp.xib',
+ ],
+ }],
+ [ 'skia_os == "ios"', {
+ # TODO: This doesn't build properly yet, but it's getting there.
+ 'sources!': [
+ '../samplecode/SampleDecode.cpp',
+ ],
+ 'sources': [
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../experimental/iOSSampleApp/SkSampleUIView.h',
+ '../experimental/iOSSampleApp/SkSampleUIView.mm',
+ '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
+ '../experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig',
+ '../experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig',
+ '../experimental/iOSSampleApp/iOSSampleApp-Info.plist',
+ '../experimental/iOSSampleApp/Shared/SkOptionListController.h',
+ '../experimental/iOSSampleApp/Shared/SkOptionListController.mm',
+ '../experimental/iOSSampleApp/Shared/SkUIRootViewController.h',
+ '../experimental/iOSSampleApp/Shared/SkUIRootViewController.mm',
+ '../experimental/iOSSampleApp/Shared/SkOptionsTableViewController.h',
+ '../experimental/iOSSampleApp/Shared/SkOptionsTableViewController.mm',
+ '../experimental/iOSSampleApp/Shared/SkUIView.h',
+ '../experimental/iOSSampleApp/Shared/SkUIView.mm',
+ '../experimental/iOSSampleApp/Shared/SkUIDetailViewController.h',
+ '../experimental/iOSSampleApp/Shared/SkUIDetailViewController.mm',
+ '../experimental/iOSSampleApp/Shared/skia_ios.mm',
+
+ # iPad
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.h',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.mm',
+ '../experimental/iOSSampleApp/iPad/SkUISplitViewController.h',
+ '../experimental/iOSSampleApp/iPad/SkUISplitViewController.mm',
+ '../experimental/iOSSampleApp/iPad/MainWindow_iPad.xib',
+
+ # iPhone
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.h',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.mm',
+ '../experimental/iOSSampleApp/iPhone/SkUINavigationController.h',
+ '../experimental/iOSSampleApp/iPhone/SkUINavigationController.mm',
+ '../experimental/iOSSampleApp/iPhone/MainWindow_iPhone.xib',
+
+ '../src/views/ios/SkOSWindow_iOS.mm',
+ '../src/utils/ios/SkImageDecoder_iOS.mm',
+ '../src/utils/ios/SkStream_NSData.mm',
+ '../src/utils/ios/SkOSFile_iOS.mm',
+
+ '../include/utils/mac/SkCGUtils.h',
+ '../src/utils/mac/SkCreateCGImageRef.cpp',
+ '../experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig',
+ '../experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
+ '$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
+ '$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGLES.framework',
+ '$(SDKROOT)/System/Library/Frameworks/ImageIO.framework',
+ '$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
+ ],
+ },
+ 'include_dirs' : [
+ '../experimental/iOSSampleApp',
+ '../experimental/iOSSampleApp/iPad',
+ '../experimental/iOSSampleApp/iPhone',
+ '../include/utils/ios',
+ ],
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/iOSSampleApp/iOSSampleApp-Info.plist',
+ },
+ 'xcode_config_file': '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
+ 'mac_bundle_resources' : [
+ '../experimental/iOSSampleApp/iPad/MainWindow_iPad.xib',
+ '../experimental/iOSSampleApp/iPhone/MainWindow_iPhone.xib',
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ 'sources!': [
+ '../samplecode/SampleAnimator.cpp',
+ '../samplecode/SampleUnitMapper.cpp',
+ ],
+ 'dependencies!': [
+ 'animator.gyp:animator',
+ 'experimental.gyp:experimental',
+ ],
+ 'dependencies': [
+ 'android_deps.gyp:Android_SampleApp',
+ ],
+ }],
+ [ 'skia_gpu == 1', {
+ 'include_dirs': [
+ '../src/gpu', # To pull gl/GrGLUtil.h
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ 'sources': [
+ '../../nacl/src/nacl_sample.cpp',
+ ],
+ }],
+ ],
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'SubSystem': '2',
+ },
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/SimpleCocoaApp.gyp b/SimpleCocoaApp.gyp
new file mode 100644
index 0000000..6d7b925
--- /dev/null
+++ b/SimpleCocoaApp.gyp
@@ -0,0 +1,60 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'SimpleCocoaApp',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+ 'include_dirs' : [
+ '../experimental/SimpleCocoaApp/',
+ ],
+ 'sources': [
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../src/views/mac/skia_mac.mm',
+ '../src/views/mac/SkNSView.h',
+ '../src/views/mac/SkNSView.mm',
+ '../src/views/mac/SkOptionsTableView.h',
+ '../src/views/mac/SkOptionsTableView.mm',
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/SkTextFieldCell.h',
+ '../src/views/mac/SkTextFieldCell.m',
+
+ '../experimental/SimpleCocoaApp/SimpleApp-Info.plist',
+ '../experimental/SimpleCocoaApp/SimpleApp.h',
+ '../experimental/SimpleCocoaApp/SimpleApp.mm',
+
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'conditions' : [
+ # Only supports Mac currently
+ [ 'skia_os == "mac"', {
+ 'sources': [
+ '../include/utils/mac/SkCGUtils.h',
+ '../src/utils/mac/SkCreateCGImageRef.cpp',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ },
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/SimpleCocoaApp/SimpleApp-Info.plist',
+ },
+ 'mac_bundle_resources' : [
+ '../experimental/SimpleCocoaApp/SimpleApp.xib',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/SimpleiOSApp.gyp b/SimpleiOSApp.gyp
new file mode 100644
index 0000000..cb00f81
--- /dev/null
+++ b/SimpleiOSApp.gyp
@@ -0,0 +1,69 @@
+{
+ 'conditions' : [
+ [ 'skia_os != "ios"', {
+ 'error': '<!(set GYP_DEFINES=\"skia_os=\'ios\'\")'
+ }],
+ ],
+ 'targets': [
+ {
+ 'target_name': 'SimpleiOSApp',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+ 'include_dirs' : [
+ '../experimental/iOSSampleApp/Shared',
+ ],
+ 'sources': [
+ '../src/views/ios/SkOSWindow_iOS.mm',
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.h',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.mm',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.h',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.mm',
+ '../experimental/iOSSampleApp/Shared/SkUIView.h',
+ '../experimental/iOSSampleApp/Shared/SkUIView.mm',
+ '../experimental/iOSSampleApp/Shared/skia_ios.mm',
+ '../experimental/SimpleiOSApp/SimpleApp.h',
+ '../experimental/SimpleiOSApp/SimpleApp.mm',
+ '../experimental/SimpleiOSApp/SimpleiOSApp-Info.plist',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
+ '$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/ImageIO.framework',
+ '$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
+ '$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
+ ],
+ 'libraries!': [
+ #remove mac dependencies
+ '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
+ ],
+ },
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/SimpleiOSApp/SimpleiOSApp-Info.plist',
+ },
+ 'xcode_config_file': '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
+ 'mac_bundle_resources' : [
+ '../experimental/SimpleiOSApp/iPad/MainWindow_iPad.xib',
+ '../experimental/SimpleiOSApp/iPhone/MainWindow_iPhone.xib',
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/android_deps.gyp b/android_deps.gyp
new file mode 100644
index 0000000..cd5b1b0
--- /dev/null
+++ b/android_deps.gyp
@@ -0,0 +1,20 @@
+# This GYP file stores the dependencies necessary to build Skia on the Android
+# platform. The OS doesn't provide many stable libraries as part of the
+# distribution so we have to build a few of them ourselves.
+#
+# We tried adding this gyp file to the android directory at the root of
+# the Skia repo, but that resulted in the generated makefiles being created
+# outside of the intended output directory. So to avoid this we created a simple
+# shim here that includes the android_deps.gypi file. The actual dependencies
+# are defined and maintained in that gypi file.
+#
+# Also this assumes that the android directory is a sibling to the directory
+# that contains your primary Skia checkout. If it is not then you must manually
+# edit the includes below to specify the actual location of the android.gypi.
+# This is due to the fact that we cannot use variables in an includes as the
+# variable expansion step for gyp happens after the includes are processed.
+{
+ 'includes': [
+ '../platform_tools/android/gyp/dependencies.gypi',
+ ],
+}
diff --git a/android_system.gyp b/android_system.gyp
new file mode 100644
index 0000000..af2492c
--- /dev/null
+++ b/android_system.gyp
@@ -0,0 +1,20 @@
+# This GYP file stores the dependencies necessary to build Skia on the Android
+# platform. The OS doesn't provide many stable libraries as part of the
+# distribution so we have to build a few of them ourselves.
+#
+# We tried adding this gyp file to the android directory at the root of
+# the Skia repo, but that resulted in the generated makefiles being created
+# outside of the intended output directory. So to avoid this we created a simple
+# shim here that includes the android_system.gypi file. The actual dependencies
+# are defined and maintained in that gypi file.
+#
+# Also this assumes that the android directory is a sibling to the directory
+# that contains your primary Skia checkout. If it is not then you must manually
+# edit the includes below to specify the actual location of the android.gypi.
+# This is due to the fact that we cannot use variables in an includes as the
+# variable expansion step for gyp happens after the includes are processed.
+{
+ 'includes': [
+ '../platform_tools/android/gyp/skia_android.gypi',
+ ],
+}
diff --git a/angle.gyp b/angle.gyp
new file mode 100644
index 0000000..2a88d56
--- /dev/null
+++ b/angle.gyp
@@ -0,0 +1,41 @@
+# ANGLE is the Windows-specific translator from OGL ES 2.0 to D3D 9
+
+{
+ 'conditions': [
+ [ 'skia_angle', {
+ 'target_defaults': {
+ 'defines': [
+ 'NOMINMAX',
+ ],
+ },
+ 'variables': {
+ 'component': 'static_library',
+ 'skia_warnings_as_errors': 0,
+ },
+ 'includes': [
+ '../third_party/externals/angle/src/build_angle.gypi',
+ ],
+ }],
+ ],
+ 'targets': [
+ {
+ 'target_name': 'angle',
+ 'type': 'none',
+ 'conditions': [
+ [ 'skia_angle', {
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../third_party/externals/angle/include',
+ ],
+ },
+ }],
+ ],
+ },
+ ],
+}
+
+# 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..f6d875c
--- /dev/null
+++ b/animator.gyp
@@ -0,0 +1,193 @@
+#Animator is basically Skia's (much saner) version of Flash.
+#On top of Views it provides a declarative UI model which can be updated
+#based on events which trigger changes or scripts.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'animator',
+ 'product_name': 'skia_animator',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'views.gyp:*',
+ 'xml.gyp:*',
+ ],
+ 'include_dirs': [
+ '../include/animator',
+ '../src/utils',
+ ],
+ '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/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/apptype_console.gypi b/apptype_console.gypi
new file mode 100644
index 0000000..9a5e8a7
--- /dev/null
+++ b/apptype_console.gypi
@@ -0,0 +1,83 @@
+# target_defaults used for executable targets that generate a console app
+{
+ 'target_defaults': {
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ #Allows for creation / output to console.
+ #Console (/SUBSYSTEM:CONSOLE)
+ 'SubSystem': '1',
+
+ #Console app, use main/wmain
+ 'EntryPointSymbol': 'mainCRTStartup',
+ },
+ },
+ 'conditions': [
+ [ 'skia_os == "android"', {
+ 'dependencies': [
+ 'android_deps.gyp:Android_EntryPoint',
+ 'android_system.gyp:skia_launcher',
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ 'dependencies': [
+ 'nacl.gyp:nacl_interface',
+ ],
+ }],
+ ['skia_os == "ios"', {
+ 'target_conditions': [
+ ['_type == "executable"', {
+ 'mac_bundle' : 1,
+ }],
+ ],
+ 'include_dirs' : [
+ '../experimental/iOSSampleApp/Shared',
+ '../include/views',
+ '../include/xml',
+ '../include/utils/mac',
+ ],
+ 'sources': [
+ '../src/views/ios/SkOSWindow_iOS.mm',
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.h',
+ '../experimental/iOSSampleApp/iPad/AppDelegate_iPad.mm',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.h',
+ '../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.mm',
+ '../experimental/iOSSampleApp/Shared/SkUIView.h',
+ '../experimental/iOSSampleApp/Shared/SkUIView.mm',
+ '../experimental/iOSSampleApp/Shared/skia_ios.mm',
+ '../experimental/SimpleiOSApp/SimpleApp.h',
+ '../experimental/SimpleiOSApp/SimpleApp.mm',
+ ],
+ 'dependencies': [
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
+ '$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/ImageIO.framework',
+ '$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
+ '$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
+ ],
+ },
+ 'xcode_config_file': '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
+ 'mac_bundle_resources' : [
+ '../experimental/SimpleiOSApp/iPad/MainWindow_iPad.xib',
+ '../experimental/SimpleiOSApp/iPhone/MainWindow_iPhone.xib',
+ ],
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/SimpleiOSApp/tool-Info.plist',
+ },
+ }],
+ ],
+ },
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/bench.gyp b/bench.gyp
new file mode 100644
index 0000000..040f7a4
--- /dev/null
+++ b/bench.gyp
@@ -0,0 +1,95 @@
+# GYP file to build performance testbench.
+#
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'bench',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ '../src/effects',
+ '../src/utils',
+ ],
+ 'includes': [
+ 'bench.gypi'
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'bench_timer',
+ 'flags.gyp:flags',
+ ],
+ 'conditions': [
+ ['skia_gpu == 1',
+ {
+ 'include_dirs' : [
+ '../src/gpu',
+ ],
+ },
+ ],
+ ],
+ },
+ {
+ 'target_name' : 'bench_timer',
+ 'type': 'static_library',
+ 'sources': [
+ '../bench/BenchTimer.h',
+ '../bench/BenchTimer.cpp',
+ '../bench/BenchSysTimer_mach.h',
+ '../bench/BenchSysTimer_mach.cpp',
+ '../bench/BenchSysTimer_posix.h',
+ '../bench/BenchSysTimer_posix.cpp',
+ '../bench/BenchSysTimer_windows.h',
+ '../bench/BenchSysTimer_windows.cpp',
+ ],
+ 'include_dirs': [
+ '../src/core',
+ '../src/gpu',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'conditions': [
+ [ 'skia_os not in ["mac", "ios"]', {
+ 'sources!': [
+ '../bench/BenchSysTimer_mach.h',
+ '../bench/BenchSysTimer_mach.cpp',
+ ],
+ }],
+ [ 'skia_os not in ["linux", "freebsd", "openbsd", "solaris", "android", "chromeos"]', {
+ 'sources!': [
+ '../bench/BenchSysTimer_posix.h',
+ '../bench/BenchSysTimer_posix.cpp',
+ ],
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'link_settings': {
+ 'libraries': [
+ '-lrt',
+ ],
+ },
+ }],
+ [ 'skia_os != "win"', {
+ 'sources!': [
+ '../bench/BenchSysTimer_windows.h',
+ '../bench/BenchSysTimer_windows.cpp',
+ ],
+ }],
+ ['skia_gpu == 1', {
+ 'sources': [
+ '../bench/BenchGpuTimer_gl.h',
+ '../bench/BenchGpuTimer_gl.cpp',
+ ],
+ }],
+ ],
+ }
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/bench.gypi b/bench.gypi
new file mode 100644
index 0000000..77ba56c
--- /dev/null
+++ b/bench.gypi
@@ -0,0 +1,85 @@
+# sources and conditions used in skia's bench.gyp and chromium's skia.gyp
+#
+{
+ 'sources': [
+ '../bench/benchmain.cpp',
+ '../bench/SkBenchmark.h',
+ '../bench/SkBenchmark.cpp',
+ '../bench/AAClipBench.cpp',
+ '../bench/BicubicBench.cpp',
+ '../bench/BitmapBench.cpp',
+ '../bench/BitmapRectBench.cpp',
+ '../bench/BitmapScaleBench.cpp',
+ '../bench/BlurBench.cpp',
+ '../bench/BlurImageFilterBench.cpp',
+ '../bench/BlurRectBench.cpp',
+ '../bench/ChecksumBench.cpp',
+ '../bench/ChartBench.cpp',
+ '../bench/ChromeBench.cpp',
+ '../bench/CmapBench.cpp',
+ '../bench/ColorFilterBench.cpp',
+ '../bench/DashBench.cpp',
+ '../bench/DecodeBench.cpp',
+ '../bench/DeferredCanvasBench.cpp',
+ '../bench/DeferredSurfaceCopyBench.cpp',
+ '../bench/DisplacementBench.cpp',
+ '../bench/FontCacheBench.cpp',
+ '../bench/FontScalerBench.cpp',
+ '../bench/FSRectBench.cpp',
+ '../bench/GameBench.cpp',
+ '../bench/GradientBench.cpp',
+ '../bench/GrMemoryPoolBench.cpp',
+ '../bench/ImageCacheBench.cpp',
+ '../bench/ImageDecodeBench.cpp',
+ '../bench/InterpBench.cpp',
+ '../bench/HairlinePathBench.cpp',
+ '../bench/LineBench.cpp',
+ '../bench/LightingBench.cpp',
+ '../bench/MagnifierBench.cpp',
+ '../bench/MathBench.cpp',
+ '../bench/Matrix44Bench.cpp',
+ '../bench/MatrixBench.cpp',
+ '../bench/MatrixConvolutionBench.cpp',
+ '../bench/MemoryBench.cpp',
+ '../bench/MemsetBench.cpp',
+ '../bench/MergeBench.cpp',
+ '../bench/MorphologyBench.cpp',
+ '../bench/MutexBench.cpp',
+ '../bench/PathBench.cpp',
+ '../bench/PathIterBench.cpp',
+ '../bench/PathUtilsBench.cpp',
+ '../bench/PerlinNoiseBench.cpp',
+ '../bench/PicturePlaybackBench.cpp',
+ '../bench/PictureRecordBench.cpp',
+ '../bench/ReadPixBench.cpp',
+ '../bench/PremulAndUnpremulAlphaOpsBench.cpp',
+ '../bench/RectBench.cpp',
+ '../bench/RectoriBench.cpp',
+ '../bench/RefCntBench.cpp',
+ '../bench/RegionBench.cpp',
+ '../bench/RegionContainBench.cpp',
+ '../bench/RepeatTileBench.cpp',
+ '../bench/RTreeBench.cpp',
+ '../bench/ScalarBench.cpp',
+ '../bench/ShaderMaskBench.cpp',
+ '../bench/SortBench.cpp',
+ '../bench/StrokeBench.cpp',
+ '../bench/TableBench.cpp',
+ '../bench/TextBench.cpp',
+ '../bench/TileBench.cpp',
+ '../bench/VertBench.cpp',
+ '../bench/WriterBench.cpp',
+ '../bench/XfermodeBench.cpp',
+
+ '../bench/SkBenchLogger.h',
+ '../bench/SkBenchLogger.cpp',
+ '../bench/TimerData.h',
+ '../bench/TimerData.cpp',
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/chromeos_deps.gyp b/chromeos_deps.gyp
new file mode 100644
index 0000000..8863791
--- /dev/null
+++ b/chromeos_deps.gyp
@@ -0,0 +1,9 @@
+# This GYP file stores the dependencies necessary to build Skia on the Chrome OS
+# platform. The OS doesn't provide many stable libraries as part of the
+# distribution so we have to build a few of them ourselves.
+
+{
+ 'includes': [
+ '../platform_tools/chromeos/gyp/dependencies.gypi',
+ ],
+}
diff --git a/cityhash.gyp b/cityhash.gyp
new file mode 100644
index 0000000..461c8cc
--- /dev/null
+++ b/cityhash.gyp
@@ -0,0 +1,5 @@
+# Do-nothing gypfile, to keep the buildbots green.
+# See https://code.google.com/p/skia/issues/detail?id=1286
+# ('removing cityhash.gyp broke SOME but not ALL buildbots')
+{
+}
diff --git a/common.gypi b/common.gypi
new file mode 100644
index 0000000..2173d90
--- /dev/null
+++ b/common.gypi
@@ -0,0 +1,118 @@
+# Copyright 2011 The Android Open Source Project
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# This file is automatically included by gyp_skia when building any target.
+
+{
+ 'includes': [
+ 'common_variables.gypi',
+ ],
+
+ 'target_defaults': {
+ 'defines': [
+ 'SK_GAMMA_SRGB',
+ 'SK_GAMMA_APPLY_TO_A8',
+ ],
+
+ # Validate the 'skia_os' setting against 'OS', because only certain
+ # combinations work. You should only override 'skia_os' for certain
+ # situations, like building for iOS on a Mac.
+ 'variables': {
+ 'conditions': [
+ [ 'skia_os != OS and not ((skia_os == "ios" and OS == "mac") or \
+ (skia_os == "nacl" and OS == "linux") or \
+ (skia_os == "chromeos" and OS == "linux"))', {
+ 'error': '<!(Cannot build with skia_os=<(skia_os) on OS=<(OS))',
+ }],
+ [ 'skia_mesa and skia_os not in ["mac", "linux"]', {
+ 'error': '<!(skia_mesa=1 only supported with skia_os="mac" or "linux".)',
+ }],
+ [ 'skia_angle and not skia_os == "win"', {
+ 'error': '<!(skia_angle=1 only supported with skia_os="win".)',
+ }],
+ [ 'skia_arch_width != 32 and skia_arch_width != 64', {
+ 'error': '<!(skia_arch_width can only be 32 or 64 bits not <(skia_arch_width) bits)',
+ }],
+ [ 'skia_os == "nacl" and OS != "linux"', {
+ 'error': '<!(Skia NaCl build only currently supported on Linux.)',
+ }],
+ [ 'skia_os == "chromeos" and OS != "linux"', {
+ 'error': '<!(Skia ChromeOS build is only supported on Linux.)',
+ }],
+ ],
+ },
+ 'includes': [
+ 'common_conditions.gypi',
+ ],
+ 'conditions': [
+ [ 'skia_scalar == "float"',
+ {
+ 'defines': [
+ 'SK_SCALAR_IS_FLOAT',
+ 'SK_CAN_USE_FLOAT',
+ ],
+ }, { # else, skia_scalar != "float"
+ 'defines': [
+ 'SK_SCALAR_IS_FIXED',
+ 'SK_CAN_USE_FLOAT', # we can still use floats along the way
+ ],
+ }
+ ],
+ [ 'skia_mesa', {
+ 'defines': [
+ 'SK_MESA',
+ ],
+ 'direct_dependent_settings': {
+ 'defines': [
+ 'SK_MESA',
+ ],
+ },
+ }],
+ [ 'skia_angle', {
+ 'defines': [
+ 'SK_ANGLE',
+ ],
+ 'direct_dependent_settings': {
+ 'defines': [
+ 'SK_ANGLE',
+ ],
+ },
+ }],
+ [ 'skia_win_debuggers_path and skia_os == "win"',
+ {
+ 'defines': [
+ 'SK_USE_CDB',
+ ],
+ },
+ ],
+ ],
+ 'configurations': {
+ 'Debug': {
+ 'defines': [
+ 'SK_DEBUG',
+ 'GR_DEBUG=1',
+ 'SK_DEVELOPER=1',
+ ],
+ },
+ 'Release': {
+ 'defines': [
+ 'SK_RELEASE',
+ 'GR_RELEASE=1',
+ ],
+ },
+ 'Release_Developer': {
+ 'inherit_from': ['Release'],
+ 'defines': [
+ 'SK_DEVELOPER=1',
+ ],
+ },
+ },
+ }, # end 'target_defaults'
+}
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/common_conditions.gypi b/common_conditions.gypi
new file mode 100644
index 0000000..e046b13
--- /dev/null
+++ b/common_conditions.gypi
@@ -0,0 +1,489 @@
+# conditions used in both common.gypi and skia.gyp in chromium
+#
+{
+ 'defines': [
+ 'SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=<(skia_static_initializers)',
+# 'SK_SUPPORT_HINTING_SCALE_FACTOR',
+ ],
+ 'conditions' : [
+ [ 'skia_gpu == 1',
+ {
+ 'defines': [
+ 'SK_SUPPORT_GPU=1',
+ ],
+ }, {
+ 'defines': [
+ 'SK_SUPPORT_GPU=0',
+ ],
+ },
+ ],
+ [ 'skia_opencl == 1',
+ {
+ 'defines': [
+ 'SK_SUPPORT_OPENCL=1',
+ ],
+ }, {
+ 'defines': [
+ 'SK_SUPPORT_OPENCL=0',
+ ],
+ },
+ ],
+ [ 'skia_os == "win"',
+ {
+ 'defines': [
+ 'SK_BUILD_FOR_WIN32',
+ 'SK_FONTHOST_USES_FONTMGR',
+ 'SK_IGNORE_STDINT_DOT_H',
+ '_CRT_SECURE_NO_WARNINGS',
+ 'GR_GL_FUNCTION_TYPE=__stdcall',
+ ],
+ 'msvs_cygwin_shell': 0,
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'WarningLevel': '3',
+ 'ProgramDataBaseFileName': '$(OutDir)\\$(ProjectName).pdb',
+ 'DebugInformationFormat': '3',
+ 'ExceptionHandling': '0',
+ 'AdditionalOptions': [ '/MP', ],
+ },
+ 'VCLinkerTool': {
+ 'AdditionalDependencies': [
+ 'OpenGL32.lib',
+ 'usp10.lib',
+
+ # Prior to gyp r1584, the following were included automatically.
+ 'kernel32.lib',
+ 'gdi32.lib',
+ 'winspool.lib',
+ 'comdlg32.lib',
+ 'advapi32.lib',
+ 'shell32.lib',
+ 'ole32.lib',
+ 'oleaut32.lib',
+ 'user32.lib',
+ 'uuid.lib',
+ 'odbc32.lib',
+ 'odbccp32.lib',
+ 'DelayImp.lib',
+ ],
+ },
+ },
+ 'configurations': {
+ 'Debug': {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'DebugInformationFormat': '4', # editAndContiue (/ZI)
+ 'Optimization': '0', # optimizeDisabled (/Od)
+ 'PreprocessorDefinitions': ['_DEBUG'],
+ 'RuntimeLibrary': '3', # rtMultiThreadedDebugDLL (/MDd)
+ 'RuntimeTypeInfo': 'false', # /GR-
+ },
+ 'VCLinkerTool': {
+ 'GenerateDebugInformation': 'true', # /DEBUG
+ 'LinkIncremental': '2', # /INCREMENTAL
+ },
+ },
+ },
+ 'Release': {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'DebugInformationFormat': '3', # programDatabase (/Zi)
+ 'Optimization': '<(skia_release_optimization_level)',
+ 'WholeProgramOptimization': 'true', #/GL
+ # Changing the floating point model requires rebaseling gm images
+ #'FloatingPointModel': '2', # fast (/fp:fast)
+ 'FavorSizeOrSpeed': '1', # speed (/Ot)
+ 'PreprocessorDefinitions': ['NDEBUG'],
+ 'RuntimeLibrary': '2', # rtMultiThreadedDLL (/MD)
+ 'EnableEnhancedInstructionSet': '2',# /arch:SSE2
+ 'RuntimeTypeInfo': 'false', # /GR-
+ },
+ 'VCLinkerTool': {
+ 'GenerateDebugInformation': 'true', # /DEBUG
+ 'LinkTimeCodeGeneration': '1', # useLinkTimeCodeGeneration /LTCG
+ },
+ 'VCLibrarianTool': {
+ 'LinkTimeCodeGeneration': 'true', # useLinkTimeCodeGeneration /LTCG
+ },
+ },
+ },
+ },
+ 'conditions' : [
+ [ 'skia_arch_width == 64', {
+ 'msvs_configuration_platform': 'x64',
+ }],
+ [ 'skia_arch_width == 32', {
+ 'msvs_configuration_platform': 'Win32',
+ }],
+ [ 'skia_warnings_as_errors', {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'WarnAsError': 'true',
+ 'AdditionalOptions': [
+ '/we4189', # initialized but unused var warning
+ ],
+ },
+ },
+ }],
+ [ 'skia_win_exceptions', {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'AdditionalOptions': [
+ '/EHsc',
+ ],
+ },
+ },
+ }],
+ ],
+ },
+ ],
+
+ # The following section is common to linux + derivatives and android
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chromeos", "android"]',
+ {
+ 'conditions': [
+ [ 'skia_warnings_as_errors', {
+ 'cflags': [
+ '-Werror',
+ ],
+ }],
+ [ 'skia_arch_type == "arm" and arm_thumb == 1', {
+ 'cflags': [
+ '-mthumb',
+ ],
+ # The --fix-cortex-a8 switch enables a link-time workaround for
+ # an erratum in certain Cortex-A8 processors. The workaround is
+ # enabled by default if you target the ARM v7-A arch profile.
+ # It can be enabled otherwise by specifying --fix-cortex-a8, or
+ # disabled unconditionally by specifying --no-fix-cortex-a8.
+ #
+ # The erratum only affects Thumb-2 code.
+ 'conditions': [
+ [ 'arm_version < 7', {
+ 'ldflags': [
+ '-Wl,--fix-cortex-a8',
+ ],
+ }],
+ ],
+ }],
+ [ 'skia_arch_type == "arm" and arm_version >= 7', {
+ 'cflags': [
+ '-march=armv7-a',
+ ],
+ 'ldflags': [
+ '-march=armv7-a',
+ ],
+ 'conditions': [
+ [ 'arm_neon == 1', {
+ 'defines': [
+ '__ARM_HAVE_NEON',
+ ],
+ 'cflags': [
+ '-mfpu=neon',
+ ],
+ }],
+ [ 'arm_neon_optional == 1', {
+ 'defines': [
+ '__ARM_HAVE_OPTIONAL_NEON_SUPPORT',
+ ],
+ }],
+ [ 'skia_os != "chromeos"', {
+ 'cflags': [
+ '-mfloat-abi=softfp',
+ ],
+ }],
+ ],
+ }],
+ ],
+ },
+ ],
+
+
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chromeos"]',
+ {
+ 'defines': [
+ 'SK_SAMPLES_FOR_X',
+ 'SK_BUILD_FOR_UNIX',
+ ],
+ 'configurations': {
+ 'Debug': {
+ 'cflags': ['-g']
+ },
+ 'Release': {
+ 'cflags': [
+ '-O<(skia_release_optimization_level)',
+ '-g',
+ ],
+ 'defines': [ 'NDEBUG' ],
+ },
+ },
+ 'cflags': [
+ '-Wall',
+ '-Wextra',
+ # suppressions below here were added for clang
+ '-Wno-unused-parameter',
+ '-Wno-c++11-extensions'
+ ],
+ 'conditions' : [
+ [ 'skia_shared_lib', {
+ 'cflags': [
+ '-fPIC',
+ ],
+ 'defines': [
+ 'GR_DLL=1',
+ 'GR_IMPLEMENTATION=1',
+ 'SKIA_DLL',
+ 'SKIA_IMPLEMENTATION=1',
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ 'defines': [
+ 'SK_BUILD_FOR_NACL',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lppapi',
+ '-lppapi_cpp',
+ '-lnosys',
+ '-pthread',
+ ],
+ },
+ }],
+ [ 'skia_os == "chromeos"', {
+ 'ldflags': [
+ '-lstdc++',
+ '-lm',
+ ],
+ }, {
+ 'conditions': [
+ [ 'skia_arch_width == 64 and skia_arch_type == "x86"', {
+ 'cflags': [
+ '-m64',
+ ],
+ 'ldflags': [
+ '-m64',
+ ],
+ }],
+ [ 'skia_arch_width == 32 and skia_arch_type == "x86"', {
+ 'cflags': [
+ '-m32',
+ ],
+ 'ldflags': [
+ '-m32',
+ ],
+ }],
+ ],
+ }],
+ [ 'skia_asan_build', {
+ 'cflags': [
+ '-fsanitize=address',
+ '-fno-omit-frame-pointer',
+ ],
+ 'ldflags': [
+ '-fsanitize=address',
+ ],
+ }],
+ ],
+ },
+ ],
+
+ [ 'skia_os == "mac"',
+ {
+ 'variables': {
+ 'mac_sdk%': '<!(python <(DEPTH)/tools/find_mac_sdk.py 10.6)',
+ },
+ 'defines': [
+ 'SK_BUILD_FOR_MAC',
+ 'SK_FONTHOST_USES_FONTMGR',
+ ],
+ 'conditions' : [
+ [ 'skia_arch_width == 64', {
+ 'xcode_settings': {
+ 'ARCHS': ['x86_64'],
+ },
+ }],
+ [ 'skia_arch_width == 32', {
+ 'xcode_settings': {
+ 'ARCHS': ['i386'],
+ },
+ }],
+ [ 'skia_warnings_as_errors', {
+ 'xcode_settings': {
+ 'OTHER_CPLUSPLUSFLAGS': [
+ '-Werror',
+ '-Wall',
+ '-Wextra',
+ '-Wno-unused-parameter',
+ ],
+ },
+ }],
+# This old compiler is really bad at figuring out when things are uninitialized, so ignore it.
+ [ '<(mac_sdk)==10.6', {
+ 'xcode_settings': {
+ 'OTHER_CPLUSPLUSFLAGS': [
+ '-Wno-uninitialized',
+ ],
+ },
+ }],
+ ],
+ 'configurations': {
+ 'Debug': {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '0',
+ },
+ },
+ 'Release': {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '<(skia_release_optimization_level)',
+ },
+ 'defines': [ 'NDEBUG' ],
+ },
+ },
+ 'xcode_settings': {
+ 'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO',
+ 'conditions': [
+ [ 'skia_osx_sdkroot==""', {
+ 'SDKROOT': 'macosx<(mac_sdk)', # -isysroot
+ }, {
+ 'SDKROOT': '<(skia_osx_sdkroot)', # -isysroot
+ }],
+ ],
+# trying to get this to work, but it needs clang I think...
+# 'WARNING_CFLAGS': '-Wexit-time-destructors',
+ 'CLANG_WARN_CXX0X_EXTENSIONS': 'NO',
+ 'GCC_WARN_64_TO_32_BIT_CONVERSION': 'YES',
+ 'GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS': 'YES',
+ 'GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO': 'YES',
+ 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES',
+ 'GCC_WARN_ABOUT_MISSING_PROTOTYPES': 'YES',
+ 'GCC_WARN_ABOUT_POINTER_SIGNEDNESS': 'YES',
+ 'GCC_WARN_ABOUT_RETURN_TYPE': 'YES',
+ 'GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL': 'YES',
+ 'GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED': 'YES',
+ 'GCC_WARN_MISSING_PARENTHESES': 'YES',
+ 'GCC_WARN_PROTOTYPE_CONVERSION': 'YES',
+ 'GCC_WARN_SIGN_COMPARE': 'YES',
+ 'GCC_WARN_TYPECHECK_CALLS_TO_PRINTF': 'YES',
+ 'GCC_WARN_UNKNOWN_PRAGMAS': 'YES',
+ 'GCC_WARN_UNUSED_FUNCTION': 'YES',
+ 'GCC_WARN_UNUSED_LABEL': 'YES',
+ 'GCC_WARN_UNUSED_VALUE': 'YES',
+ 'GCC_WARN_UNUSED_VARIABLE': 'YES',
+ 'OTHER_CPLUSPLUSFLAGS': [
+ '-mssse3',
+ '-fvisibility=hidden',
+ '-fvisibility-inlines-hidden',
+ ],
+ },
+ },
+ ],
+
+ [ 'skia_os == "ios"',
+ {
+ 'defines': [
+ 'SK_BUILD_FOR_IOS',
+ ],
+ 'conditions' : [
+ [ 'skia_warnings_as_errors', {
+ 'xcode_settings': {
+ 'OTHER_CPLUSPLUSFLAGS': [
+ '-Werror',
+ ],
+ },
+ }],
+ ],
+ 'configurations': {
+ 'Debug': {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '0',
+ },
+ },
+ 'Release': {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '<(skia_release_optimization_level)',
+ },
+ 'defines': [ 'NDEBUG' ],
+ },
+ },
+ 'xcode_settings': {
+ 'ARCHS': ['armv6', 'armv7'],
+ 'CODE_SIGNING_REQUIRED': 'NO',
+ 'CODE_SIGN_IDENTITY[sdk=iphoneos*]': '',
+ 'IPHONEOS_DEPLOYMENT_TARGET': '<(ios_sdk_version)',
+ 'SDKROOT': 'iphoneos',
+ 'TARGETED_DEVICE_FAMILY': '1,2',
+ 'OTHER_CPLUSPLUSFLAGS': [
+ '-fvisibility=hidden',
+ '-fvisibility-inlines-hidden',
+ ],
+ 'GCC_THUMB_SUPPORT': 'NO',
+ },
+ },
+ ],
+
+ [ 'skia_os == "android"',
+ {
+ 'defines': [
+ 'SK_BUILD_FOR_ANDROID',
+ ],
+ 'configurations': {
+ 'Debug': {
+ 'cflags': ['-g']
+ },
+ 'Release': {
+ 'cflags': ['-O2'],
+ 'defines': [ 'NDEBUG' ],
+ },
+ },
+ 'libraries': [
+ '-lstdc++',
+ '-lm',
+ '-llog',
+ ],
+ 'cflags': [
+ '-Wall',
+ '-fno-exceptions',
+ '-fstrict-aliasing',
+ '-fuse-ld=gold',
+ ],
+ 'cflags_cc': [
+ '-fno-rtti',
+ ],
+ 'conditions': [
+ [ 'skia_shared_lib', {
+ 'cflags': [
+ '-fPIC',
+ ],
+ 'defines': [
+ 'GR_DLL=1',
+ 'GR_IMPLEMENTATION=1',
+ 'SKIA_DLL',
+ 'SKIA_IMPLEMENTATION=1',
+ ],
+ }],
+ [ 'skia_profile_enabled == 1', {
+ 'cflags': ['-g', '-fno-omit-frame-pointer', '-marm', '-mapcs'],
+ }],
+ ],
+ },
+ ],
+
+ # We can POD-style initialization of static mutexes to avoid generating
+ # static initializers if we're using a pthread-compatible thread interface.
+ [ 'skia_os != "win"', {
+ 'defines': [
+ 'SK_USE_POSIX_THREADS',
+ ],
+ }],
+ ], # end 'conditions'
+ # The Xcode SYMROOT must be at the root. See build/common.gypi in chromium for more details
+ 'xcode_settings': {
+ 'SYMROOT': '<(DEPTH)/xcodebuild',
+ },
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/common_variables.gypi b/common_variables.gypi
new file mode 100644
index 0000000..8965c82
--- /dev/null
+++ b/common_variables.gypi
@@ -0,0 +1,160 @@
+# Copyright 2012 The Android Open Source Project
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ # Get ready for the ugly...
+ #
+ # - We have to nest our variables dictionaries multiple levels deep, so that
+ # this and other gyp files can rely on previously-set variable values in
+ # their 'variables': { 'conditions': [] } clauses.
+ #
+ # Example 1:
+ # Within this file, we use the value of variable 'skia_os' to set the
+ # value of variable 'os_posix', so 'skia_os' must be defined within a
+ # "more inner" (enclosed) scope than 'os_posix'.
+ #
+ # Example 2:
+ # http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libjpeg/libjpeg.gyp?revision=102306 ,
+ # which we currently import into our build, uses the value of 'os_posix'
+ # within the 'conditions' list in its 'variables' dict.
+ # In order for that to work, it needs the value of 'os_posix' to have been
+ # set within a "more inner" (enclosed) scope than its own 'variables' dict.
+ #
+ # - On the other hand, key/value pairs of a given 'variable' dict are only
+ # inherited by:
+ # 1. directly enclosing 'variable' dicts, and
+ # 2. "sibling" 'variable' dicts (which, I guess, are combined into a single
+ # 'variable' dict during gyp processing)
+ # and NOT inherited by "uncles" (siblings of directly enclosing 'variable'
+ # dicts), so we have to re-define every variable at every enclosure level
+ # within our ridiculous matryoshka doll of 'variable' dicts. That's why
+ # we have variable definitions like this: 'skia_os%': '<(skia_os)',
+ #
+ # See http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi?revision=127004 ,
+ # which deals with these same constraints in a similar manner.
+ #
+ 'variables': { # level 1
+ 'variables': { # level 2
+
+ # Variables needed by conditions list within the level-2 variables dict.
+ 'variables': { # level 3
+ # We use 'skia_os' instead of 'OS' throughout our gyp files, to allow
+ # for cross-compilation (e.g. building for either MacOS or iOS on Mac).
+ # We set it automatically based on 'OS' (the host OS), but allow the
+ # user to override it via GYP_DEFINES if they like.
+ 'skia_os%': '<(OS)',
+ },
+
+ # Re-define all variables defined within the level-3 'variables' dict,
+ # so that siblings of the level-2 'variables' dict can see them.
+ 'skia_os%': '<(skia_os)',
+
+ 'conditions': [
+ [ 'skia_os == "win"', {
+ 'os_posix%': 0,
+ }, {
+ 'os_posix%': 1,
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris"]', {
+ 'skia_arch_width%': 64,
+ }, {
+ 'skia_arch_width%': 32,
+ }],
+ [ 'skia_os == "android"', {
+ 'skia_static_initializers%': 0,
+ }, {
+ 'skia_static_initializers%': 1,
+ }],
+ [ 'skia_os == "ios"', {
+ 'skia_arch_type%': 'arm',
+ 'arm_version%': 7,
+ 'arm_neon%': 0, # neon asm files known not to work with the ios build
+ },{ # skia_os is not ios
+ 'skia_arch_type%': 'x86',
+ 'arm_version%': 0,
+ 'arm_neon%': 0,
+ }],
+ ],
+
+ 'skia_scalar%': 'float',
+ 'skia_mesa%': 0,
+ 'skia_nv_path_rendering%': 0,
+ 'skia_stroke_path_rendering%': 0,
+ 'skia_android_path_rendering%': 0,
+ 'skia_texture_cache_mb_limit%': 0,
+ 'skia_angle%': 0,
+ 'skia_directwrite%': 0,
+ 'skia_gpu%': 1,
+ 'skia_osx_sdkroot%': '',
+ 'skia_profile_enabled%': 0,
+ 'skia_win_debuggers_path%': '',
+ 'skia_shared_lib%': 0,
+ 'skia_opencl%': 0,
+
+ # These variables determine the default optimization level for different
+ # compilers.
+ 'skia_default_vs_optimization_level': 3, # full (/Ox)
+ 'skia_default_gcc_optimization_level': 3, # -O3
+ },
+
+ 'conditions': [
+ [ 'skia_os == "win" and skia_arch_width == 32 or '
+ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "android"] or '
+ 'skia_os == "mac" and skia_arch_width == 32', {
+ 'skia_warnings_as_errors%': 1,
+ }, {
+ 'skia_warnings_as_errors%': 0,
+ }],
+
+ # This variable allows the user to customize the optimization level used
+ # by the compiler. The user should be aware that this has different
+ # meanings for different compilers and should exercise caution when
+ # overriding it.
+ [ 'skia_os == "win"', {
+ 'skia_release_optimization_level%': '<(skia_default_vs_optimization_level)',
+ }, {
+ 'skia_release_optimization_level%': '<(skia_default_gcc_optimization_level)',
+ }],
+ ],
+
+ # Re-define all variables defined within the level-2 'variables' dict,
+ # so that siblings of the level-1 'variables' dict can see them.
+ 'arm_version%': '<(arm_version)',
+ 'arm_neon%': '<(arm_neon)',
+ 'arm_neon_optional%': 0,
+ 'skia_os%': '<(skia_os)',
+ 'os_posix%': '<(os_posix)',
+ 'skia_scalar%': '<(skia_scalar)',
+ 'skia_mesa%': '<(skia_mesa)',
+ 'skia_nv_path_rendering%': '<(skia_nv_path_rendering)',
+ 'skia_stroke_path_rendering%': '<(skia_stroke_path_rendering)',
+ 'skia_android_path_rendering%': '<(skia_android_path_rendering)',
+ 'skia_texture_cache_mb_limit%': '<(skia_texture_cache_mb_limit)',
+ 'skia_angle%': '<(skia_angle)',
+ 'skia_arch_width%': '<(skia_arch_width)',
+ 'skia_arch_type%': '<(skia_arch_type)',
+ 'skia_directwrite%': '<(skia_directwrite)',
+ 'skia_gpu%': '<(skia_gpu)',
+ 'skia_win_exceptions%': 0,
+ 'skia_osx_sdkroot%': '<(skia_osx_sdkroot)',
+ 'skia_profile_enabled%': '<(skia_profile_enabled)',
+ 'skia_shared_lib%': '<(skia_shared_lib)',
+ 'skia_opencl%': '<(skia_opencl)',
+ 'skia_static_initializers%': '<(skia_static_initializers)',
+ 'ios_sdk_version%': '6.0',
+ 'skia_win_debuggers_path%': '<(skia_win_debuggers_path)',
+ 'skia_asan_build%': 0,
+
+ # These are referenced by our .gypi files that list files (e.g. core.gypi)
+ #
+ 'skia_src_path%': '../src',
+ 'skia_include_path%': '../include',
+ },
+}
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/core.gyp b/core.gyp
new file mode 100644
index 0000000..7d322a6
--- /dev/null
+++ b/core.gyp
@@ -0,0 +1,136 @@
+# Core Skia library code.
+{
+ 'targets': [
+ {
+ 'target_name': 'core',
+ 'product_name': 'skia_core',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'msvs_guid': 'B7760B5E-BFA8-486B-ACFD-49E3A6DE8E76',
+
+ 'includes': [
+ 'core.gypi',
+ ],
+
+ 'include_dirs': [
+ '../include/config',
+ '../include/core',
+ '../include/lazy',
+ '../include/pathops',
+ '../include/pipe',
+ '../include/ports',
+ '../include/utils',
+ '../include/xml',
+ '../src/core',
+ '../src/image',
+ ],
+ 'sources': [
+ 'core.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
+ ],
+ 'msvs_disabled_warnings': [4244, 4267,4345, 4390, 4554, 4800],
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'link_settings': {
+ 'libraries': [
+ '-lpthread',
+ ],
+ },
+ }],
+ [ 'skia_os == "mac"', {
+ 'include_dirs': [
+ '../include/utils/mac',
+ ],
+ 'sources': [
+ '../include/utils/mac/SkCGUtils.h',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
+ ],
+ },
+ }],
+ [ 'skia_os == "ios"', {
+ 'include_dirs': [
+ '../include/utils/ios',
+ ],
+ 'sources': [
+ '../include/utils/mac/SkCGUtils.h',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
+ '$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
+ '$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGLES.framework',
+ '$(SDKROOT)/System/Library/Frameworks/ImageIO.framework',
+ '$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
+ ],
+ },
+ }],
+ [ 'skia_os == "win"', {
+ 'include_dirs': [
+ 'config/win',
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ 'sources': [
+ '../src/core/SkPaintOptionsAndroid.cpp',
+ ],
+ 'dependencies': [
+ 'android_deps.gyp:cpu_features',
+ ],
+ }],
+ [ 'skia_arch_type == "arm"', {
+ # The code in SkUtilsArm.cpp can be used on an ARM-based Linux system, not only Android.
+ 'sources': [
+ '../src/core/SkUtilsArm.cpp',
+ '../src/core/SkUtilsArm.h',
+ ],
+ }],
+ ['skia_gpu == 1', {
+ 'include_dirs': [
+ '../include/gpu',
+ '../src/gpu',
+ ],
+ }],
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ 'config',
+ '../include/config',
+ '../include/core',
+ '../include/lazy',
+ '../include/pathops',
+ '../include/pipe',
+ 'ext',
+ ],
+ 'conditions': [
+ [ 'skia_os == "mac"', {
+ 'include_dirs': [
+ '../include/utils/mac',
+ ],
+ }],
+ [ 'skia_os == "ios"', {
+ 'include_dirs': [
+ '../include/utils/ios',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ 'include_dirs': [
+ 'config/win',
+ ],
+ }],
+ ],
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/core.gypi b/core.gypi
new file mode 100644
index 0000000..1d11f17
--- /dev/null
+++ b/core.gypi
@@ -0,0 +1,380 @@
+# Include this gypi to include all 'core' files
+# The parent gyp/gypi file must define
+# 'skia_src_path' e.g. skia/trunk/src
+# 'skia_include_path' e.g. skia/trunk/include
+#
+# The skia build defines these in common_variables.gypi
+#
+{
+ 'sources': [
+ '<(skia_src_path)/core/ARGB32_Clamp_Bilinear_BitmapShader.h',
+ '<(skia_src_path)/core/Sk64.cpp',
+ '<(skia_src_path)/core/SkAAClip.cpp',
+ '<(skia_src_path)/core/SkAnnotation.cpp',
+ '<(skia_src_path)/core/SkAdvancedTypefaceMetrics.cpp',
+ '<(skia_src_path)/core/SkAlphaRuns.cpp',
+ '<(skia_src_path)/core/SkAntiRun.h',
+ '<(skia_src_path)/core/SkBBoxHierarchy.cpp',
+ '<(skia_src_path)/core/SkBBoxHierarchy.h',
+ '<(skia_src_path)/core/SkBBoxRecord.cpp',
+ '<(skia_src_path)/core/SkBBoxRecord.h',
+ '<(skia_src_path)/core/SkBBoxHierarchyRecord.cpp',
+ '<(skia_src_path)/core/SkBBoxHierarchyRecord.h',
+ '<(skia_src_path)/core/SkBitmap.cpp',
+ '<(skia_src_path)/core/SkBitmapFilter.h',
+ '<(skia_src_path)/core/SkBitmapFilter.cpp',
+ '<(skia_src_path)/core/SkBitmapHeap.cpp',
+ '<(skia_src_path)/core/SkBitmapHeap.h',
+ '<(skia_src_path)/core/SkBitmapProcShader.cpp',
+ '<(skia_src_path)/core/SkBitmapProcShader.h',
+ '<(skia_src_path)/core/SkBitmapProcState.cpp',
+ '<(skia_src_path)/core/SkBitmapProcState.h',
+ '<(skia_src_path)/core/SkBitmapProcState_matrix.h',
+ '<(skia_src_path)/core/SkBitmapProcState_matrixProcs.cpp',
+ '<(skia_src_path)/core/SkBitmapProcState_sample.h',
+ '<(skia_src_path)/core/SkBitmapScaler.h',
+ '<(skia_src_path)/core/SkBitmapScaler.cpp',
+ '<(skia_src_path)/core/SkBitmapShader16BilerpTemplate.h',
+ '<(skia_src_path)/core/SkBitmapShaderTemplate.h',
+ '<(skia_src_path)/core/SkBitmap_scroll.cpp',
+ '<(skia_src_path)/core/SkBlitBWMaskTemplate.h',
+ '<(skia_src_path)/core/SkBlitMask_D32.cpp',
+ '<(skia_src_path)/core/SkBlitRow_D16.cpp',
+ '<(skia_src_path)/core/SkBlitRow_D32.cpp',
+ '<(skia_src_path)/core/SkBlitter.h',
+ '<(skia_src_path)/core/SkBlitter.cpp',
+ '<(skia_src_path)/core/SkBlitter_A1.cpp',
+ '<(skia_src_path)/core/SkBlitter_A8.cpp',
+ '<(skia_src_path)/core/SkBlitter_ARGB32.cpp',
+ '<(skia_src_path)/core/SkBlitter_RGB16.cpp',
+ '<(skia_src_path)/core/SkBlitter_Sprite.cpp',
+ '<(skia_src_path)/core/SkBuffer.cpp',
+ '<(skia_src_path)/core/SkCanvas.cpp',
+ '<(skia_src_path)/core/SkChunkAlloc.cpp',
+ '<(skia_src_path)/core/SkClipStack.cpp',
+ '<(skia_src_path)/core/SkColor.cpp',
+ '<(skia_src_path)/core/SkColorFilter.cpp',
+ '<(skia_src_path)/core/SkColorTable.cpp',
+ '<(skia_src_path)/core/SkComposeShader.cpp',
+ '<(skia_src_path)/core/SkConfig8888.cpp',
+ '<(skia_src_path)/core/SkConfig8888.h',
+ '<(skia_src_path)/core/SkConvolver.cpp',
+ '<(skia_src_path)/core/SkConvolver.h',
+ '<(skia_src_path)/core/SkCordic.cpp',
+ '<(skia_src_path)/core/SkCordic.h',
+ '<(skia_src_path)/core/SkCoreBlitters.h',
+ '<(skia_src_path)/core/SkCubicClipper.cpp',
+ '<(skia_src_path)/core/SkCubicClipper.h',
+ '<(skia_src_path)/core/SkData.cpp',
+ '<(skia_src_path)/core/SkDataTable.cpp',
+ '<(skia_src_path)/core/SkDebug.cpp',
+ '<(skia_src_path)/core/SkDeque.cpp',
+ '<(skia_src_path)/core/SkDevice.cpp',
+ '<(skia_src_path)/core/SkDeviceLooper.cpp',
+ '<(skia_src_path)/core/SkDeviceProfile.cpp',
+ '<(skia_src_path)/core/SkDither.cpp',
+ '<(skia_src_path)/core/SkDraw.cpp',
+ '<(skia_src_path)/core/SkDrawLooper.cpp',
+ '<(skia_src_path)/core/SkDrawProcs.h',
+ '<(skia_src_path)/core/SkEdgeBuilder.cpp',
+ '<(skia_src_path)/core/SkEdgeClipper.cpp',
+ '<(skia_src_path)/core/SkEdge.cpp',
+ '<(skia_src_path)/core/SkEdge.h',
+ '<(skia_src_path)/core/SkError.cpp',
+ '<(skia_src_path)/core/SkErrorInternals.h',
+ '<(skia_src_path)/core/SkFP.h',
+ '<(skia_src_path)/core/SkFilterProc.cpp',
+ '<(skia_src_path)/core/SkFilterProc.h',
+ '<(skia_src_path)/core/SkFilterShader.cpp',
+ '<(skia_src_path)/core/SkFlattenable.cpp',
+ '<(skia_src_path)/core/SkFlattenableBuffers.cpp',
+ '<(skia_src_path)/core/SkFlattenableSerialization.cpp',
+ '<(skia_src_path)/core/SkFloat.cpp',
+ '<(skia_src_path)/core/SkFloat.h',
+ '<(skia_src_path)/core/SkFloatBits.cpp',
+ '<(skia_src_path)/core/SkFontHost.cpp',
+ '<(skia_src_path)/core/SkFontDescriptor.cpp',
+ '<(skia_src_path)/core/SkFontDescriptor.h',
+ '<(skia_src_path)/core/SkFontStream.cpp',
+ '<(skia_src_path)/core/SkFontStream.h',
+ '<(skia_src_path)/core/SkGeometry.cpp',
+ '<(skia_src_path)/core/SkGlyphCache.cpp',
+ '<(skia_src_path)/core/SkGlyphCache.h',
+ '<(skia_src_path)/core/SkGraphics.cpp',
+ '<(skia_src_path)/core/SkInstCnt.cpp',
+ '<(skia_src_path)/core/SkImageFilter.cpp',
+ '<(skia_src_path)/core/SkImageFilterUtils.cpp',
+ '<(skia_src_path)/core/SkLineClipper.cpp',
+ '<(skia_src_path)/core/SkMallocPixelRef.cpp',
+ '<(skia_src_path)/core/SkMask.cpp',
+ '<(skia_src_path)/core/SkMaskFilter.cpp',
+ '<(skia_src_path)/core/SkMaskGamma.cpp',
+ '<(skia_src_path)/core/SkMaskGamma.h',
+ '<(skia_src_path)/core/SkMath.cpp',
+ '<(skia_src_path)/core/SkMatrix.cpp',
+ '<(skia_src_path)/core/SkMetaData.cpp',
+ '<(skia_src_path)/core/SkMipMap.cpp',
+ '<(skia_src_path)/core/SkOrderedReadBuffer.cpp',
+ '<(skia_src_path)/core/SkOrderedWriteBuffer.cpp',
+ '<(skia_src_path)/core/SkPackBits.cpp',
+ '<(skia_src_path)/core/SkPaint.cpp',
+ '<(skia_src_path)/core/SkPaintPriv.cpp',
+ '<(skia_src_path)/core/SkPaintPriv.h',
+ '<(skia_src_path)/core/SkPath.cpp',
+ '<(skia_src_path)/core/SkPathEffect.cpp',
+ '<(skia_src_path)/core/SkPathHeap.cpp',
+ '<(skia_src_path)/core/SkPathHeap.h',
+ '<(skia_src_path)/core/SkPathMeasure.cpp',
+ '<(skia_src_path)/core/SkPathRef.h',
+ '<(skia_src_path)/core/SkPicture.cpp',
+ '<(skia_src_path)/core/SkPictureFlat.cpp',
+ '<(skia_src_path)/core/SkPictureFlat.h',
+ '<(skia_src_path)/core/SkPicturePlayback.cpp',
+ '<(skia_src_path)/core/SkPicturePlayback.h',
+ '<(skia_src_path)/core/SkPictureRecord.cpp',
+ '<(skia_src_path)/core/SkPictureRecord.h',
+ '<(skia_src_path)/core/SkPictureStateTree.cpp',
+ '<(skia_src_path)/core/SkPictureStateTree.h',
+ '<(skia_src_path)/core/SkPixelRef.cpp',
+ '<(skia_src_path)/core/SkPoint.cpp',
+ '<(skia_src_path)/core/SkProcSpriteBlitter.cpp',
+ '<(skia_src_path)/core/SkPtrRecorder.cpp',
+ '<(skia_src_path)/core/SkQuadClipper.cpp',
+ '<(skia_src_path)/core/SkQuadClipper.h',
+ '<(skia_src_path)/core/SkRasterClip.cpp',
+ '<(skia_src_path)/core/SkRasterizer.cpp',
+ '<(skia_src_path)/core/SkRect.cpp',
+ '<(skia_src_path)/core/SkRefCnt.cpp',
+ '<(skia_src_path)/core/SkRefDict.cpp',
+ '<(skia_src_path)/core/SkRegion.cpp',
+ '<(skia_src_path)/core/SkRegionPriv.h',
+ '<(skia_src_path)/core/SkRegion_path.cpp',
+ '<(skia_src_path)/core/SkRRect.cpp',
+ '<(skia_src_path)/core/SkRTree.h',
+ '<(skia_src_path)/core/SkRTree.cpp',
+ '<(skia_src_path)/core/SkScaledImageCache.cpp',
+ '<(skia_src_path)/core/SkScalar.cpp',
+ '<(skia_src_path)/core/SkScalerContext.cpp',
+ '<(skia_src_path)/core/SkScalerContext.h',
+ '<(skia_src_path)/core/SkScan.cpp',
+ '<(skia_src_path)/core/SkScan.h',
+ '<(skia_src_path)/core/SkScanPriv.h',
+ '<(skia_src_path)/core/SkScan_AntiPath.cpp',
+ '<(skia_src_path)/core/SkScan_Antihair.cpp',
+ '<(skia_src_path)/core/SkScan_Hairline.cpp',
+ '<(skia_src_path)/core/SkScan_Path.cpp',
+ '<(skia_src_path)/core/SkShader.cpp',
+ '<(skia_src_path)/core/SkSpriteBlitter_ARGB32.cpp',
+ '<(skia_src_path)/core/SkSpriteBlitter_RGB16.cpp',
+ '<(skia_src_path)/core/SkSinTable.h',
+ '<(skia_src_path)/core/SkSpriteBlitter.h',
+ '<(skia_src_path)/core/SkSpriteBlitterTemplate.h',
+ '<(skia_src_path)/core/SkStream.cpp',
+ '<(skia_src_path)/core/SkString.cpp',
+ '<(skia_src_path)/core/SkStringUtils.cpp',
+ '<(skia_src_path)/core/SkStroke.h',
+ '<(skia_src_path)/core/SkStroke.cpp',
+ '<(skia_src_path)/core/SkStrokeRec.cpp',
+ '<(skia_src_path)/core/SkStrokerPriv.cpp',
+ '<(skia_src_path)/core/SkStrokerPriv.h',
+ '<(skia_src_path)/core/SkTemplatesPriv.h',
+ '<(skia_src_path)/core/SkTextFormatParams.h',
+ '<(skia_src_path)/core/SkTileGrid.cpp',
+ '<(skia_src_path)/core/SkTileGrid.h',
+ '<(skia_src_path)/core/SkTileGridPicture.cpp',
+ '<(skia_src_path)/core/SkTLList.h',
+ '<(skia_src_path)/core/SkTLS.cpp',
+ '<(skia_src_path)/core/SkTSearch.cpp',
+ '<(skia_src_path)/core/SkTSort.h',
+ '<(skia_src_path)/core/SkTypeface.cpp',
+ '<(skia_src_path)/core/SkTypefaceCache.cpp',
+ '<(skia_src_path)/core/SkTypefaceCache.h',
+ '<(skia_src_path)/core/SkUnPreMultiply.cpp',
+ '<(skia_src_path)/core/SkUtils.cpp',
+ '<(skia_src_path)/core/SkWriter32.cpp',
+ '<(skia_src_path)/core/SkXfermode.cpp',
+
+ '<(skia_src_path)/doc/SkDocument.cpp',
+
+ '<(skia_src_path)/image/SkDataPixelRef.cpp',
+ '<(skia_src_path)/image/SkImage.cpp',
+ '<(skia_src_path)/image/SkImagePriv.cpp',
+ '<(skia_src_path)/image/SkImage_Codec.cpp',
+# '<(skia_src_path)/image/SkImage_Gpu.cpp',
+ '<(skia_src_path)/image/SkImage_Picture.cpp',
+ '<(skia_src_path)/image/SkImage_Raster.cpp',
+ '<(skia_src_path)/image/SkSurface.cpp',
+# '<(skia_src_path)/image/SkSurface_Gpu.cpp',
+ '<(skia_src_path)/image/SkSurface_Picture.cpp',
+ '<(skia_src_path)/image/SkSurface_Raster.cpp',
+
+ '<(skia_src_path)/pipe/SkGPipeRead.cpp',
+ '<(skia_src_path)/pipe/SkGPipeWrite.cpp',
+
+ '<(skia_include_path)/core/Sk64.h',
+ '<(skia_include_path)/core/SkAdvancedTypefaceMetrics.h',
+ '<(skia_include_path)/core/SkBitmap.h',
+ '<(skia_include_path)/core/SkBlitRow.h',
+ '<(skia_include_path)/core/SkBounder.h',
+ '<(skia_include_path)/core/SkCanvas.h',
+ '<(skia_include_path)/core/SkChecksum.h',
+ '<(skia_include_path)/core/SkChunkAlloc.h',
+ '<(skia_include_path)/core/SkClipStack.h',
+ '<(skia_include_path)/core/SkColor.h',
+ '<(skia_include_path)/core/SkColorFilter.h',
+ '<(skia_include_path)/core/SkColorPriv.h',
+ '<(skia_include_path)/core/SkColorShader.h',
+ '<(skia_include_path)/core/SkComposeShader.h',
+ '<(skia_include_path)/core/SkData.h',
+ '<(skia_include_path)/core/SkDeque.h',
+ '<(skia_include_path)/core/SkDevice.h',
+ '<(skia_include_path)/core/SkDeviceProperties.h',
+ '<(skia_include_path)/core/SkDither.h',
+ '<(skia_include_path)/core/SkDraw.h',
+ '<(skia_include_path)/core/SkDrawFilter.h',
+ '<(skia_include_path)/core/SkDrawLooper.h',
+ '<(skia_include_path)/core/SkEndian.h',
+ '<(skia_include_path)/core/SkError.h',
+ '<(skia_include_path)/core/SkFixed.h',
+ '<(skia_include_path)/core/SkFlattenable.h',
+ '<(skia_include_path)/core/SkFlattenableSerialization.h',
+ '<(skia_include_path)/core/SkFloatBits.h',
+ '<(skia_include_path)/core/SkFloatingPoint.h',
+ '<(skia_include_path)/core/SkFontHost.h',
+ '<(skia_include_path)/core/SkGeometry.h',
+ '<(skia_include_path)/core/SkGraphics.h',
+ '<(skia_include_path)/core/SkImageDecoder.h',
+ '<(skia_include_path)/core/SkImageEncoder.h',
+ '<(skia_include_path)/core/SkImageFilter.h',
+ '<(skia_include_path)/core/SkImageFilterUtils.h',
+ '<(skia_include_path)/core/SkInstCnt.h',
+ '<(skia_include_path)/core/SkMallocPixelRef.h',
+ '<(skia_include_path)/core/SkMask.h',
+ '<(skia_include_path)/core/SkMaskFilter.h',
+ '<(skia_include_path)/core/SkMath.h',
+ '<(skia_include_path)/core/SkMatrix.h',
+ '<(skia_include_path)/core/SkMetaData.h',
+ '<(skia_include_path)/core/SkOSFile.h',
+ '<(skia_include_path)/core/SkPackBits.h',
+ '<(skia_include_path)/core/SkPaint.h',
+ '<(skia_include_path)/core/SkPath.h',
+ '<(skia_include_path)/core/SkPathEffect.h',
+ '<(skia_include_path)/core/SkPathMeasure.h',
+ '<(skia_include_path)/core/SkPicture.h',
+ '<(skia_include_path)/core/SkPixelRef.h',
+ '<(skia_include_path)/core/SkPoint.h',
+ '<(skia_include_path)/core/SkRasterizer.h',
+ '<(skia_include_path)/core/SkReader32.h',
+ '<(skia_include_path)/core/SkRect.h',
+ '<(skia_include_path)/core/SkRefCnt.h',
+ '<(skia_include_path)/core/SkRegion.h',
+ '<(skia_include_path)/core/SkRRect.h',
+ '<(skia_include_path)/core/SkScalar.h',
+ '<(skia_include_path)/core/SkScalarCompare.h',
+ '<(skia_include_path)/core/SkShader.h',
+ '<(skia_include_path)/core/SkStream.h',
+ '<(skia_include_path)/core/SkString.h',
+ '<(skia_include_path)/core/SkStringUtils.h',
+ '<(skia_include_path)/core/SkStrokeRec.h',
+ '<(skia_include_path)/core/SkTArray.h',
+ '<(skia_include_path)/core/SkTDArray.h',
+ '<(skia_include_path)/core/SkTDStack.h',
+ '<(skia_include_path)/core/SkTDict.h',
+ '<(skia_include_path)/core/SkTInternalLList.h',
+ '<(skia_include_path)/core/SkTileGridPicture.h',
+ '<(skia_include_path)/core/SkTRegistry.h',
+ '<(skia_include_path)/core/SkTScopedPtr.h',
+ '<(skia_include_path)/core/SkTSearch.h',
+ '<(skia_include_path)/core/SkTemplates.h',
+ '<(skia_include_path)/core/SkThread.h',
+ '<(skia_include_path)/core/SkThread_platform.h',
+ '<(skia_include_path)/core/SkTime.h',
+ '<(skia_include_path)/core/SkTLazy.h',
+ '<(skia_include_path)/core/SkTrace.h',
+ '<(skia_include_path)/core/SkTypeface.h',
+ '<(skia_include_path)/core/SkTypes.h',
+ '<(skia_include_path)/core/SkUnPreMultiply.h',
+ '<(skia_include_path)/core/SkUnitMapper.h',
+ '<(skia_include_path)/core/SkUtils.h',
+ '<(skia_include_path)/core/SkWeakRefCnt.h',
+ '<(skia_include_path)/core/SkWriter32.h',
+ '<(skia_include_path)/core/SkXfermode.h',
+
+ # Lazy decoding:
+ '<(skia_include_path)/lazy/SkBitmapFactory.h',
+ '<(skia_include_path)/lazy/SkImageCache.h',
+ '<(skia_include_path)/lazy/SkLruImageCache.h',
+ '<(skia_include_path)/lazy/SkPurgeableImageCache.h',
+
+ '<(skia_src_path)/lazy/SkBitmapFactory.cpp',
+ '<(skia_src_path)/lazy/SkLazyPixelRef.h',
+ '<(skia_src_path)/lazy/SkLazyPixelRef.cpp',
+ '<(skia_src_path)/lazy/SkLruImageCache.cpp',
+ '<(skia_src_path)/lazy/SkPurgeableMemoryBlock.h',
+ '<(skia_src_path)/lazy/SkPurgeableMemoryBlock_common.cpp',
+ '<(skia_src_path)/lazy/SkPurgeableImageCache.cpp',
+
+ # Path ops
+ '<(skia_include_path)/pathops/SkPathOps.h',
+
+ '<(skia_src_path)/pathops/SkAddIntersections.cpp',
+ '<(skia_src_path)/pathops/SkDCubicIntersection.cpp',
+ '<(skia_src_path)/pathops/SkDCubicLineIntersection.cpp',
+ '<(skia_src_path)/pathops/SkDCubicToQuads.cpp',
+ '<(skia_src_path)/pathops/SkDLineIntersection.cpp',
+ '<(skia_src_path)/pathops/SkDQuadImplicit.cpp',
+ '<(skia_src_path)/pathops/SkDQuadIntersection.cpp',
+ '<(skia_src_path)/pathops/SkDQuadLineIntersection.cpp',
+ '<(skia_src_path)/pathops/SkIntersections.cpp',
+ '<(skia_src_path)/pathops/SkOpAngle.cpp',
+ '<(skia_src_path)/pathops/SkOpContour.cpp',
+ '<(skia_src_path)/pathops/SkOpEdgeBuilder.cpp',
+ '<(skia_src_path)/pathops/SkOpSegment.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsBounds.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsCommon.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsCubic.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsDebug.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsLine.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsOp.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsPoint.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsQuad.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsRect.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsSimplify.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsTriangle.cpp',
+ '<(skia_src_path)/pathops/SkPathOpsTypes.cpp',
+ '<(skia_src_path)/pathops/SkPathWriter.cpp',
+ '<(skia_src_path)/pathops/SkQuarticRoot.cpp',
+ '<(skia_src_path)/pathops/SkReduceOrder.cpp',
+ '<(skia_src_path)/pathops/SkAddIntersections.h',
+ '<(skia_src_path)/pathops/SkDQuadImplicit.h',
+ '<(skia_src_path)/pathops/SkIntersectionHelper.h',
+ '<(skia_src_path)/pathops/SkIntersections.h',
+ '<(skia_src_path)/pathops/SkLineParameters.h',
+ '<(skia_src_path)/pathops/SkOpAngle.h',
+ '<(skia_src_path)/pathops/SkOpContour.h',
+ '<(skia_src_path)/pathops/SkOpEdgeBuilder.h',
+ '<(skia_src_path)/pathops/SkOpSegment.h',
+ '<(skia_src_path)/pathops/SkOpSpan.h',
+ '<(skia_src_path)/pathops/SkPathOpsBounds.h',
+ '<(skia_src_path)/pathops/SkPathOpsCommon.h',
+ '<(skia_src_path)/pathops/SkPathOpsCubic.h',
+ '<(skia_src_path)/pathops/SkPathOpsCurve.h',
+ '<(skia_src_path)/pathops/SkPathOpsDebug.h',
+ '<(skia_src_path)/pathops/SkPathOpsLine.h',
+ '<(skia_src_path)/pathops/SkPathOpsPoint.h',
+ '<(skia_src_path)/pathops/SkPathOpsQuad.h',
+ '<(skia_src_path)/pathops/SkPathOpsRect.h',
+ '<(skia_src_path)/pathops/SkPathOpsSpan.h',
+ '<(skia_src_path)/pathops/SkPathOpsTriangle.h',
+ '<(skia_src_path)/pathops/SkPathOpsTypes.h',
+ '<(skia_src_path)/pathops/SkPathWriter.h',
+ '<(skia_src_path)/pathops/SkQuarticRoot.h',
+ '<(skia_src_path)/pathops/SkReduceOrder.h',
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/debugger.gyp b/debugger.gyp
new file mode 100644
index 0000000..3a972c2
--- /dev/null
+++ b/debugger.gyp
@@ -0,0 +1,194 @@
+{
+ 'variables': {
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ # Use the systemwide Qt libs by default
+ 'variables': {
+ 'qt_sdk%': '/usr',
+ },
+ 'qt_sdk': '<(qt_sdk)',
+ 'qt_moc%': 'moc',
+ 'qt_includes': [
+ '<(qt_sdk)/include',
+ '<(qt_sdk)/include/QtCore',
+ '<(qt_sdk)/include/QtGui',
+ '<(qt_sdk)/include/QtOpenGL',
+
+ # Systemwide Qt libs are not contained under a single tree,
+ # so we're adding package-qualified paths as a fallback.
+ '<(qt_sdk)/include/qt4',
+ '<(qt_sdk)/include/qt4/QtCore',
+ '<(qt_sdk)/include/qt4/QtGui',
+ '<(qt_sdk)/include/qt4/QtOpenGL',
+ ],
+ 'qt_libs': [
+ '-lQtCore',
+ '-lQtGui',
+ '-lQtOpenGL'
+ ],
+ }],
+ [ 'skia_os == "mac"', {
+ # Use the systemwide Qt libs by default
+ 'variables': {
+ 'qt_sdk%': '/Library/Frameworks',
+ },
+ 'qt_sdk': '<(qt_sdk)',
+ 'qt_moc%': 'moc',
+ 'qt_includes': [
+ '<(qt_sdk)/QtCore.framework/Headers/',
+ '<(qt_sdk)/QtGui.framework/Headers/',
+ '<(qt_sdk)/QtOpenGL.framework/Headers/',
+ ],
+ 'qt_libs': [
+ '<(qt_sdk)/QtCore.framework',
+ '<(qt_sdk)/QtGui.framework',
+ '<(qt_sdk)/QtOpenGL.framework',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ 'variables': {
+ # This is the default location for the version of Qt current on 10/11/12
+ 'qt_sdk%': 'C:/Qt/4.8.3/',
+ },
+ 'qt_sdk': '<(qt_sdk)',
+ 'qt_moc%': '<(qt_sdk)/bin/moc',
+ 'qt_includes': [
+ '<(qt_sdk)/include',
+ '<(qt_sdk)/include/QtCore',
+ '<(qt_sdk)/include/QtGui',
+ '<(qt_sdk)/include/QtOpenGL',
+ ],
+ 'qt_libs': [
+ '<(qt_sdk)/lib/QtCore4.lib',
+ '<(qt_sdk)/lib/QtGui4.lib',
+ '<(qt_sdk)/lib/QtOpenGL4.lib',
+ ],
+ }],
+ ],
+ 'moc_src_dir': '../debugger/QT',
+ 'moc_gen_dir': '<(SHARED_INTERMEDIATE_DIR)/debugger/QT',
+ },
+ 'targets': [
+ {
+ 'target_name': 'debugger',
+ 'type': 'executable',
+ 'mac_bundle': 1,
+ 'mac_framework_dirs': [
+ '/Library/Frameworks',
+ ],
+ 'include_dirs' : [
+ '../src/core',
+ '../src/utils/debugger',
+ '../debugger', # To pull SkDebugger.h
+ '../src/gpu', # To pull gl/GrGLUtil.h
+ '../src/ports', # To pull SkFontDescriptor.h
+ '../bench',
+ '../tools',
+ ],
+ 'sources': [
+ '../debugger/SkDebugger.cpp',
+ '../src/utils/debugger/SkDebugCanvas.h',
+ '../src/utils/debugger/SkDebugCanvas.cpp',
+ '../src/utils/debugger/SkDrawCommand.h',
+ '../src/utils/debugger/SkDrawCommand.cpp',
+ '../src/utils/debugger/SkObjectParser.h',
+ '../src/utils/debugger/SkObjectParser.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'bench.gyp:bench_timer',
+ 'tools.gyp:picture_renderer',
+ ],
+ 'conditions': [
+ [ 'skia_os == "nacl"', {
+ 'include_dirs': [
+ '../src/utils',
+ ],
+ 'sources': [
+ '../platform_tools/nacl/src/nacl_debugger.cpp',
+ ],
+ }, { # skia_os != "nacl"
+ 'include_dirs': [
+ '../debugger/QT', # For all the QT UI Goodies
+ '<@(qt_includes)',
+ ],
+ 'sources': [
+ '../debugger/debuggermain.cpp',
+ '../debugger/QT/SkDebuggerGUI.cpp',
+ '../debugger/QT/SkDebuggerGUI.h',
+ '../debugger/QT/SkCanvasWidget.cpp',
+ '../debugger/QT/SkCanvasWidget.h',
+ '../debugger/QT/SkInspectorWidget.h',
+ '../debugger/QT/SkInspectorWidget.cpp',
+ '../debugger/QT/SkListWidget.h',
+ '../debugger/QT/SkListWidget.cpp',
+ '../debugger/QT/SkSettingsWidget.h',
+ '../debugger/QT/SkSettingsWidget.cpp',
+ '../debugger/QT/SkGLWidget.h',
+ '../debugger/QT/SkGLWidget.cpp',
+ '../debugger/QT/SkRasterWidget.h',
+ '../debugger/QT/SkRasterWidget.cpp',
+ '../debugger/QT/SkImageWidget.h',
+ '../debugger/QT/SkImageWidget.cpp',
+
+ # To update this file edit SkIcons.qrc and rerun rcc to generate cpp
+ '../debugger/QT/qrc_SkIcons.cpp',
+
+ # Generated MOC files
+ '<(moc_gen_dir)/moc_SkCanvasWidget.cpp',
+ '<(moc_gen_dir)/moc_SkDebuggerGUI.cpp',
+ '<(moc_gen_dir)/moc_SkInspectorWidget.cpp',
+ '<(moc_gen_dir)/moc_SkSettingsWidget.cpp',
+ '<(moc_gen_dir)/moc_SkRasterWidget.cpp',
+ '<(moc_gen_dir)/moc_SkImageWidget.cpp',
+ '<(moc_gen_dir)/moc_SkGLWidget.cpp',
+ ],
+ 'dependencies': [
+ 'debugger_qt_mocs',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '<@(qt_libs)',
+ ],
+ },
+ }],
+ ],
+ },
+ ],
+ 'conditions': [
+ [ 'skia_os != "nacl"', {
+ 'targets': [
+ {
+ 'target_name': 'debugger_qt_mocs',
+ 'type': 'none',
+ 'sources': [
+ '<(moc_src_dir)/SkCanvasWidget.h',
+ '<(moc_src_dir)/SkDebuggerGUI.h',
+ '<(moc_src_dir)/SkInspectorWidget.h',
+ '<(moc_src_dir)/SkSettingsWidget.h',
+ '<(moc_src_dir)/SkRasterWidget.h',
+ '<(moc_src_dir)/SkImageWidget.h',
+ '<(moc_src_dir)/SkGLWidget.h',
+ ],
+ 'rules': [
+ {
+ 'rule_name': 'generate_moc',
+ 'extension': 'h',
+ 'outputs': [ '<(moc_gen_dir)/moc_<(RULE_INPUT_ROOT).cpp' ],
+ 'action': [ '<(qt_moc)', '-DSK_SUPPORT_GPU=<(skia_gpu)',
+ '<(RULE_INPUT_PATH)',
+ '-o', '<(moc_gen_dir)/moc_<(RULE_INPUT_ROOT).cpp' ],
+ 'message': 'Generating <(RULE_INPUT_ROOT).cpp.',
+ },
+ ],
+ },
+ ],
+ }],
+ ],
+}
+
+# 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..d0b8b4d
--- /dev/null
+++ b/effects.gyp
@@ -0,0 +1,45 @@
+# Gyp file for effects
+{
+ 'targets': [
+ {
+ 'target_name': 'effects',
+ 'product_name': 'skia_effects',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ 'images.gyp:*',
+ 'utils.gyp:*',
+ ],
+ 'includes': [
+ 'effects.gypi',
+ ],
+ 'include_dirs': [
+ '../include/effects',
+ '../src/core',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../include/effects',
+ ],
+ },
+ 'sources': [
+ 'effects.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
+ ],
+ 'conditions': [
+ ['skia_gpu == 1', {
+ 'include_dirs': [
+ '../include/gpu',
+ '../src/gpu',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/effects.gypi b/effects.gypi
new file mode 100644
index 0000000..84d38ac
--- /dev/null
+++ b/effects.gypi
@@ -0,0 +1,121 @@
+# Include this gypi to include all 'effects' files
+# The parent gyp/gypi file must define:
+# 'skia_src_path' e.g. skia/trunk/src
+# 'skia_include_path' e.g. skia/trunk/include
+#
+# The skia build defines these in common_variables.gypi.
+#
+{
+ 'sources': [
+ '<(skia_src_path)/effects/Sk1DPathEffect.cpp',
+ '<(skia_src_path)/effects/Sk2DPathEffect.cpp',
+ '<(skia_src_path)/effects/SkArithmeticMode.cpp',
+ '<(skia_src_path)/effects/SkAvoidXfermode.cpp',
+ '<(skia_src_path)/effects/SkBicubicImageFilter.cpp',
+ '<(skia_src_path)/effects/SkBitmapSource.cpp',
+ '<(skia_src_path)/effects/SkBlurDrawLooper.cpp',
+ '<(skia_src_path)/effects/SkBlurMask.cpp',
+ '<(skia_src_path)/effects/SkBlurMask.h',
+ '<(skia_src_path)/effects/SkBlurImageFilter.cpp',
+ '<(skia_src_path)/effects/SkBlurMaskFilter.cpp',
+ '<(skia_src_path)/effects/SkColorFilters.cpp',
+ '<(skia_src_path)/effects/SkColorFilterImageFilter.cpp',
+ '<(skia_src_path)/effects/SkColorMatrix.cpp',
+ '<(skia_src_path)/effects/SkColorMatrixFilter.cpp',
+ '<(skia_src_path)/effects/SkComposeImageFilter.cpp',
+ '<(skia_src_path)/effects/SkCornerPathEffect.cpp',
+ '<(skia_src_path)/effects/SkDashPathEffect.cpp',
+ '<(skia_src_path)/effects/SkDiscretePathEffect.cpp',
+ '<(skia_src_path)/effects/SkDisplacementMapEffect.cpp',
+ '<(skia_src_path)/effects/SkDropShadowImageFilter.cpp',
+ '<(skia_src_path)/effects/SkEmbossMask.cpp',
+ '<(skia_src_path)/effects/SkEmbossMask.h',
+ '<(skia_src_path)/effects/SkEmbossMask_Table.h',
+ '<(skia_src_path)/effects/SkEmbossMaskFilter.cpp',
+ '<(skia_src_path)/effects/SkGpuBlurUtils.h',
+ '<(skia_src_path)/effects/SkGpuBlurUtils.cpp',
+ '<(skia_src_path)/effects/SkKernel33MaskFilter.cpp',
+ '<(skia_src_path)/effects/SkLayerDrawLooper.cpp',
+ '<(skia_src_path)/effects/SkLayerRasterizer.cpp',
+ '<(skia_src_path)/effects/SkLerpXfermode.cpp',
+ '<(skia_src_path)/effects/SkLightingImageFilter.cpp',
+ '<(skia_src_path)/effects/SkMagnifierImageFilter.cpp',
+ '<(skia_src_path)/effects/SkMatrixConvolutionImageFilter.cpp',
+ '<(skia_src_path)/effects/SkMergeImageFilter.cpp',
+ '<(skia_src_path)/effects/SkMorphologyImageFilter.cpp',
+ '<(skia_src_path)/effects/SkOffsetImageFilter.cpp',
+ '<(skia_src_path)/effects/SkPaintFlagsDrawFilter.cpp',
+ '<(skia_src_path)/effects/SkPerlinNoiseShader.cpp',
+ '<(skia_src_path)/effects/SkPixelXorXfermode.cpp',
+ '<(skia_src_path)/effects/SkPorterDuff.cpp',
+ '<(skia_src_path)/effects/SkRectShaderImageFilter.cpp',
+ '<(skia_src_path)/effects/SkStippleMaskFilter.cpp',
+ '<(skia_src_path)/effects/SkTableColorFilter.cpp',
+ '<(skia_src_path)/effects/SkTableMaskFilter.cpp',
+ '<(skia_src_path)/effects/SkTestImageFilters.cpp',
+ '<(skia_src_path)/effects/SkTransparentShader.cpp',
+ '<(skia_src_path)/effects/SkXfermodeImageFilter.cpp',
+
+ '<(skia_src_path)/effects/gradients/SkBitmapCache.cpp',
+ '<(skia_src_path)/effects/gradients/SkBitmapCache.h',
+ '<(skia_src_path)/effects/gradients/SkClampRange.cpp',
+ '<(skia_src_path)/effects/gradients/SkClampRange.h',
+ '<(skia_src_path)/effects/gradients/SkRadialGradient_Table.h',
+ '<(skia_src_path)/effects/gradients/SkGradientShader.cpp',
+ '<(skia_src_path)/effects/gradients/SkGradientShaderPriv.h',
+ '<(skia_src_path)/effects/gradients/SkLinearGradient.cpp',
+ '<(skia_src_path)/effects/gradients/SkLinearGradient.h',
+ '<(skia_src_path)/effects/gradients/SkRadialGradient.cpp',
+ '<(skia_src_path)/effects/gradients/SkRadialGradient.h',
+ '<(skia_src_path)/effects/gradients/SkTwoPointRadialGradient.cpp',
+ '<(skia_src_path)/effects/gradients/SkTwoPointRadialGradient.h',
+ '<(skia_src_path)/effects/gradients/SkTwoPointConicalGradient.cpp',
+ '<(skia_src_path)/effects/gradients/SkTwoPointConicalGradient.h',
+ '<(skia_src_path)/effects/gradients/SkSweepGradient.cpp',
+ '<(skia_src_path)/effects/gradients/SkSweepGradient.h',
+
+ '<(skia_include_path)/effects/Sk1DPathEffect.h',
+ '<(skia_include_path)/effects/Sk2DPathEffect.h',
+ '<(skia_include_path)/effects/SkXfermodeImageFilter.h',
+ '<(skia_include_path)/effects/SkArithmeticMode.h',
+ '<(skia_include_path)/effects/SkAvoidXfermode.h',
+ '<(skia_include_path)/effects/SkBitmapSource.h',
+ '<(skia_include_path)/effects/SkBlurDrawLooper.h',
+ '<(skia_include_path)/effects/SkBlurImageFilter.h',
+ '<(skia_include_path)/effects/SkBlurMaskFilter.h',
+ '<(skia_include_path)/effects/SkColorMatrix.h',
+ '<(skia_include_path)/effects/SkColorMatrixFilter.h',
+ '<(skia_include_path)/effects/SkColorFilterImageFilter.h',
+ '<(skia_include_path)/effects/SkCornerPathEffect.h',
+ '<(skia_include_path)/effects/SkDashPathEffect.h',
+ '<(skia_include_path)/effects/SkDiscretePathEffect.h',
+ '<(skia_include_path)/effects/SkDisplacementMapEffect.h',
+ '<(skia_include_path)/effects/SkDrawExtraPathEffect.h',
+ '<(skia_include_path)/effects/SkDropShadowImageFilter.h',
+ '<(skia_include_path)/effects/SkEmbossMaskFilter.h',
+ '<(skia_include_path)/effects/SkGradientShader.h',
+ '<(skia_include_path)/effects/SkKernel33MaskFilter.h',
+ '<(skia_include_path)/effects/SkLayerDrawLooper.h',
+ '<(skia_include_path)/effects/SkLayerRasterizer.h',
+ '<(skia_include_path)/effects/SkLerpXfermode.h',
+ '<(skia_include_path)/effects/SkLightingImageFilter.h',
+ '<(skia_include_path)/effects/SkOffsetImageFilter.h',
+ '<(skia_include_path)/effects/SkMorphologyImageFilter.h',
+ '<(skia_include_path)/effects/SkPaintFlagsDrawFilter.h',
+ '<(skia_include_path)/effects/SkPerlinNoiseShader.h',
+ '<(skia_include_path)/effects/SkPixelXorXfermode.h',
+ '<(skia_include_path)/effects/SkPorterDuff.h',
+ '<(skia_include_path)/effects/SkRectShaderImageFilter.h',
+ '<(skia_include_path)/effects/SkStippleMaskFilter.h',
+ '<(skia_include_path)/effects/SkTableColorFilter.h',
+ '<(skia_include_path)/effects/SkTableMaskFilter.h',
+ '<(skia_include_path)/effects/SkTransparentShader.h',
+ '<(skia_include_path)/effects/SkMagnifierImageFilter.h',
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/everything.gyp b/everything.gyp
new file mode 100644
index 0000000..000bb78
--- /dev/null
+++ b/everything.gyp
@@ -0,0 +1,31 @@
+# Build EVERYTHING provided by Skia.
+# (Start with the "most" target, and then add targets that we intentionally
+# left out of "most". See most.gyp for an explanation of which targets are
+# left out of "most".)
+#
+# We used to call this the 'all' target, but in SOME cases that
+# conflicted with an automatically-generated 'all' target.
+# See https://code.google.com/p/skia/issues/detail?id=932
+#
+{
+ 'targets': [
+ {
+ 'target_name': 'everything',
+ 'type': 'none',
+ 'dependencies': ['most.gyp:most'],
+ 'conditions': [
+ ['skia_os in ("ios", "android") or (skia_os == "mac" and skia_arch_width == 32)', {
+ # debugger is not supported on this platform
+ }, {
+ 'dependencies': [ 'debugger.gyp:debugger' ],
+ }],
+ ],
+ },
+ ],
+}
+
+# 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..5552b4c
--- /dev/null
+++ b/experimental.gyp
@@ -0,0 +1,97 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'experimental',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../include/config',
+ '../include/core',
+ ],
+ 'sources': [
+ '../experimental/SkSetPoly3To3.cpp',
+ '../experimental/SkSetPoly3To3_A.cpp',
+ '../experimental/SkSetPoly3To3_D.cpp',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../experimental',
+ ],
+ },
+ },
+ {
+ 'target_name': 'SkiaExamples',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+ 'include_dirs' : [
+ '../tools/flags',
+ ],
+ 'includes': [],
+ 'sources': [
+ '../experimental/SkiaExamples/SkExample.h',
+ '../experimental/SkiaExamples/SkExample.cpp',
+ '../experimental/SkiaExamples/HelloSkiaExample.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ 'flags.gyp:flags'
+ ],
+ 'conditions' : [
+ [ 'skia_gpu == 1', {
+ 'include_dirs' : [
+ '../src/gpu', #gl/GrGLUtil.h
+ ]
+ }],
+ [ 'skia_os == "win"', {
+ 'sources' : [
+ '../src/views/win/SkOSWindow_Win.cpp',
+ '../src/views/win/skia_win.cpp',
+ ],
+ },
+ ],
+
+ [ 'skia_os == "mac"', {
+ 'sources': [
+
+# SkiaExamples specific files
+ '../experimental/SkiaExamples/SkiaExamples-Info.plist',
+ '../experimental/SkiaExamples/SkExampleNSView.h',
+ '../experimental/SkiaExamples/SkExampleNSView.mm',
+
+# Mac files
+ '../src/views/mac/SampleAppDelegate.h',
+ '../src/views/mac/SampleAppDelegate.mm',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../src/views/mac/skia_mac.mm',
+ '../src/views/mac/SkNSView.h',
+ '../src/views/mac/SkNSView.mm',
+ '../src/views/mac/SkOptionsTableView.h',
+ '../src/views/mac/SkOptionsTableView.mm',
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/SkTextFieldCell.h',
+ '../src/views/mac/SkTextFieldCell.m',
+ ],
+ 'include_dirs' : [
+ '../src/views/mac/'
+ ],
+ 'link_settings': {
+ },
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/SkiaExamples/SkiaExamples-Info.plist',
+ },
+ 'mac_bundle_resources' : [
+ '../experimental/SkiaExamples/SkiaExamples.xib'
+ ],
+ }
+ ],
+ ],
+ }
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/flags.gyp b/flags.gyp
new file mode 100644
index 0000000..e80b0a3
--- /dev/null
+++ b/flags.gyp
@@ -0,0 +1,28 @@
+# GYP file to build flag parser
+#
+{
+ 'targets': [
+ {
+ 'target_name': 'flags',
+ 'type': 'static_library',
+ 'sources': [
+ '../tools/flags/SkCommandLineFlags.h',
+ '../tools/flags/SkCommandLineFlags.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../tools/flags',
+ ],
+ }
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/freetype.gyp b/freetype.gyp
new file mode 100644
index 0000000..91c92b7
--- /dev/null
+++ b/freetype.gyp
@@ -0,0 +1,134 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'freetype',
+ 'type': 'none',
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'direct_dependent_settings': {
+ 'include_dirs' : [
+ '/usr/include/freetype2',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lfreetype',
+ ],
+ 'defines': [
+ #The font host requires at least FreeType 2.3.0 at runtime.
+ 'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020300',\
+ 'SK_CAN_USE_DLOPEN=1',
+ ],
+ }
+ },
+ }],
+ [ 'skia_os in ["android", "nacl"]', {
+ 'dependencies': [
+ 'freetype_static'
+ ],
+ 'export_dependent_settings': [
+ 'freetype_static'
+ ],
+ 'direct_dependent_settings': {
+ 'defines': [
+ # Both Android and NaCl provide at least FreeType 2.4.0
+ 'SK_FONTHOST_FREETYPE_RUNTIME_VERSION=0x020400',
+ 'SK_CAN_USE_DLOPEN=0',
+ ],
+ },
+ }],
+ ],
+ },
+ {
+ 'target_name': 'freetype_static',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ # we are dependent upon PNG for color emoji glyphs
+ 'images.gyp:images'
+ ],
+ 'sources': [
+ # base components (required)
+ '../third_party/externals/freetype/src/base/ftsystem.c',
+ '../third_party/externals/freetype/src/base/ftinit.c',
+ '../third_party/externals/freetype/src/base/ftdebug.c',
+ '../third_party/externals/freetype/src/base/ftbase.c',
+
+ '../third_party/externals/freetype/src/base/ftbbox.c', # recommended, see <freetype/ftbbox.h>
+ '../third_party/externals/freetype/src/base/ftglyph.c', # recommended, see <freetype/ftglyph.h>
+
+ '../third_party/externals/freetype/src/base/ftbitmap.c', # optional, see <freetype/ftbitmap.h>
+ '../third_party/externals/freetype/src/base/ftfstype.c', # optional
+ '../third_party/externals/freetype/src/base/ftgasp.c', # optional, see <freetype/ftgasp.h>
+ '../third_party/externals/freetype/src/base/ftlcdfil.c', # optional, see <freetype/ftlcdfil.h>
+ '../third_party/externals/freetype/src/base/ftmm.c', # optional, see <freetype/ftmm.h>
+ '../third_party/externals/freetype/src/base/ftpatent.c', # optional
+ '../third_party/externals/freetype/src/base/ftstroke.c', # optional, see <freetype/ftstroke.h>
+ '../third_party/externals/freetype/src/base/ftsynth.c', # optional, see <freetype/ftsynth.h>
+ '../third_party/externals/freetype/src/base/fttype1.c', # optional, see <freetype/t1tables.h>
+ '../third_party/externals/freetype/src/base/ftwinfnt.c', # optional, see <freetype/ftwinfnt.h>
+ '../third_party/externals/freetype/src/base/ftxf86.c', # optional, see <freetype/ftxf86.h>
+
+ # font drivers (optional; at least one is needed)
+ '../third_party/externals/freetype/src/cff/cff.c', # CFF/OpenType font driver
+ '../third_party/externals/freetype/src/sfnt/sfnt.c', # SFNT files support (TrueType & OpenType)
+ '../third_party/externals/freetype/src/truetype/truetype.c', # TrueType font driver
+
+ # rasterizers (optional; at least one is needed for vector formats)
+ '../third_party/externals/freetype/src/raster/raster.c', # monochrome rasterizer
+ '../third_party/externals/freetype/src/smooth/smooth.c', # anti-aliasing rasterizer
+
+ # auxiliary modules (optional)
+ '../third_party/externals/freetype/src/autofit/autofit.c', # auto hinting module
+ '../third_party/externals/freetype/src/pshinter/pshinter.c', # PS hinting module
+ '../third_party/externals/freetype/src/psnames/psnames.c', # PostScript glyph names support
+ ],
+ 'include_dirs': [
+ '../third_party/freetype/include_overrides',
+ '../third_party/externals/freetype/internal',
+ '../third_party/externals/freetype/builds',
+ '../third_party/externals/freetype/include',
+ '../third_party/externals/freetype',
+ ],
+ 'cflags': [
+ '-DFT2_BUILD_LIBRARY',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../third_party/freetype/include_overrides',
+ '../third_party/externals/freetype/include',
+ ],
+ },
+ 'conditions': [
+ [ 'skia_warnings_as_errors', {
+ 'cflags!': [
+ '-Werror',
+ ],
+ }],
+ [ 'skia_os == "mac"', {
+ 'sources': [
+ '../third_party/externals/freetype/src/base/ftmac.c', # only on the Macintosh
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ # These flags are used by the Android OS. They are probably overkill
+ # for Skia, but we add them for consistency.
+ 'cflags': [
+ '-W',
+ '-Wall',
+ '-fPIC',
+ '-DPIC',
+ '-DDARWIN_NO_CARBON',
+ '-DFT2_BUILD_LIBRARY',
+ '-O2',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/gm.gyp b/gm.gyp
new file mode 100644
index 0000000..6608aba
--- /dev/null
+++ b/gm.gyp
@@ -0,0 +1,96 @@
+# GYP file to build the "gm" (golden master) executable.
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'gm_expectations',
+ 'type': 'static_library',
+ 'include_dirs' : [
+ '../src/utils/',
+ ],
+ 'sources': [
+ '../gm/gm_expectations.h',
+ '../gm/gm_expectations.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'jsoncpp.gyp:jsoncpp',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../gm/',
+ ],
+ },
+ },
+ {
+ 'target_name': 'gm',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ '../src/effects',
+ '../src/pipe/utils/',
+ '../src/utils/',
+ '../src/utils/debugger',
+ ],
+ 'includes': [
+ 'gmslides.gypi',
+ ],
+ 'sources': [
+ '../gm/gm.cpp',
+ '../gm/gmmain.cpp',
+ '../gm/system_preferences_default.cpp',
+
+ '../src/pipe/utils/SamplePipeControllers.h',
+ '../src/pipe/utils/SamplePipeControllers.cpp',
+
+ '../src/utils/debugger/SkDrawCommand.h',
+ '../src/utils/debugger/SkDrawCommand.cpp',
+ '../src/utils/debugger/SkDebugCanvas.h',
+ '../src/utils/debugger/SkDebugCanvas.cpp',
+ '../src/utils/debugger/SkObjectParser.h',
+ '../src/utils/debugger/SkObjectParser.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'flags.gyp:flags',
+ 'gm.gyp:gm_expectations',
+ 'jsoncpp.gyp:jsoncpp',
+ 'pdf.gyp:pdf',
+ ],
+ 'conditions': [
+ ['skia_os == "mac"', {
+ 'sources!': [
+ '../gm/system_preferences_default.cpp',
+ ],
+ 'sources': [
+ '../gm/system_preferences_mac.mm',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ ],
+ },
+ }],
+ ['skia_os == "win"', {
+ 'dependencies': [
+ 'xps.gyp:xps',
+ ],
+ }],
+ ['skia_gpu == 1', {
+ 'include_dirs': [
+ '../src/gpu',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/gmslides.gypi b/gmslides.gypi
new file mode 100644
index 0000000..db0e286
--- /dev/null
+++ b/gmslides.gypi
@@ -0,0 +1,139 @@
+# include this gypi to include all the golden master slides.
+{
+ 'sources': [
+ '../gm/aaclip.cpp',
+ '../gm/aarectmodes.cpp',
+ '../gm/alphagradients.cpp',
+ '../gm/arcofzorro.cpp',
+ '../gm/arithmode.cpp',
+ '../gm/bicubicfilter.cpp',
+ '../gm/bigmatrix.cpp',
+ '../gm/bigtext.cpp',
+ '../gm/bitmapcopy.cpp',
+ '../gm/bitmapmatrix.cpp',
+ '../gm/bitmapfilters.cpp',
+ '../gm/bitmaprect.cpp',
+ '../gm/bitmaprecttest.cpp',
+ '../gm/bitmapscroll.cpp',
+ '../gm/bleed.cpp',
+ '../gm/blurs.cpp',
+ '../gm/blurquickreject.cpp',
+ '../gm/blurrect.cpp',
+ '../gm/circles.cpp',
+ '../gm/circularclips.cpp',
+ '../gm/colorfilterimagefilter.cpp',
+ '../gm/colormatrix.cpp',
+ '../gm/colortype.cpp',
+ '../gm/complexclip.cpp',
+ '../gm/complexclip2.cpp',
+ '../gm/composeshader.cpp',
+ #'../gm/conicpaths.cpp',
+ '../gm/convexpaths.cpp',
+ '../gm/copyTo4444.cpp',
+ '../gm/cubicpaths.cpp',
+ '../gm/cmykjpeg.cpp',
+ '../gm/degeneratesegments.cpp',
+ '../gm/dashcubics.cpp',
+ '../gm/dashing.cpp',
+ '../gm/deviceproperties.cpp',
+ '../gm/distantclip.cpp',
+ '../gm/displacement.cpp',
+ '../gm/downsamplebitmap.cpp',
+ '../gm/drawbitmaprect.cpp',
+ '../gm/drawlooper.cpp',
+ '../gm/extractbitmap.cpp',
+ '../gm/emptypath.cpp',
+ '../gm/fatpathfill.cpp',
+ '../gm/factory.cpp',
+ '../gm/filltypes.cpp',
+ '../gm/filltypespersp.cpp',
+ '../gm/filterbitmap.cpp',
+ '../gm/fontmgr.cpp',
+ '../gm/fontscaler.cpp',
+ '../gm/gammatext.cpp',
+ '../gm/getpostextpath.cpp',
+ '../gm/giantbitmap.cpp',
+ '../gm/gradients.cpp',
+ '../gm/gradientDirtyLaundry.cpp',
+ '../gm/gradient_matrix.cpp',
+ '../gm/gradtext.cpp',
+ '../gm/hairlines.cpp',
+ '../gm/hairmodes.cpp',
+ '../gm/hittestpath.cpp',
+ '../gm/imageblur.cpp',
+ '../gm/imagemagnifier.cpp',
+ '../gm/inversepaths.cpp',
+ '../gm/lerpmode.cpp',
+ '../gm/lighting.cpp',
+ '../gm/image.cpp',
+ '../gm/imagefiltersbase.cpp',
+ '../gm/imagefilterscropped.cpp',
+ '../gm/imagefiltersgraph.cpp',
+ '../gm/internal_links.cpp',
+ '../gm/lcdtext.cpp',
+ '../gm/linepaths.cpp',
+ '../gm/matrixconvolution.cpp',
+ '../gm/megalooper.cpp',
+ '../gm/mixedxfermodes.cpp',
+ '../gm/modecolorfilters.cpp',
+ '../gm/morphology.cpp',
+ '../gm/nested.cpp',
+ '../gm/ninepatchstretch.cpp',
+ '../gm/nocolorbleed.cpp',
+ '../gm/optimizations.cpp',
+ '../gm/ovals.cpp',
+ '../gm/patheffects.cpp',
+ '../gm/pathfill.cpp',
+ '../gm/pathinterior.cpp',
+ '../gm/pathopsinverse.cpp',
+ '../gm/pathopsskpclip.cpp',
+ '../gm/pathreverse.cpp',
+ '../gm/perlinnoise.cpp',
+ '../gm/points.cpp',
+ '../gm/poly2poly.cpp',
+ '../gm/quadpaths.cpp',
+ '../gm/rects.cpp',
+ '../gm/rrect.cpp',
+ '../gm/rrects.cpp',
+ '../gm/roundrects.cpp',
+ '../gm/samplerstress.cpp',
+ # '../gm/scalebitmap.cpp',
+ '../gm/shaderbounds.cpp',
+ '../gm/selftest.cpp',
+ '../gm/shadertext.cpp',
+ '../gm/shadertext2.cpp',
+ '../gm/shadertext3.cpp',
+ '../gm/shadows.cpp',
+ '../gm/shallowgradient.cpp',
+ '../gm/simpleaaclip.cpp',
+ '../gm/spritebitmap.cpp',
+ '../gm/srcmode.cpp',
+ '../gm/strokefill.cpp',
+ '../gm/strokerect.cpp',
+ '../gm/strokerects.cpp',
+ '../gm/strokes.cpp',
+ '../gm/tablecolorfilter.cpp',
+ '../gm/texteffects.cpp',
+ '../gm/testimagefilters.cpp',
+ '../gm/texdata.cpp',
+ '../gm/thinrects.cpp',
+ '../gm/thinstrokedrects.cpp',
+ '../gm/tilemodes.cpp',
+ '../gm/tinybitmap.cpp',
+ '../gm/twopointradial.cpp',
+ '../gm/typeface.cpp',
+ '../gm/verttext.cpp',
+ '../gm/verttext2.cpp',
+ '../gm/verylargebitmap.cpp',
+ '../gm/xfermodeimagefilter.cpp',
+ '../gm/xfermodes.cpp',
+ '../gm/xfermodes2.cpp',
+ '../gm/xfermodes3.cpp',
+ ],
+}
+
+# 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..df82cda
--- /dev/null
+++ b/gpu.gyp
@@ -0,0 +1,271 @@
+{
+ 'target_defaults': {
+ 'conditions': [
+ ['skia_os != "win"', {
+ 'sources/': [ ['exclude', '_win.(h|cpp)$'],
+ ],
+ }],
+ ['skia_os != "mac"', {
+ 'sources/': [ ['exclude', '_mac.(h|cpp|m|mm)$'],
+ ],
+ }],
+ ['skia_os != "linux" and skia_os != "chromeos"', {
+ 'sources/': [ ['exclude', '_unix.(h|cpp)$'],
+ ],
+ }],
+ ['skia_os != "ios"', {
+ 'sources/': [ ['exclude', '_iOS.(h|cpp|m|mm)$'],
+ ],
+ }],
+ ['skia_os != "android"', {
+ 'sources/': [ ['exclude', '_android.(h|cpp)$'],
+ ],
+ }],
+ ['skia_os != "nacl"', {
+ 'sources/': [ ['exclude', '_nacl.(h|cpp)$'],
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ 'defines': [
+ 'GR_ANDROID_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "mac"', {
+ 'defines': [
+ 'GR_MAC_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "linux" or skia_os == "chromeos"', {
+ 'defines': [
+ 'GR_LINUX_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "ios"', {
+ 'defines': [
+ 'GR_IOS_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ 'defines': [
+ 'GR_WIN32_BUILD=1',
+ ],
+ }],
+ # nullify the targets in this gyp file if skia_gpu is 0
+ [ 'skia_gpu == 0', {
+ 'sources/': [
+ ['exclude', '.*'],
+ ],
+ 'defines/': [
+ ['exclude', '.*'],
+ ],
+ 'include_dirs/': [
+ ['exclude', '.*'],
+ ],
+ 'link_settings': {
+ 'libraries/': [
+ ['exclude', '.*'],
+ ],
+ },
+ 'direct_dependent_settings': {
+ 'defines/': [
+ ['exclude', '.*'],
+ ],
+ 'include_dirs/': [
+ ['exclude', '.*'],
+ ],
+ },
+ }],
+ [ 'skia_texture_cache_mb_limit != 0', {
+ 'defines': [
+ 'GR_DEFAULT_TEXTURE_CACHE_MB_LIMIT=<(skia_texture_cache_mb_limit)',
+ ],
+ }],
+ ],
+ 'direct_dependent_settings': {
+ 'conditions': [
+ [ 'skia_os == "android"', {
+ 'defines': [
+ 'GR_ANDROID_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "mac"', {
+ 'defines': [
+ 'GR_MAC_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "linux"', {
+ 'defines': [
+ 'GR_LINUX_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "ios"', {
+ 'defines': [
+ 'GR_IOS_BUILD=1',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ 'defines': [
+ 'GR_WIN32_BUILD=1',
+ 'GR_GL_FUNCTION_TYPE=__stdcall',
+ ],
+ }],
+ ],
+ 'include_dirs': [
+ '../include/gpu',
+ ],
+ },
+ },
+ 'targets': [
+ {
+ 'target_name': 'skgpu',
+ 'product_name': 'skia_skgpu',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'angle.gyp:*',
+ 'core.gyp:*',
+ 'utils.gyp:*',
+ ],
+ 'includes': [
+ 'gpu.gypi',
+ ],
+ 'include_dirs': [
+ '../include/gpu',
+ '../src/core',
+ '../src/gpu',
+ ],
+ 'export_dependent_settings': [
+ 'angle.gyp:*',
+ ],
+ 'sources': [
+ '<@(skgpu_sources)',
+ '<@(skgpu_native_gl_sources)',
+ '<@(skgpu_angle_gl_sources)',
+ '<@(skgpu_mesa_gl_sources)',
+ '<@(skgpu_debug_gl_sources)',
+ '<@(skgpu_null_gl_sources)',
+ 'gpu.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
+ ],
+ 'defines': [
+ 'GR_IMPLEMENTATION=1',
+ ],
+ 'conditions': [
+ [ 'skia_nv_path_rendering', {
+ 'defines': [
+ 'GR_GL_USE_NV_PATH_RENDERING=1',
+ ],
+ }],
+ [ 'skia_stroke_path_rendering', {
+ 'sources': [
+ '../experimental/StrokePathRenderer/GrStrokePathRenderer.h',
+ '../experimental/StrokePathRenderer/GrStrokePathRenderer.cpp',
+ ],
+ 'defines': [
+ 'GR_STROKE_PATH_RENDERING=1',
+ ],
+ }],
+ [ 'skia_android_path_rendering', {
+ 'sources': [
+ '../experimental/AndroidPathRenderer/GrAndroidPathRenderer.cpp',
+ '../experimental/AndroidPathRenderer/GrAndroidPathRenderer.h',
+ '../experimental/AndroidPathRenderer/AndroidPathRenderer.cpp',
+ '../experimental/AndroidPathRenderer/AndroidPathRenderer.h',
+ '../experimental/AndroidPathRenderer/Vertex.h',
+ ],
+ 'defines': [
+ 'GR_ANDROID_PATH_RENDERING=1',
+ ],
+ }],
+ [ 'skia_os == "linux" or skia_os == "chromeos"', {
+ 'sources!': [
+ '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
+ '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lGL',
+ '-lGLU',
+ '-lX11',
+ ],
+ },
+ }],
+ [ 'skia_os == "nacl"', {
+ 'link_settings': {
+ 'libraries': [
+ '-lppapi_gles2',
+ ],
+ },
+ }],
+ [ 'skia_mesa and skia_os == "linux"', {
+ 'link_settings': {
+ 'libraries': [
+ '-lOSMesa',
+ ],
+ },
+ }],
+ [ 'skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ },
+ 'sources!': [
+ '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
+ '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+ ],
+ }],
+ [ 'not skia_mesa', {
+ 'sources!': [
+ '../src/gpu/gl/mesa/SkMesaGLContext.cpp',
+ '../src/gpu/gl/mesa/GrGLCreateMesaInterface.cpp',
+ ],
+ }],
+ [ 'skia_mesa and skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '/opt/X11/lib/libOSMesa.dylib',
+ ],
+ },
+ 'include_dirs': [
+ '/opt/X11/include/',
+ ],
+ }],
+ [ 'skia_os in ["win", "ios"]', {
+ 'sources!': [
+ '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
+ '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+ ],
+ }],
+ [ 'not skia_angle', {
+ 'sources!': [
+ '<@(skgpu_angle_gl_sources)',
+ ],
+ 'dependencies!': [
+ 'angle.gyp:*',
+ ],
+ 'export_dependent_settings!': [
+ 'angle.gyp:*',
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ 'sources!': [
+ '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
+ '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lGLESv2',
+ '-lEGL',
+ ],
+ },
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/gpu.gypi b/gpu.gypi
new file mode 100644
index 0000000..fff7922
--- /dev/null
+++ b/gpu.gypi
@@ -0,0 +1,282 @@
+# Include this gypi to include all 'gpu' files
+# The parent gyp/gypi file must define
+# 'skia_src_path' e.g. skia/trunk/src
+# 'skia_include_path' e.g. skia/trunk/include
+#
+# The skia build defines these in common_variables.gypi
+#
+{
+ 'variables': {
+ 'skgpu_sources': [
+ '<(skia_include_path)/gpu/GrAARectRenderer.h',
+ '<(skia_include_path)/gpu/GrBackendEffectFactory.h',
+ '<(skia_include_path)/gpu/GrClipData.h',
+ '<(skia_include_path)/gpu/GrColor.h',
+ '<(skia_include_path)/gpu/GrConfig.h',
+ '<(skia_include_path)/gpu/GrContext.h',
+ '<(skia_include_path)/gpu/GrContextFactory.h',
+ '<(skia_include_path)/gpu/GrEffect.h',
+ '<(skia_include_path)/gpu/GrEffectStage.h',
+ '<(skia_include_path)/gpu/GrEffectUnitTest.h',
+ '<(skia_include_path)/gpu/GrFontScaler.h',
+ '<(skia_include_path)/gpu/GrGlyph.h',
+ '<(skia_include_path)/gpu/GrKey.h',
+ '<(skia_include_path)/gpu/GrNoncopyable.h',
+ '<(skia_include_path)/gpu/GrOvalRenderer.h',
+ '<(skia_include_path)/gpu/GrPaint.h',
+ '<(skia_include_path)/gpu/GrPathRendererChain.h',
+ '<(skia_include_path)/gpu/GrPoint.h',
+ '<(skia_include_path)/gpu/GrRect.h',
+ '<(skia_include_path)/gpu/GrRefCnt.h',
+ '<(skia_include_path)/gpu/GrRenderTarget.h',
+ '<(skia_include_path)/gpu/GrResource.h',
+ '<(skia_include_path)/gpu/GrSurface.h',
+ '<(skia_include_path)/gpu/GrTBackendEffectFactory.h',
+ '<(skia_include_path)/gpu/GrTextContext.h',
+ '<(skia_include_path)/gpu/GrTexture.h',
+ '<(skia_include_path)/gpu/GrTextureAccess.h',
+ '<(skia_include_path)/gpu/GrTypes.h',
+ '<(skia_include_path)/gpu/GrUserConfig.h',
+
+ '<(skia_include_path)/gpu/gl/GrGLConfig.h',
+ '<(skia_include_path)/gpu/gl/GrGLExtensions.h',
+ '<(skia_include_path)/gpu/gl/GrGLFunctions.h',
+ '<(skia_include_path)/gpu/gl/GrGLInterface.h',
+
+ '<(skia_src_path)/gpu/GrAAHairLinePathRenderer.cpp',
+ '<(skia_src_path)/gpu/GrAAHairLinePathRenderer.h',
+ '<(skia_src_path)/gpu/GrAAConvexPathRenderer.cpp',
+ '<(skia_src_path)/gpu/GrAAConvexPathRenderer.h',
+ '<(skia_src_path)/gpu/GrAARectRenderer.cpp',
+ '<(skia_src_path)/gpu/GrAddPathRenderers_default.cpp',
+ '<(skia_src_path)/gpu/GrAllocator.h',
+ '<(skia_src_path)/gpu/GrAllocPool.h',
+ '<(skia_src_path)/gpu/GrAllocPool.cpp',
+ '<(skia_src_path)/gpu/GrAtlas.cpp',
+ '<(skia_src_path)/gpu/GrAtlas.h',
+ '<(skia_src_path)/gpu/GrBinHashKey.h',
+ '<(skia_src_path)/gpu/GrBufferAllocPool.cpp',
+ '<(skia_src_path)/gpu/GrBufferAllocPool.h',
+ '<(skia_src_path)/gpu/GrCacheID.cpp',
+ '<(skia_src_path)/gpu/GrClipData.cpp',
+ '<(skia_src_path)/gpu/GrContext.cpp',
+ '<(skia_src_path)/gpu/GrDefaultPathRenderer.cpp',
+ '<(skia_src_path)/gpu/GrDefaultPathRenderer.h',
+ '<(skia_src_path)/gpu/GrDrawState.cpp',
+ '<(skia_src_path)/gpu/GrDrawState.h',
+ '<(skia_src_path)/gpu/GrDrawTarget.cpp',
+ '<(skia_src_path)/gpu/GrDrawTarget.h',
+ '<(skia_src_path)/gpu/GrDrawTargetCaps.h',
+ '<(skia_src_path)/gpu/GrEffect.cpp',
+ '<(skia_src_path)/gpu/GrGeometryBuffer.cpp',
+ '<(skia_src_path)/gpu/GrGeometryBuffer.h',
+ '<(skia_src_path)/gpu/GrClipMaskCache.h',
+ '<(skia_src_path)/gpu/GrClipMaskCache.cpp',
+ '<(skia_src_path)/gpu/GrClipMaskManager.h',
+ '<(skia_src_path)/gpu/GrClipMaskManager.cpp',
+ '<(skia_src_path)/gpu/GrGpu.cpp',
+ '<(skia_src_path)/gpu/GrGpu.h',
+ '<(skia_src_path)/gpu/GrGpuFactory.cpp',
+ '<(skia_src_path)/gpu/GrIndexBuffer.h',
+ '<(skia_src_path)/gpu/GrInOrderDrawBuffer.cpp',
+ '<(skia_src_path)/gpu/GrInOrderDrawBuffer.h',
+ '<(skia_src_path)/gpu/GrMemory.cpp',
+ '<(skia_src_path)/gpu/GrMemoryPool.cpp',
+ '<(skia_src_path)/gpu/GrMemoryPool.h',
+ '<(skia_src_path)/gpu/GrOvalRenderer.cpp',
+ '<(skia_src_path)/gpu/GrPaint.cpp',
+ '<(skia_src_path)/gpu/GrPath.cpp',
+ '<(skia_src_path)/gpu/GrPath.h',
+ '<(skia_src_path)/gpu/GrPathRendererChain.cpp',
+ '<(skia_src_path)/gpu/GrPathRenderer.cpp',
+ '<(skia_src_path)/gpu/GrPathRenderer.h',
+ '<(skia_src_path)/gpu/GrPathUtils.cpp',
+ '<(skia_src_path)/gpu/GrPathUtils.h',
+ '<(skia_src_path)/gpu/GrPlotMgr.h',
+ '<(skia_src_path)/gpu/GrRectanizer.cpp',
+ '<(skia_src_path)/gpu/GrRectanizer.h',
+ '<(skia_src_path)/gpu/GrRedBlackTree.h',
+ '<(skia_src_path)/gpu/GrRenderTarget.cpp',
+ '<(skia_src_path)/gpu/GrReducedClip.cpp',
+ '<(skia_src_path)/gpu/GrReducedClip.h',
+ '<(skia_src_path)/gpu/GrResource.cpp',
+ '<(skia_src_path)/gpu/GrResourceCache.cpp',
+ '<(skia_src_path)/gpu/GrResourceCache.h',
+ '<(skia_src_path)/gpu/GrStencil.cpp',
+ '<(skia_src_path)/gpu/GrStencil.h',
+ '<(skia_src_path)/gpu/GrStencilAndCoverPathRenderer.cpp',
+ '<(skia_src_path)/gpu/GrStencilAndCoverPathRenderer.h',
+ '<(skia_src_path)/gpu/GrStencilBuffer.cpp',
+ '<(skia_src_path)/gpu/GrStencilBuffer.h',
+ '<(skia_src_path)/gpu/GrTBSearch.h',
+ '<(skia_src_path)/gpu/GrSWMaskHelper.cpp',
+ '<(skia_src_path)/gpu/GrSWMaskHelper.h',
+ '<(skia_src_path)/gpu/GrSoftwarePathRenderer.cpp',
+ '<(skia_src_path)/gpu/GrSoftwarePathRenderer.h',
+ '<(skia_src_path)/gpu/GrSurface.cpp',
+ '<(skia_src_path)/gpu/GrTemplates.h',
+ '<(skia_src_path)/gpu/GrTextContext.cpp',
+ '<(skia_src_path)/gpu/GrTextStrike.cpp',
+ '<(skia_src_path)/gpu/GrTextStrike.h',
+ '<(skia_src_path)/gpu/GrTextStrike_impl.h',
+ '<(skia_src_path)/gpu/GrTexture.cpp',
+ '<(skia_src_path)/gpu/GrTextureAccess.cpp',
+ '<(skia_src_path)/gpu/GrTHashCache.h',
+ '<(skia_src_path)/gpu/GrVertexBuffer.h',
+ '<(skia_src_path)/gpu/gr_unittests.cpp',
+
+ '<(skia_src_path)/gpu/effects/Gr1DKernelEffect.h',
+ '<(skia_src_path)/gpu/effects/GrConfigConversionEffect.cpp',
+ '<(skia_src_path)/gpu/effects/GrConfigConversionEffect.h',
+ '<(skia_src_path)/gpu/effects/GrConvolutionEffect.cpp',
+ '<(skia_src_path)/gpu/effects/GrConvolutionEffect.h',
+ '<(skia_src_path)/gpu/effects/GrSimpleTextureEffect.cpp',
+ '<(skia_src_path)/gpu/effects/GrSimpleTextureEffect.h',
+ '<(skia_src_path)/gpu/effects/GrSingleTextureEffect.cpp',
+ '<(skia_src_path)/gpu/effects/GrSingleTextureEffect.h',
+ '<(skia_src_path)/gpu/effects/GrTextureDomainEffect.cpp',
+ '<(skia_src_path)/gpu/effects/GrTextureDomainEffect.h',
+ '<(skia_src_path)/gpu/effects/GrTextureStripAtlas.cpp',
+ '<(skia_src_path)/gpu/effects/GrTextureStripAtlas.h',
+
+ '<(skia_src_path)/gpu/gl/GrGLBufferImpl.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLBufferImpl.h',
+ '<(skia_src_path)/gpu/gl/GrGLCaps.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLCaps.h',
+ '<(skia_src_path)/gpu/gl/GrGLContext.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLContext.h',
+ '<(skia_src_path)/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLDefaultInterface_none.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLDefines.h',
+ '<(skia_src_path)/gpu/gl/GrGLEffect.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLEffect.h',
+ '<(skia_src_path)/gpu/gl/GrGLExtensions.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLEffectMatrix.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLEffectMatrix.h',
+ '<(skia_src_path)/gpu/gl/GrGLIndexBuffer.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLIndexBuffer.h',
+ '<(skia_src_path)/gpu/gl/GrGLInterface.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLIRect.h',
+ '<(skia_src_path)/gpu/gl/GrGLNoOpInterface.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLNoOpInterface.h',
+ '<(skia_src_path)/gpu/gl/GrGLPath.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLPath.h',
+ '<(skia_src_path)/gpu/gl/GrGLProgram.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLProgram.h',
+ '<(skia_src_path)/gpu/gl/GrGLProgramDesc.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLProgramDesc.h',
+ '<(skia_src_path)/gpu/gl/GrGLRenderTarget.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLRenderTarget.h',
+ '<(skia_src_path)/gpu/gl/GrGLShaderBuilder.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLShaderBuilder.h',
+ '<(skia_src_path)/gpu/gl/GrGLShaderVar.h',
+ '<(skia_src_path)/gpu/gl/GrGLSL.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLSL.h',
+ '<(skia_src_path)/gpu/gl/GrGLSL_impl.h',
+ '<(skia_src_path)/gpu/gl/GrGLStencilBuffer.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLStencilBuffer.h',
+ '<(skia_src_path)/gpu/gl/GrGLTexture.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLTexture.h',
+ '<(skia_src_path)/gpu/gl/GrGLUtil.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLUtil.h',
+ '<(skia_src_path)/gpu/gl/GrGLUniformManager.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLUniformManager.h',
+ '<(skia_src_path)/gpu/gl/GrGLUniformHandle.h',
+ '<(skia_src_path)/gpu/gl/GrGLVertexArray.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLVertexArray.h',
+ '<(skia_src_path)/gpu/gl/GrGLVertexBuffer.cpp',
+ '<(skia_src_path)/gpu/gl/GrGLVertexBuffer.h',
+ '<(skia_src_path)/gpu/gl/GrGpuGL.cpp',
+ '<(skia_src_path)/gpu/gl/GrGpuGL.h',
+ '<(skia_src_path)/gpu/gl/GrGpuGL_program.cpp',
+
+ # Sk files
+ '<(skia_include_path)/gpu/SkGpuDevice.h',
+ '<(skia_include_path)/gpu/SkGr.h',
+ '<(skia_include_path)/gpu/SkGrPixelRef.h',
+ '<(skia_include_path)/gpu/SkGrTexturePixelRef.h',
+
+ '<(skia_include_path)/gpu/gl/SkGLContextHelper.h',
+
+ '<(skia_src_path)/gpu/SkGpuDevice.cpp',
+ '<(skia_src_path)/gpu/SkGr.cpp',
+ '<(skia_src_path)/gpu/SkGrFontScaler.cpp',
+ '<(skia_src_path)/gpu/SkGrPixelRef.cpp',
+ '<(skia_src_path)/gpu/SkGrTexturePixelRef.cpp',
+
+ '<(skia_src_path)/image/SkImage_Gpu.cpp',
+ '<(skia_src_path)/image/SkSurface_Gpu.cpp',
+
+ '<(skia_src_path)/gpu/gl/SkGLContextHelper.cpp'
+ ],
+ 'skgpu_native_gl_sources': [
+ '<(skia_src_path)/gpu/gl/GrGLDefaultInterface_native.cpp',
+ '<(skia_src_path)/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp',
+ '<(skia_src_path)/gpu/gl/win/GrGLCreateNativeInterface_win.cpp',
+ '<(skia_src_path)/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp',
+ '<(skia_src_path)/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp',
+ '<(skia_src_path)/gpu/gl/android/GrGLCreateNativeInterface_android.cpp',
+
+ # Sk files
+ '<(skia_include_path)/gpu/gl/SkNativeGLContext.h',
+ '<(skia_src_path)/gpu/gl/mac/SkNativeGLContext_mac.cpp',
+ '<(skia_src_path)/gpu/gl/nacl/SkNativeGLContext_nacl.cpp',
+ '<(skia_src_path)/gpu/gl/win/SkNativeGLContext_win.cpp',
+ '<(skia_src_path)/gpu/gl/unix/SkNativeGLContext_unix.cpp',
+ '<(skia_src_path)/gpu/gl/android/SkNativeGLContext_android.cpp',
+ '<(skia_src_path)/gpu/gl/iOS/SkNativeGLContext_iOS.mm',
+ ],
+ 'skgpu_mesa_gl_sources': [
+ '<(skia_src_path)/gpu/gl/mesa/GrGLCreateMesaInterface.cpp',
+
+ # Sk files
+ '<(skia_include_path)/gpu/gl/SkMesaGLContext.h',
+ '<(skia_src_path)/gpu/gl/mesa/SkMesaGLContext.cpp',
+ ],
+ 'skgpu_angle_gl_sources': [
+ '<(skia_src_path)/gpu/gl/angle/GrGLCreateANGLEInterface.cpp',
+
+ # Sk files
+ '<(skia_include_path)/gpu/gl/SkANGLEGLContext.h',
+ '<(skia_src_path)/gpu/gl/angle/SkANGLEGLContext.cpp',
+ ],
+ 'skgpu_debug_gl_sources': [
+ '<(skia_src_path)/gpu/gl/debug/GrGLCreateDebugInterface.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrFakeRefObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrBufferObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrBufferObj.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrFBBindableObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrRenderBufferObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrTextureObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrTextureObj.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrTextureUnitObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrTextureUnitObj.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrFrameBufferObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrFrameBufferObj.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrShaderObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrShaderObj.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrProgramObj.h',
+ '<(skia_src_path)/gpu/gl/debug/GrProgramObj.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrDebugGL.h',
+ '<(skia_src_path)/gpu/gl/debug/GrDebugGL.cpp',
+ '<(skia_src_path)/gpu/gl/debug/GrVertexArrayObj.h',
+
+ # Sk files
+ '<(skia_include_path)/gpu/gl/SkDebugGLContext.h',
+ '<(skia_src_path)/gpu/gl/debug/SkDebugGLContext.cpp',
+ ],
+ 'skgpu_null_gl_sources': [
+ '<(skia_src_path)/gpu/gl/GrGLCreateNullInterface.cpp',
+
+ # Sk files
+ '<(skia_include_path)/gpu/gl/SkNullGLContext.h',
+ '<(skia_src_path)/gpu/gl/SkNullGLContext.cpp',
+ ],
+ },
+}
+
+# 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..0bc8a76
--- /dev/null
+++ b/images.gyp
@@ -0,0 +1,176 @@
+# GYP file for images project.
+{
+ 'targets': [
+ {
+ 'target_name': 'images',
+ 'product_name': 'skia_images',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ 'libjpeg.gyp:*',
+ 'libwebp.gyp:libwebp',
+ 'utils.gyp:utils',
+ ],
+ 'export_dependent_settings': [
+ 'libjpeg.gyp:*',
+ ],
+ 'include_dirs': [
+ '../include/images',
+ '../include/lazy',
+ # for access to SkErrorInternals.h
+ '../src/core/',
+ # for access to SkImagePriv.h
+ '../src/image/',
+ ],
+ 'sources': [
+ '../include/images/SkForceLinking.h',
+ '../include/images/SkImageRef.h',
+ '../include/images/SkImageRef_GlobalPool.h',
+ '../src/images/SkJpegUtility.h',
+ '../include/images/SkMovie.h',
+ '../include/images/SkPageFlipper.h',
+
+ '../src/images/bmpdecoderhelper.cpp',
+ '../src/images/bmpdecoderhelper.h',
+
+ '../src/images/SkForceLinking.cpp',
+ '../src/images/SkImageDecoder.cpp',
+ '../src/images/SkImageDecoder_FactoryDefault.cpp',
+ '../src/images/SkImageDecoder_FactoryRegistrar.cpp',
+ # If decoders are added/removed to/from (all/individual)
+ # platform(s), be sure to update SkForceLinking.cpp
+ # so the right decoders will be forced to link.
+ '../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_libwebp.cpp',
+ '../src/images/SkImageDecoder_wbmp.cpp',
+ '../src/images/SkImageEncoder.cpp',
+ '../src/images/SkImageEncoder_Factory.cpp',
+ '../src/images/SkImageEncoder_argb.cpp',
+ '../src/images/SkImageRef.cpp',
+ '../src/images/SkImageRefPool.cpp',
+ '../src/images/SkImageRefPool.h',
+ '../src/images/SkImageRef_ashmem.h',
+ '../src/images/SkImageRef_ashmem.cpp',
+ '../src/images/SkImageRef_GlobalPool.cpp',
+ '../src/images/SkImages.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',
+
+ '../src/ports/SkImageDecoder_CG.cpp',
+ '../src/ports/SkImageDecoder_WIC.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "win"', {
+ 'sources!': [
+ '../src/images/SkImageDecoder_FactoryDefault.cpp',
+ '../src/images/SkImageDecoder_libgif.cpp',
+ '../src/images/SkImageDecoder_libpng.cpp',
+ '../src/images/SkMovie_gif.cpp',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ 'windowscodecs.lib',
+ ],
+ },
+ },{ #else if skia_os != win
+ 'sources!': [
+ '../src/ports/SkImageDecoder_WIC.cpp',
+ ],
+ }],
+ [ 'skia_os in ["mac", "ios"]', {
+ 'sources!': [
+ '../src/images/SkImageDecoder_FactoryDefault.cpp',
+ '../src/images/SkImageDecoder_libpng.cpp',
+ '../src/images/SkImageDecoder_libgif.cpp',
+ '../src/images/SkMovie_gif.cpp',
+ ],
+ },{ #else if skia_os != mac
+ 'sources!': [
+ '../src/ports/SkImageDecoder_CG.cpp',
+ ],
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris"]', {
+ # Any targets that depend on this target should link in libpng, libgif, and
+ # our code that calls it.
+ # See http://code.google.com/p/gyp/wiki/InputFormatReference#Dependent_Settings
+ 'link_settings': {
+ 'libraries': [
+ '-lgif',
+ '-lpng',
+ '-lz',
+ ],
+ },
+ # end libpng/libgif stuff
+ }],
+ # FIXME: NaCl should be just like linux, etc, above, but it currently is separated out
+ # to remove gif. Once gif is supported by naclports, this can be merged into the above
+ # condition.
+ [ 'skia_os == "nacl"', {
+ 'sources!': [
+ '../src/images/SkImageDecoder_libgif.cpp',
+ '../src/images/SkMovie_gif.cpp',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lpng',
+ '-lz',
+ ],
+ },
+ }],
+ [ 'skia_os == "android"', {
+ 'include_dirs': [
+ '../src/utils',
+ ],
+ 'dependencies': [
+ 'android_deps.gyp:gif',
+ 'android_deps.gyp:png',
+ ],
+ 'export_dependent_settings': [
+ 'android_deps.gyp:png'
+ ],
+ },{ #else if skia_os != android
+ 'sources!': [
+ '../src/images/SkImageRef_ashmem.h',
+ '../src/images/SkImageRef_ashmem.cpp',
+ ],
+ }],
+ [ 'skia_os == "chromeos"', {
+ 'dependencies': [
+ 'chromeos_deps.gyp:gif',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '-lpng',
+ ],
+ },
+ }],
+ [ 'skia_os == "ios"', {
+ 'include_dirs': [
+ '../include/utils/mac',
+ ],
+ }],
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../include/images',
+ '../include/lazy',
+ ],
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/jsoncpp.gyp b/jsoncpp.gyp
new file mode 100644
index 0000000..ab00db9
--- /dev/null
+++ b/jsoncpp.gyp
@@ -0,0 +1,67 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# TODO: This file was copied from the external dependency
+# third_party/externals/jsoncpp-chromium/jsoncpp.gyp , at revision 125399,
+# with directory paths modified to work at this level.
+#
+# It would be better for us to depend on that gypfile within the external
+# dependency, but so far we have been unable to make that work reliably.
+# See https://code.google.com/p/skia/issues/detail?id=1023
+# and https://code.google.com/p/skia/source/detail?r=7115
+
+{
+ 'variables': {
+ 'skia_warnings_as_errors': 0,
+ },
+ 'targets': [
+ {
+ 'target_name': 'jsoncpp',
+ 'type': 'static_library',
+ 'defines': [
+ 'JSON_USE_EXCEPTION=0',
+ ],
+ 'sources': [
+ '../third_party/externals/jsoncpp/include/json/assertions.h',
+ '../third_party/externals/jsoncpp/include/json/autolink.h',
+ '../third_party/externals/jsoncpp/include/json/config.h',
+ '../third_party/externals/jsoncpp/include/json/features.h',
+ '../third_party/externals/jsoncpp/include/json/forwards.h',
+ '../third_party/externals/jsoncpp/include/json/json.h',
+ '../third_party/externals/jsoncpp/include/json/reader.h',
+ '../third_party/externals/jsoncpp-chromium/overrides/include/json/value.h',
+ '../third_party/externals/jsoncpp/include/json/writer.h',
+ '../third_party/externals/jsoncpp/src/lib_json/json_batchallocator.h',
+ '../third_party/externals/jsoncpp/src/lib_json/json_reader.cpp',
+ '../third_party/externals/jsoncpp/src/lib_json/json_tool.h',
+ '../third_party/externals/jsoncpp-chromium/overrides/src/lib_json/json_value.cpp',
+ '../third_party/externals/jsoncpp/src/lib_json/json_writer.cpp',
+ ],
+ 'include_dirs': [
+ '../third_party/externals/jsoncpp-chromium/overrides/include/',
+ '../third_party/externals/jsoncpp/include/',
+ '../third_party/externals/jsoncpp/src/lib_json/',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../third_party/externals/jsoncpp-chromium/overrides/include/',
+ '../third_party/externals/jsoncpp/include/',
+ ],
+ },
+ 'conditions': [
+ [ 'skia_os == "android"', {
+ 'cflags!': [
+ '-Wall',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/libjpeg.gyp b/libjpeg.gyp
new file mode 100644
index 0000000..975831b
--- /dev/null
+++ b/libjpeg.gyp
@@ -0,0 +1,141 @@
+# Copyright 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This is a copy of ../third_party/externals/libjpeg/libjpeg.gyp , modified
+# such that all source paths point into that directory.
+# See http://code.google.com/p/skia/issues/detail?id=543 ('wrap libjpeg.gyp
+# from Chrome's libjpeg port, rather than making our own copy') for a better
+# long-term solution.
+
+{
+ 'variables': {
+ 'use_system_libjpeg%': 0,
+ 'skia_warnings_as_errors': 0,
+ },
+ 'conditions': [
+ ['skia_os == "android"', {
+ 'targets': [
+ {
+ 'target_name': 'libjpeg',
+ 'type': 'none',
+ 'dependencies': [
+ 'android_deps.gyp:jpeg',
+ ],
+ 'export_dependent_settings': [
+ 'android_deps.gyp:jpeg',
+ ],
+ },
+ ],
+ }, { # skia_os != android
+ 'conditions': [
+ ['use_system_libjpeg==0', {
+ 'targets': [
+ {
+ 'target_name': 'libjpeg',
+ 'type': 'static_library',
+ 'sources': [
+ # we currently build skia's version of libjpeg-turbo without
+ # SIMD optimizations for simplicity
+ '../third_party/externals/libjpeg/jsimd_none.c',
+
+ '../third_party/externals/libjpeg/jcapimin.c',
+ '../third_party/externals/libjpeg/jcapistd.c',
+ '../third_party/externals/libjpeg/jccoefct.c',
+ '../third_party/externals/libjpeg/jccolor.c',
+ '../third_party/externals/libjpeg/jcdctmgr.c',
+ '../third_party/externals/libjpeg/jchuff.c',
+ '../third_party/externals/libjpeg/jchuff.h',
+ '../third_party/externals/libjpeg/jcinit.c',
+ '../third_party/externals/libjpeg/jcmainct.c',
+ '../third_party/externals/libjpeg/jcmarker.c',
+ '../third_party/externals/libjpeg/jcmaster.c',
+ '../third_party/externals/libjpeg/jcomapi.c',
+ '../third_party/externals/libjpeg/jconfig.h',
+ '../third_party/externals/libjpeg/jcparam.c',
+ '../third_party/externals/libjpeg/jcphuff.c',
+ '../third_party/externals/libjpeg/jcprepct.c',
+ '../third_party/externals/libjpeg/jcsample.c',
+ '../third_party/externals/libjpeg/jdapimin.c',
+ '../third_party/externals/libjpeg/jdapistd.c',
+ '../third_party/externals/libjpeg/jdatadst.c',
+ '../third_party/externals/libjpeg/jdatasrc.c',
+ '../third_party/externals/libjpeg/jdcoefct.c',
+ '../third_party/externals/libjpeg/jdcolor.c',
+ '../third_party/externals/libjpeg/jdct.h',
+ '../third_party/externals/libjpeg/jddctmgr.c',
+ '../third_party/externals/libjpeg/jdhuff.c',
+ '../third_party/externals/libjpeg/jdhuff.h',
+ '../third_party/externals/libjpeg/jdinput.c',
+ '../third_party/externals/libjpeg/jdmainct.c',
+ '../third_party/externals/libjpeg/jdmarker.c',
+ '../third_party/externals/libjpeg/jdmaster.c',
+ '../third_party/externals/libjpeg/jdmerge.c',
+ '../third_party/externals/libjpeg/jdphuff.c',
+ '../third_party/externals/libjpeg/jdpostct.c',
+ '../third_party/externals/libjpeg/jdsample.c',
+ '../third_party/externals/libjpeg/jerror.c',
+ '../third_party/externals/libjpeg/jerror.h',
+ '../third_party/externals/libjpeg/jfdctflt.c',
+ '../third_party/externals/libjpeg/jfdctfst.c',
+ '../third_party/externals/libjpeg/jfdctint.c',
+ '../third_party/externals/libjpeg/jidctflt.c',
+ '../third_party/externals/libjpeg/jidctfst.c',
+ '../third_party/externals/libjpeg/jidctint.c',
+ '../third_party/externals/libjpeg/jidctred.c',
+ '../third_party/externals/libjpeg/jinclude.h',
+ '../third_party/externals/libjpeg/jmemmgr.c',
+ '../third_party/externals/libjpeg/jmemnobs.c',
+ '../third_party/externals/libjpeg/jmemsys.h',
+ '../third_party/externals/libjpeg/jmorecfg.h',
+ '../third_party/externals/libjpeg/jpegint.h',
+ '../third_party/externals/libjpeg/jpeglib.h',
+ '../third_party/externals/libjpeg/jpeglibmangler.h',
+ '../third_party/externals/libjpeg/jquant1.c',
+ '../third_party/externals/libjpeg/jquant2.c',
+ '../third_party/externals/libjpeg/jutils.c',
+ '../third_party/externals/libjpeg/jversion.h',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../third_party/externals/libjpeg',
+ ],
+ },
+ 'conditions': [
+ [ 'skia_os != "win"', {
+ 'product_name': 'jpeg',
+ 'cflags': [
+ '-Wno-main', # supresses warnings about naming things "main"
+ ],
+ }],
+ ],
+ },
+ ],
+ }, {
+ 'targets': [
+ {
+ 'target_name': 'libjpeg',
+ 'type': 'none',
+ 'direct_dependent_settings': {
+ 'defines': [
+ 'USE_SYSTEM_LIBJPEG',
+ ],
+ },
+ 'link_settings': {
+ 'libraries': [
+ '-ljpeg',
+ ],
+ },
+ }
+ ],
+ }],
+ ],
+ }],
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/libwebp.gyp b/libwebp.gyp
new file mode 100644
index 0000000..17e0026
--- /dev/null
+++ b/libwebp.gyp
@@ -0,0 +1,176 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'variables': {
+ 'use_system_libwebp%': 0,
+ },
+ 'conditions': [
+ ['use_system_libwebp==0', {
+ 'targets': [
+ {
+ 'target_name': 'libwebp_dec',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../third_party/externals/libwebp',
+ ],
+ 'sources': [
+ '../third_party/externals/libwebp/src/dec/alpha.c',
+ '../third_party/externals/libwebp/src/dec/buffer.c',
+ '../third_party/externals/libwebp/src/dec/frame.c',
+ '../third_party/externals/libwebp/src/dec/idec.c',
+ '../third_party/externals/libwebp/src/dec/io.c',
+ '../third_party/externals/libwebp/src/dec/layer.c',
+ '../third_party/externals/libwebp/src/dec/quant.c',
+ '../third_party/externals/libwebp/src/dec/tree.c',
+ '../third_party/externals/libwebp/src/dec/vp8.c',
+ '../third_party/externals/libwebp/src/dec/vp8l.c',
+ '../third_party/externals/libwebp/src/dec/webp.c',
+ ],
+ },
+ {
+ 'target_name': 'libwebp_demux',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../third_party/externals/libwebp',
+ ],
+ 'sources': [
+ '../third_party/externals/libwebp/src/demux/demux.c',
+ ],
+ },
+ {
+ 'target_name': 'libwebp_dsp',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../third_party/externals/libwebp',
+ ],
+ 'sources': [
+ '../third_party/externals/libwebp/src/dsp/cpu.c',
+ '../third_party/externals/libwebp/src/dsp/dec.c',
+ '../third_party/externals/libwebp/src/dsp/dec_sse2.c',
+ '../third_party/externals/libwebp/src/dsp/enc.c',
+ '../third_party/externals/libwebp/src/dsp/enc_sse2.c',
+ '../third_party/externals/libwebp/src/dsp/lossless.c',
+ '../third_party/externals/libwebp/src/dsp/upsampling.c',
+ '../third_party/externals/libwebp/src/dsp/upsampling_sse2.c',
+ '../third_party/externals/libwebp/src/dsp/yuv.c',
+ ],
+ 'conditions': [
+ ['skia_os == "android"', {
+ 'dependencies' : [
+ 'android_deps.gyp:cpu_features',
+ ],
+ }],
+ ],
+ },
+ {
+ 'target_name': 'libwebp_dsp_neon',
+ 'conditions': [
+ ['arm_version >= 7', {
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../third_party/externals/libwebp',
+ ],
+ 'sources': [
+ '../third_party/externals/libwebp/src/dsp/dec_neon.c',
+ '../third_party/externals/libwebp/src/dsp/enc_neon.c',
+ '../third_party/externals/libwebp/src/dsp/upsampling_neon.c',
+ ],
+ # behavior similar dsp_neon.c.neon in an Android.mk
+ 'cflags!': [
+ '-mfpu=vfpv3-d16',
+ ],
+ 'cflags': [ '-mfpu=neon' ],
+ },{ # !(arm_version >= 7)
+ 'type': 'none',
+ }],
+ ],
+ },
+ {
+ 'target_name': 'libwebp_enc',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../third_party/externals/libwebp',
+ ],
+ 'sources': [
+ '../third_party/externals/libwebp/src/enc/alpha.c',
+ '../third_party/externals/libwebp/src/enc/analysis.c',
+ '../third_party/externals/libwebp/src/enc/backward_references.c',
+ '../third_party/externals/libwebp/src/enc/config.c',
+ '../third_party/externals/libwebp/src/enc/cost.c',
+ '../third_party/externals/libwebp/src/enc/filter.c',
+ '../third_party/externals/libwebp/src/enc/frame.c',
+ '../third_party/externals/libwebp/src/enc/histogram.c',
+ '../third_party/externals/libwebp/src/enc/iterator.c',
+ '../third_party/externals/libwebp/src/enc/layer.c',
+ '../third_party/externals/libwebp/src/enc/picture.c',
+ '../third_party/externals/libwebp/src/enc/quant.c',
+ '../third_party/externals/libwebp/src/enc/syntax.c',
+ '../third_party/externals/libwebp/src/enc/token.c',
+ '../third_party/externals/libwebp/src/enc/tree.c',
+ '../third_party/externals/libwebp/src/enc/vp8l.c',
+ '../third_party/externals/libwebp/src/enc/webpenc.c',
+ ],
+ },
+ {
+ 'target_name': 'libwebp_utils',
+ 'type': 'static_library',
+ 'include_dirs': [
+ '../third_party/externals/libwebp',
+ ],
+ 'sources': [
+ '../third_party/externals/libwebp/src/utils/bit_reader.c',
+ '../third_party/externals/libwebp/src/utils/bit_writer.c',
+ '../third_party/externals/libwebp/src/utils/color_cache.c',
+ '../third_party/externals/libwebp/src/utils/filters.c',
+ '../third_party/externals/libwebp/src/utils/huffman.c',
+ '../third_party/externals/libwebp/src/utils/huffman_encode.c',
+ '../third_party/externals/libwebp/src/utils/quant_levels.c',
+ '../third_party/externals/libwebp/src/utils/quant_levels_dec.c',
+ '../third_party/externals/libwebp/src/utils/rescaler.c',
+ '../third_party/externals/libwebp/src/utils/thread.c',
+ '../third_party/externals/libwebp/src/utils/utils.c',
+ ],
+ },
+ {
+ 'target_name': 'libwebp',
+ 'type': 'none',
+ 'dependencies' : [
+ 'libwebp_dec',
+ 'libwebp_demux',
+ 'libwebp_dsp',
+ 'libwebp_dsp_neon',
+ 'libwebp_enc',
+ 'libwebp_utils',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../third_party/externals/libwebp/src',
+ ],
+ },
+ 'conditions': [
+ ['OS!="win"', {'product_name': 'webp'}],
+ ],
+ },
+ ],
+ }, {
+ 'targets': [
+ {
+ 'target_name': 'libwebp',
+ 'type': 'none',
+ 'direct_dependent_settings': {
+ 'defines': [
+ 'ENABLE_WEBP',
+ ],
+ },
+ 'link_settings': {
+ 'libraries': [
+ '-lwebp',
+ ],
+ },
+ }
+ ],
+ }],
+ ],
+}
diff --git a/lua.gyp b/lua.gyp
new file mode 100644
index 0000000..280b94c
--- /dev/null
+++ b/lua.gyp
@@ -0,0 +1,71 @@
+#
+# Copyright 2013 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+
+
+{
+ 'targets': [
+ {
+ 'target_name': 'lua',
+ 'type': 'static_library',
+ 'suppress_wildcard': '1',
+ 'sources': [
+ # core
+ '../third_party/lua/src/lapi.c',
+ '../third_party/lua/src/lcode.c',
+ '../third_party/lua/src/lctype.c',
+ '../third_party/lua/src/ldebug.c',
+ '../third_party/lua/src/ldo.c',
+ '../third_party/lua/src/ldump.c',
+ '../third_party/lua/src/lfunc.c',
+ '../third_party/lua/src/lgc.c',
+ '../third_party/lua/src/llex.c',
+ '../third_party/lua/src/lmem.c',
+ '../third_party/lua/src/lobject.c',
+ '../third_party/lua/src/lopcodes.c',
+ '../third_party/lua/src/lparser.c',
+ '../third_party/lua/src/lstate.c',
+ '../third_party/lua/src/lstring.c',
+ '../third_party/lua/src/ltable.c',
+ '../third_party/lua/src/ltm.c',
+ '../third_party/lua/src/lundump.c',
+ '../third_party/lua/src/lvm.c',
+ '../third_party/lua/src/lzio.c',
+
+ # libraries
+ '../third_party/lua/src/lauxlib.c',
+ '../third_party/lua/src/lbaselib.c',
+ '../third_party/lua/src/lbitlib.c',
+ '../third_party/lua/src/lcorolib.c',
+ '../third_party/lua/src/ldblib.c',
+ '../third_party/lua/src/liolib.c',
+ '../third_party/lua/src/lmathlib.c',
+ '../third_party/lua/src/loslib.c',
+ '../third_party/lua/src/lstrlib.c',
+ '../third_party/lua/src/ltablib.c',
+ '../third_party/lua/src/loadlib.c',
+ '../third_party/lua/src/linit.c',
+ ],
+ 'include_dirs': [
+ '../third_party/lua/src/',
+ ],
+ 'all_dependent_settings': {
+ 'include_dirs': [
+ '../third_party/lua/src/',
+ ],
+ },
+ 'defines': [
+ "getlocaledecpoint()='.'"
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/most.gyp b/most.gyp
new file mode 100644
index 0000000..cfe528e
--- /dev/null
+++ b/most.gyp
@@ -0,0 +1,36 @@
+# Build ALMOST everything provided by Skia; this should be the default target.
+#
+# This omits the following targets that many developers won't want to build:
+# - debugger: this requires QT to build
+#
+{
+ 'targets': [
+ {
+ 'target_name': 'most',
+ 'type': 'none',
+ 'dependencies': [
+ # The minimal set of static libraries for basic Skia functionality.
+ 'skia_lib.gyp:skia_lib',
+
+ 'bench.gyp:bench',
+ 'gm.gyp:gm',
+ 'SampleApp.gyp:SampleApp',
+ 'tests.gyp:tests',
+ 'tools.gyp:tools',
+ 'pathops_unittest.gyp:*',
+# 'pdfviewer.gyp:pdfviewer',
+ ],
+ 'conditions': [
+ ['skia_os == "android"', {
+ 'dependencies': [ 'android_system.gyp:SampleApp_APK' ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/nacl.gyp b/nacl.gyp
new file mode 100644
index 0000000..3dd4c8e
--- /dev/null
+++ b/nacl.gyp
@@ -0,0 +1,19 @@
+# Common entry point for all Skia executables running in NaCl
+{
+ 'targets': [
+ {
+ 'target_name': 'nacl_interface',
+ 'type': 'static_library',
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'include_dirs': [
+ # For SkThreadUtils.h
+ '../src/utils',
+ ],
+ 'sources': [
+ '../platform_tools/nacl/src/nacl_interface.cpp',
+ ],
+ },
+ ],
+}
diff --git a/opts.gyp b/opts.gyp
new file mode 100644
index 0000000..8a48b9a
--- /dev/null
+++ b/opts.gyp
@@ -0,0 +1,180 @@
+{
+ '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',
+ 'product_name': 'skia_opts',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ ],
+ 'include_dirs': [
+ '../src/core',
+ '../src/opts',
+ ],
+ 'conditions': [
+ [ 'skia_arch_type == "x86" and skia_os != "ios"', {
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chromeos", "android"]', {
+ 'cflags': [
+ '-msse2',
+ ],
+ }],
+ ],
+ 'include_dirs': [
+ '../include/utils',
+ ],
+ 'dependencies': [
+ 'opts_ssse3',
+ ],
+ 'sources': [
+ '../src/opts/opts_check_SSE2.cpp',
+ '../src/opts/SkBitmapProcState_opts_SSE2.cpp',
+ '../src/opts/SkBitmapFilter_opts_SSE2.cpp',
+ '../src/opts/SkBlitRow_opts_SSE2.cpp',
+ '../src/opts/SkBlitRect_opts_SSE2.cpp',
+ '../src/opts/SkUtils_opts_SSE2.cpp',
+ ],
+ }],
+ [ 'skia_arch_type == "arm" and arm_version >= 7', {
+ # The assembly uses the frame pointer register (r7 in Thumb/r11 in
+ # ARM), the compiler doesn't like that.
+ 'cflags!': [
+ '-fno-omit-frame-pointer',
+ '-mapcs-frame',
+ '-mapcs',
+ ],
+ 'cflags': [
+ '-fomit-frame-pointer',
+ '-mno-apcs-frame',
+ ],
+ 'variables': {
+ 'arm_neon_optional%': '<(arm_neon_optional>',
+ },
+ 'sources': [
+ '../src/opts/opts_check_arm.cpp',
+ '../src/opts/memset.arm.S',
+ '../src/opts/SkBitmapProcState_opts_arm.cpp',
+ '../src/opts/SkBlitRow_opts_arm.cpp',
+ '../src/opts/SkBlitRow_opts_arm.h',
+ ],
+ 'conditions': [
+ [ 'arm_neon == 1 or arm_neon_optional == 1', {
+ 'dependencies': [
+ 'opts_neon',
+ ]
+ }],
+ [ 'skia_os == "ios"', {
+ 'sources!': [
+ # these fail to compile under xcode for ios
+ '../src/opts/memset.arm.S',
+ '../src/opts/SkBitmapProcState_opts_arm.cpp',
+ '../src/opts/SkBlitRow_opts_arm.cpp',
+ ],
+ }],
+ ],
+ }],
+ [ '(skia_arch_type == "arm" and arm_version < 7) or (skia_os == "ios")', {
+ 'sources': [
+ '../src/opts/SkBitmapProcState_opts_none.cpp',
+ '../src/opts/SkBlitRow_opts_none.cpp',
+ '../src/opts/SkUtils_opts_none.cpp',
+ ],
+ }],
+ ],
+ },
+ # For the same lame reasons as what is done for skia_opts, we have to
+ # create another target specifically for SSSE3 code as we would not want
+ # to compile the SSE2 code with -mssse3 which would potentially allow
+ # gcc to generate SSSE3 code.
+ {
+ 'target_name': 'opts_ssse3',
+ 'product_name': 'skia_opts_ssse3',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ ],
+ 'include_dirs': [
+ '../src/core',
+ ],
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "nacl", "chromeos", "android"]', {
+ 'cflags': [
+ '-mssse3',
+ ],
+ }],
+ # (Mac has -mssse3 globally.)
+ [ 'skia_arch_type == "x86"', {
+ 'sources': [
+ '../src/opts/SkBitmapProcState_opts_SSSE3.cpp',
+ ],
+ }],
+ ],
+ },
+ # NEON code must be compiled with -mfpu=neon which also affects scalar
+ # code. To support dynamic NEON code paths, we need to build all
+ # NEON-specific sources in a separate static library. The situation
+ # is very similar to the SSSE3 one.
+ {
+ 'target_name': 'opts_neon',
+ 'product_name': 'skia_opts_neon',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ ],
+ 'include_dirs': [
+ '../src/core',
+ '../src/opts',
+ ],
+ 'cflags!': [
+ '-fno-omit-frame-pointer',
+ '-mfpu=vfp', # remove them all, just in case.
+ '-mfpu=vfpv3',
+ '-mfpu=vfpv3-d16',
+ ],
+ 'cflags': [
+ '-mfpu=neon',
+ '-fomit-frame-pointer',
+ ],
+ 'ldflags': [
+ '-march=armv7-a',
+ '-Wl,--fix-cortex-a8',
+ ],
+ 'sources': [
+ '../src/opts/memset16_neon.S',
+ '../src/opts/memset32_neon.S',
+ '../src/opts/SkBitmapProcState_arm_neon.cpp',
+ '../src/opts/SkBitmapProcState_matrixProcs_neon.cpp',
+ '../src/opts/SkBitmapProcState_matrix_clamp_neon.h',
+ '../src/opts/SkBitmapProcState_matrix_repeat_neon.h',
+ '../src/opts/SkBlitRow_opts_arm_neon.cpp',
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/pathops.gypi b/pathops.gypi
new file mode 100644
index 0000000..5daa0fd
--- /dev/null
+++ b/pathops.gypi
@@ -0,0 +1,62 @@
+{
+ 'include_dirs' : [
+ '../include/pathops',
+ '../src/pathops',
+ ],
+ 'sources': [
+ '../include/pathops/SkPathOps.h',
+ '../src/pathops/SkAddIntersections.cpp',
+ '../src/pathops/SkDCubicIntersection.cpp',
+ '../src/pathops/SkDCubicLineIntersection.cpp',
+ '../src/pathops/SkDCubicToQuads.cpp',
+ '../src/pathops/SkDLineIntersection.cpp',
+ '../src/pathops/SkDQuadImplicit.cpp',
+ '../src/pathops/SkDQuadIntersection.cpp',
+ '../src/pathops/SkDQuadLineIntersection.cpp',
+ '../src/pathops/SkIntersections.cpp',
+ '../src/pathops/SkOpAngle.cpp',
+ '../src/pathops/SkOpContour.cpp',
+ '../src/pathops/SkOpEdgeBuilder.cpp',
+ '../src/pathops/SkOpSegment.cpp',
+ '../src/pathops/SkPathOpsBounds.cpp',
+ '../src/pathops/SkPathOpsCommon.cpp',
+ '../src/pathops/SkPathOpsCubic.cpp',
+ '../src/pathops/SkPathOpsDebug.cpp',
+ '../src/pathops/SkPathOpsLine.cpp',
+ '../src/pathops/SkPathOpsOp.cpp',
+ '../src/pathops/SkPathOpsPoint.cpp',
+ '../src/pathops/SkPathOpsQuad.cpp',
+ '../src/pathops/SkPathOpsRect.cpp',
+ '../src/pathops/SkPathOpsSimplify.cpp',
+ '../src/pathops/SkPathOpsTriangle.cpp',
+ '../src/pathops/SkPathOpsTypes.cpp',
+ '../src/pathops/SkPathWriter.cpp',
+ '../src/pathops/SkQuarticRoot.cpp',
+ '../src/pathops/SkReduceOrder.cpp',
+ '../src/pathops/SkAddIntersections.h',
+ '../src/pathops/SkDQuadImplicit.h',
+ '../src/pathops/SkIntersectionHelper.h',
+ '../src/pathops/SkIntersections.h',
+ '../src/pathops/SkLineParameters.h',
+ '../src/pathops/SkOpAngle.h',
+ '../src/pathops/SkOpContour.h',
+ '../src/pathops/SkOpEdgeBuilder.h',
+ '../src/pathops/SkOpSegment.h',
+ '../src/pathops/SkOpSpan.h',
+ '../src/pathops/SkPathOpsBounds.h',
+ '../src/pathops/SkPathOpsCommon.h',
+ '../src/pathops/SkPathOpsCubic.h',
+ '../src/pathops/SkPathOpsCurve.h',
+ '../src/pathops/SkPathOpsDebug.h',
+ '../src/pathops/SkPathOpsLine.h',
+ '../src/pathops/SkPathOpsPoint.h',
+ '../src/pathops/SkPathOpsQuad.h',
+ '../src/pathops/SkPathOpsRect.h',
+ '../src/pathops/SkPathOpsSpan.h',
+ '../src/pathops/SkPathOpsTriangle.h',
+ '../src/pathops/SkPathOpsTypes.h',
+ '../src/pathops/SkPathWriter.h',
+ '../src/pathops/SkQuarticRoot.h',
+ '../src/pathops/SkReduceOrder.h',
+ ],
+}
diff --git a/pathops_unittest.gyp b/pathops_unittest.gyp
new file mode 100644
index 0000000..c7c32ef
--- /dev/null
+++ b/pathops_unittest.gyp
@@ -0,0 +1,48 @@
+# GYP file to build unit tests.
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'pathops_unittest',
+ 'type': 'executable',
+ 'suppress_wildcard': '1',
+ 'include_dirs' : [
+ '../src/core',
+ '../src/effects',
+ '../src/lazy',
+ '../src/pathops',
+ '../src/pdf',
+ '../src/pipe/utils',
+ '../src/utils',
+ '../tools/',
+ ],
+ 'includes': [
+ 'pathops_unittest.gypi',
+ ],
+ 'sources': [
+ '../tests/Test.cpp',
+ '../tests/skia_test.cpp',
+ '../tests/Test.h',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'flags.gyp:flags',
+ ],
+ 'conditions': [
+ [ 'skia_gpu == 1', {
+ 'include_dirs': [
+ '../src/gpu',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/pathops_unittest.gypi b/pathops_unittest.gypi
new file mode 100644
index 0000000..dfbc89c
--- /dev/null
+++ b/pathops_unittest.gypi
@@ -0,0 +1,46 @@
+{
+ 'sources': [
+ '../tests/PathOpsAngleTest.cpp',
+ '../tests/PathOpsBoundsTest.cpp',
+ '../tests/PathOpsCubicIntersectionTest.cpp',
+ '../tests/PathOpsCubicIntersectionTestData.cpp',
+ '../tests/PathOpsCubicLineIntersectionTest.cpp',
+ '../tests/PathOpsCubicQuadIntersectionTest.cpp',
+ '../tests/PathOpsCubicReduceOrderTest.cpp',
+ '../tests/PathOpsCubicToQuadsTest.cpp',
+ '../tests/PathOpsDCubicTest.cpp',
+ '../tests/PathOpsDLineTest.cpp',
+ '../tests/PathOpsDPointTest.cpp',
+ '../tests/PathOpsDQuadTest.cpp',
+ '../tests/PathOpsDRectTest.cpp',
+ '../tests/PathOpsDTriangleTest.cpp',
+ '../tests/PathOpsDVectorTest.cpp',
+ '../tests/PathOpsExtendedTest.cpp',
+ '../tests/PathOpsInverseTest.cpp',
+ '../tests/PathOpsLineIntersectionTest.cpp',
+ '../tests/PathOpsLineParametetersTest.cpp',
+ '../tests/PathOpsOpCubicThreadedTest.cpp',
+ '../tests/PathOpsOpRectThreadedTest.cpp',
+ '../tests/PathOpsOpTest.cpp',
+ '../tests/PathOpsQuadIntersectionTest.cpp',
+ '../tests/PathOpsQuadIntersectionTestData.cpp',
+ '../tests/PathOpsQuadLineIntersectionTest.cpp',
+ '../tests/PathOpsQuadLineIntersectionThreadedTest.cpp',
+ '../tests/PathOpsQuadParameterizationTest.cpp',
+ '../tests/PathOpsQuadReduceOrderTest.cpp',
+ '../tests/PathOpsSimplifyDegenerateThreadedTest.cpp',
+ '../tests/PathOpsSimplifyFailTest.cpp',
+ '../tests/PathOpsSimplifyQuadralateralsThreadedTest.cpp',
+ '../tests/PathOpsSimplifyQuadThreadedTest.cpp',
+ '../tests/PathOpsSimplifyRectThreadedTest.cpp',
+ '../tests/PathOpsSimplifyTest.cpp',
+ '../tests/PathOpsSimplifyTrianglesThreadedTest.cpp',
+ '../tests/PathOpsTestCommon.cpp',
+ '../tests/PathOpsThreadedCommon.cpp',
+ '../tests/PathOpsCubicIntersectionTestData.h',
+ '../tests/PathOpsExtendedTest.h',
+ '../tests/PathOpsQuadIntersectionTestData.h',
+ '../tests/PathOpsTestCommon.h',
+ '../tests/PathOpsThreadedCommon.h',
+ ],
+}
diff --git a/pdf.gyp b/pdf.gyp
new file mode 100644
index 0000000..ce4c59f
--- /dev/null
+++ b/pdf.gyp
@@ -0,0 +1,41 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'pdf',
+ 'product_name': 'skia_pdf',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'zlib.gyp:zlib',
+ ],
+ 'includes': [
+ 'pdf.gypi',
+ ],
+ 'include_dirs': [
+ '../include/pdf',
+ '../src/core', # needed to get SkGlyphCache.h and SkTextFormatParams.h
+ '../src/utils', # needed to get SkBitSet.h
+ ],
+ 'sources': [
+ 'pdf.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
+ ],
+ # This section makes all targets that depend on this target
+ # #define SK_SUPPORT_PDF and have access to the pdf header files.
+ 'direct_dependent_settings': {
+ 'defines': [
+ 'SK_SUPPORT_PDF',
+ ],
+ 'include_dirs': [
+ '../include/pdf',
+ ],
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/pdf.gypi b/pdf.gypi
new file mode 100644
index 0000000..ae4a032
--- /dev/null
+++ b/pdf.gypi
@@ -0,0 +1,50 @@
+# Include this gypi to include all 'pdf' files
+# The parent gyp/gypi file must define
+# 'skia_src_path' e.g. skia/trunk/src
+# 'skia_include_path' e.g. skia/trunk/include
+#
+# The skia build defines these in common_variables.gypi
+#
+{
+ 'sources': [
+ '<(skia_include_path)/pdf/SkPDFDevice.h',
+ '<(skia_include_path)/pdf/SkPDFDocument.h',
+
+ '<(skia_src_path)/pdf/SkPDFCatalog.cpp',
+ '<(skia_src_path)/pdf/SkPDFCatalog.h',
+ '<(skia_src_path)/pdf/SkPDFDevice.cpp',
+ '<(skia_src_path)/pdf/SkPDFDocument.cpp',
+ '<(skia_src_path)/pdf/SkPDFFont.cpp',
+ '<(skia_src_path)/pdf/SkPDFFont.h',
+ '<(skia_src_path)/pdf/SkPDFFontImpl.h',
+ '<(skia_src_path)/pdf/SkPDFFormXObject.cpp',
+ '<(skia_src_path)/pdf/SkPDFFormXObject.h',
+ '<(skia_src_path)/pdf/SkPDFGraphicState.cpp',
+ '<(skia_src_path)/pdf/SkPDFGraphicState.h',
+ '<(skia_src_path)/pdf/SkPDFImage.cpp',
+ '<(skia_src_path)/pdf/SkPDFImage.h',
+ '<(skia_src_path)/pdf/SkPDFImageStream.cpp',
+ '<(skia_src_path)/pdf/SkPDFImageStream.h',
+ '<(skia_src_path)/pdf/SkPDFPage.cpp',
+ '<(skia_src_path)/pdf/SkPDFPage.h',
+ '<(skia_src_path)/pdf/SkPDFResourceDict.cpp',
+ '<(skia_src_path)/pdf/SkPDFResourceDict.h',
+ '<(skia_src_path)/pdf/SkPDFShader.cpp',
+ '<(skia_src_path)/pdf/SkPDFShader.h',
+ '<(skia_src_path)/pdf/SkPDFStream.cpp',
+ '<(skia_src_path)/pdf/SkPDFStream.h',
+ '<(skia_src_path)/pdf/SkPDFTypes.cpp',
+ '<(skia_src_path)/pdf/SkPDFTypes.h',
+ '<(skia_src_path)/pdf/SkPDFUtils.cpp',
+ '<(skia_src_path)/pdf/SkPDFUtils.h',
+ '<(skia_src_path)/pdf/SkTSet.h',
+
+ '<(skia_src_path)/doc/SkDocument_PDF.cpp',
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/pdfviewer.gyp b/pdfviewer.gyp
new file mode 100644
index 0000000..4f6e8ab
--- /dev/null
+++ b/pdfviewer.gyp
@@ -0,0 +1,125 @@
+# GYP file to build pdfviewer.
+#
+# To build on Linux:
+# ./gyp_skia pdfviewer.gyp && make pdfviewer
+#
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'libpdfviewer',
+ 'type': 'static_library',
+ 'sources': [
+ '../experimental/PdfViewer/SkPdfBasics.cpp',
+ '../experimental/PdfViewer/SkPdfFont.cpp',
+ '../experimental/PdfViewer/SkPdfRenderer.cpp',
+ '../experimental/PdfViewer/SkPdfUtils.cpp',
+ #'../experimental/PdfViewer/SkPdfNYI.cpp',
+ '../experimental/PdfViewer/SkTrackDevice.cpp',
+ '../experimental/PdfViewer/SkTracker.cpp',
+ '../experimental/PdfViewer/pdfparser/native/SkPdfObject.cpp',
+ '../experimental/PdfViewer/pdfparser/native/SkPdfNativeTokenizer.cpp',
+ '../experimental/PdfViewer/pdfparser/native/SkNativeParsedPDF.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfMapper_autogen.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfHeaders_autogen.cpp',
+ ],
+ 'copies': [
+ {
+ 'files': [
+ '../experimental/PdfViewer/datatypes.py',
+ '../experimental/PdfViewer/generate_code.py',
+ ],
+ 'destination': '<(SHARED_INTERMEDIATE_DIR)',
+ },
+ ],
+ 'actions': [
+ {
+ 'action_name': 'spec2def',
+ 'inputs': [
+ '../experimental/PdfViewer/spec2def.py',
+ '../experimental/PdfViewer/PdfReference-okular-1.txt',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/pdfspec_autogen.py',
+ ],
+ 'action': ['python', '../experimental/PdfViewer/spec2def.py', '../experimental/PdfViewer/PdfReference-okular-1.txt', '<(SHARED_INTERMEDIATE_DIR)/pdfspec_autogen.py'],
+ },
+ {
+ 'action_name': 'generate_code',
+ 'inputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/datatypes.py',
+ '<(SHARED_INTERMEDIATE_DIR)/generate_code.py',
+ '<(SHARED_INTERMEDIATE_DIR)/pdfspec_autogen.py',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfEnums_autogen.h',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfMapper_autogen.h',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfHeaders_autogen.h',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfMapper_autogen.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen/SkPdfHeaders_autogen.cpp',
+ # TODO(edisonn): ok, there are many more files here, which we should list but since
+ # any change in the above should trigger a change here, we should be fine normally
+ ],
+ 'action': ['python', '<(SHARED_INTERMEDIATE_DIR)/generate_code.py', '<(SHARED_INTERMEDIATE_DIR)'],
+ },
+ ],
+ 'include_dirs': [
+ '../experimental/PdfViewer',
+ '../experimental/PdfViewer/pdfparser',
+ '../experimental/PdfViewer/pdfparser/native',
+ '<(SHARED_INTERMEDIATE_DIR)/native/autogen',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'zlib.gyp:zlib',
+ ],
+ },
+ {
+ 'target_name': 'pdfviewer',
+ 'type': 'executable',
+ 'cflags': ['-fexceptions'],
+ 'cflags_cc': ['-fexceptions'],
+ 'cflags!': [ '-fno-exceptions' ],
+ 'cflags_cc!': [ '-fno-exceptions' ],
+ 'sources': [
+ '../experimental/PdfViewer/pdf_viewer_main.cpp',
+ ],
+ 'include_dirs': [
+ '../experimental/PdfViewer',
+ '../experimental/PdfViewer/pdfparser',
+ '../experimental/PdfViewer/pdfparser/autogen',
+ '../experimental/PdfViewer/pdfparser/native',
+ '../experimental/PdfViewer/pdfparser/native/autogen',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'flags.gyp:flags',
+ 'libpdfviewer',
+ 'chop_transparency',
+ ],
+ },
+ {
+ 'target_name': 'chop_transparency',
+ 'type': 'executable',
+ 'sources': [
+ '../experimental/PdfViewer/chop_transparency_main.cpp',
+ ],
+ 'include_dirs': [
+ # For SkBitmapHasher.h
+ '../src/utils/',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'flags.gyp:flags',
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/pixman_test.gyp b/pixman_test.gyp
new file mode 100644
index 0000000..3a39b90
--- /dev/null
+++ b/pixman_test.gyp
@@ -0,0 +1,175 @@
+# GYP file to build unit tests.
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ 'common.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'pixman_test',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+ 'defines': [
+ 'HAVE_CONFIG_H',
+ ],
+ 'include_dirs' : [
+ '../src/core',
+ '../experimental/pixman',
+ '../experimental/SimpleCocoaApp', # needed to get SimpleApp.h
+ ],
+ 'sources': [
+ '../experimental/pixman/config.h',
+ '../experimental/pixman/junk.cpp',
+# '../../../pixman/demos/alpha-test.c',
+ '../../../pixman/demos/checkerboard.c',
+# '../../../pixman/demos/clip-in.c',
+# '../../../pixman/demos/clip-test.c',
+# '../../../pixman/demos/composite-test.c',
+# '../../../pixman/demos/convolution-test.c',
+# '../../../pixman/demos/gradient-test.c',
+# '../../../pixman/demos/gtk-utils.c',
+# '../../../pixman/demos/parrot.c',
+# '../../../pixman/demos/quad2quad.c',
+# '../../../pixman/demos/radial-test.c',
+# '../../../pixman/demos/screen-test.c',
+# '../../../pixman/demos/srgb-test.c',
+# '../../../pixman/demos/srgb-trap-test.c',
+# '../../../pixman/demos/trap-test.c',
+# '../../../pixman/demos/tri-test.c',
+ '../../../pixman/demos/gtk-utils.h',
+# '../../../pixman/test/a1-trap-test.c',
+# '../../../pixman/test/affine-test.c',
+# '../../../pixman/test/alpha-loop.c',
+# '../../../pixman/test/alphamap.c',
+# '../../../pixman/test/blitters-test.c',
+# '../../../pixman/test/combiner-test.c',
+# '../../../pixman/test/composite-traps-test.c',
+# '../../../pixman/test/composite.c',
+# '../../../pixman/test/fetch-test.c',
+# '../../../pixman/test/glyph-test.c',
+# '../../../pixman/test/gradient-crash-test.c',
+# '../../../pixman/test/infinite-loop.c',
+# '../../../pixman/test/lowlevel-blt-bench.c',
+# '../../../pixman/test/oob-test.c',
+# '../../../pixman/test/pdf-op-test.c',
+# '../../../pixman/test/region-contains-test.c',
+# '../../../pixman/test/region-test.c',
+# '../../../pixman/test/region-translate-test.c',
+# '../../../pixman/test/rotate-test.c',
+# '../../../pixman/test/scaling-crash-test.c',
+# '../../../pixman/test/scaling-helpers-test.c',
+# '../../../pixman/test/scaling-test.c',
+# '../../../pixman/test/stress-test.c',
+# '../../../pixman/test/trap-crasher.c',
+ '../../../pixman/test/utils.c',
+ '../../../pixman/test/utils.h',
+ '../../../pixman/pixman/pixman-access-accessors.c',
+ '../../../pixman/pixman/pixman-access.c',
+# '../../../pixman/pixman/pixman-arm-neon.c',
+# '../../../pixman/pixman/pixman-arm-simd.c',
+ '../../../pixman/pixman/pixman-arm.c',
+ '../../../pixman/pixman/pixman-bits-image.c',
+ '../../../pixman/pixman/pixman-combine-float.c',
+ '../../../pixman/pixman/pixman-combine32.c',
+ '../../../pixman/pixman/pixman-conical-gradient.c',
+ '../../../pixman/pixman/pixman-edge-accessors.c',
+ '../../../pixman/pixman/pixman-edge.c',
+ '../../../pixman/pixman/pixman-fast-path.c',
+ '../../../pixman/pixman/pixman-general.c',
+ '../../../pixman/pixman/pixman-glyph.c',
+ '../../../pixman/pixman/pixman-gradient-walker.c',
+ '../../../pixman/pixman/pixman-image.c',
+ '../../../pixman/pixman/pixman-implementation.c',
+ '../../../pixman/pixman/pixman-linear-gradient.c',
+ '../../../pixman/pixman/pixman-matrix.c',
+# '../../../pixman/pixman/pixman-mips-dspr2.c',
+ '../../../pixman/pixman/pixman-mips.c',
+ '../../../pixman/pixman/pixman-mmx.c',
+ '../../../pixman/pixman/pixman-noop.c',
+ '../../../pixman/pixman/pixman-ppc.c',
+ '../../../pixman/pixman/pixman-radial-gradient.c',
+# '../../../pixman/pixman/pixman-region.c',
+ '../../../pixman/pixman/pixman-region16.c',
+ '../../../pixman/pixman/pixman-region32.c',
+ '../../../pixman/pixman/pixman-solid-fill.c',
+ '../../../pixman/pixman/pixman-sse2.c',
+ '../../../pixman/pixman/pixman-timer.c',
+ '../../../pixman/pixman/pixman-trap.c',
+ '../../../pixman/pixman/pixman-utils.c',
+# '../../../pixman/pixman/pixman-vmx.c',
+ '../../../pixman/pixman/pixman-x86.c',
+ '../../../pixman/pixman/pixman.c',
+# '../../../pixman/pixman/pixman-arm-neon-asm-bilinear.S',
+# '../../../pixman/pixman/pixman-arm-neon-asm.S',
+# '../../../pixman/pixman/pixman-arm-simd-asm.S',
+# '../../../pixman/pixman/pixman-mips-dspr2-asm.S',
+# '../../../pixman/pixman/pixman-mips-memcpy-asm.S',
+ '../../../pixman/pixman/loongson-mmintrin.h',
+ '../../../pixman/pixman/pixman-accessor.h',
+ '../../../pixman/pixman/pixman-arm-common.h',
+ '../../../pixman/pixman/pixman-arm-neon-asm.h',
+ '../../../pixman/pixman/pixman-combine32.h',
+ '../../../pixman/pixman/pixman-compiler.h',
+ '../../../pixman/pixman/pixman-edge-imp.h',
+ '../../../pixman/pixman/pixman-inlines.h',
+ '../../../pixman/pixman/pixman-mips-dspr2-asm.h',
+ '../../../pixman/pixman/pixman-mips-dspr2.h',
+ '../../../pixman/pixman/pixman-private.h',
+ '../../../pixman/pixman/pixman.h',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'experimental.gyp:experimental',
+ 'pdf.gyp:pdf',
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ }],
+ [ 'skia_os == "win"', {
+ }],
+ [ 'skia_os == "mac"', {
+ 'sources': [
+
+ # Mac files
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../src/views/mac/skia_mac.mm',
+ '../src/views/mac/SkNSView.h',
+ '../src/views/mac/SkNSView.mm',
+ '../src/views/mac/SkOptionsTableView.h',
+ '../src/views/mac/SkOptionsTableView.mm',
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/SkTextFieldCell.h',
+ '../src/views/mac/SkTextFieldCell.m',
+ ],
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/Intersection/EdgeDemoApp-Info.plist',
+ },
+ 'mac_bundle_resources' : [
+ '../experimental/Intersection/EdgeDemoApp.xib',
+ ],
+ }],
+ ],
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'SubSystem': '2',
+ 'AdditionalDependencies': [
+ 'd3d9.lib',
+ ],
+ },
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/ports.gyp b/ports.gyp
new file mode 100644
index 0000000..fff368d
--- /dev/null
+++ b/ports.gyp
@@ -0,0 +1,175 @@
+# Port-specific Skia library code.
+{
+ 'targets': [
+ {
+ 'target_name': 'ports',
+ 'product_name': 'skia_ports',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ ],
+ 'include_dirs': [
+ '../include/effects',
+ '../include/images',
+ '../include/ports',
+ '../include/utils',
+ '../include/utils/win',
+ '../include/xml',
+ '../src/core',
+ '../src/lazy',
+ '../src/ports',
+ '../src/sfnt',
+ '../src/utils',
+ ],
+ 'sources': [
+ '../src/ports/SkDebug_nacl.cpp',
+ '../src/ports/SkDebug_stdio.cpp',
+ '../src/ports/SkDebug_win.cpp',
+ '../src/ports/SkFontHost_win.cpp',
+ '../src/ports/SkFontHost_win_dw.cpp',
+ '../src/ports/SkGlobalInitialization_default.cpp',
+ '../src/ports/SkMemory_malloc.cpp',
+ '../src/ports/SkOSFile_posix.cpp',
+ '../src/ports/SkOSFile_stdio.cpp',
+ '../src/ports/SkOSFile_win.cpp',
+ '../src/ports/SkPurgeableMemoryBlock_none.cpp',
+ #'../src/ports/SkThread_none.cpp',
+ '../src/ports/SkThread_pthread.cpp',
+ '../src/ports/SkThread_win.cpp',
+ '../src/ports/SkTime_Unix.cpp',
+ '../src/ports/SkTime_win.cpp',
+ #'../src/ports/SkTLS_none.cpp',
+ '../src/ports/SkTLS_pthread.cpp',
+ '../src/ports/SkTLS_win.cpp',
+ '../src/ports/SkXMLParser_empty.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos", "nacl", "android"]', {
+ 'sources': [
+ '../src/ports/SkFontHost_FreeType.cpp',
+ '../src/ports/SkFontHost_FreeType_common.cpp',
+ ],
+ 'dependencies': [
+ 'freetype.gyp:freetype',
+ ],
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'link_settings': {
+ 'libraries': [
+ '-lfontconfig',
+ '-ldl',
+ ],
+ },
+ 'sources': [
+ '../src/fonts/SkFontMgr_fontconfig.cpp',
+ '../src/ports/SkFontHost_fontconfig.cpp',
+ '../src/ports/SkFontConfigInterface_direct.cpp',
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ 'sources': [
+ '../src/ports/SkFontHost_linux.cpp',
+ ],
+ 'sources!': [
+ '../src/ports/SkDebug_stdio.cpp',
+ ],
+ }, {
+ 'sources!': [
+ '../src/ports/SkDebug_nacl.cpp',
+ ],
+ }],
+ [ 'skia_os == "mac"', {
+ 'include_dirs': [
+ '../include/utils/mac',
+ ],
+ 'sources': [
+ '../src/ports/SkFontHost_mac.cpp',
+ '../src/ports/SkPurgeableMemoryBlock_mac.cpp',
+ '../src/utils/mac/SkStream_mac.cpp',
+ ],
+ 'sources!': [
+ '../src/ports/SkPurgeableMemoryBlock_none.cpp',
+ '../src/ports/SkFontHost_tables.cpp',
+ ],
+ }],
+ [ 'skia_os == "ios"', {
+ 'include_dirs': [
+ '../include/utils/ios',
+ '../include/utils/mac',
+ ],
+ 'sources': [
+ '../src/ports/SkFontHost_mac.cpp',
+ '../src/ports/SkPurgeableMemoryBlock_mac.cpp',
+ '../src/utils/mac/SkStream_mac.cpp',
+ ],
+ 'sources!': [
+ '../src/ports/SkPurgeableMemoryBlock_none.cpp',
+ '../src/ports/SkFontHost_tables.cpp',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ 'include_dirs': [
+ 'config/win',
+ '../src/utils/win',
+ ],
+ 'conditions': [
+ [ 'skia_directwrite', {
+ 'sources!': [
+ '../src/ports/SkFontHost_win.cpp',
+ ],
+ }, { # else !skia_directwrite
+ 'sources!': [
+ '../src/ports/SkFontHost_win_dw.cpp',
+ ],
+ }],
+ ],
+ 'sources!': [ # these are used everywhere but windows
+ '../src/ports/SkDebug_stdio.cpp',
+ '../src/ports/SkOSFile_posix.cpp',
+ '../src/ports/SkThread_pthread.cpp',
+ '../src/ports/SkTime_Unix.cpp',
+ '../src/ports/SkTLS_pthread.cpp',
+ ],
+ }, { # else !win
+ 'sources!': [
+ '../src/ports/SkDebug_win.cpp',
+ '../src/ports/SkFontHost_win.cpp',
+ '../src/ports/SkFontHost_win_dw.cpp',
+ '../src/ports/SkOSFile_win.cpp',
+ '../src/ports/SkThread_win.cpp',
+ '../src/ports/SkTime_win.cpp',
+ '../src/ports/SkTLS_win.cpp',
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ 'sources!': [
+ '../src/ports/SkDebug_stdio.cpp',
+ '../src/ports/SkPurgeableMemoryBlock_none.cpp',
+ ],
+ 'sources': [
+ '../src/ports/SkDebug_android.cpp',
+ '../src/ports/SkFontConfigInterface_android.cpp',
+ '../src/ports/SkFontConfigParser_android.cpp',
+ '../src/ports/SkFontHost_fontconfig.cpp',
+ '../src/ports/SkPurgeableMemoryBlock_android.cpp',
+ ],
+ 'dependencies': [
+ 'android_deps.gyp:expat',
+ ],
+ }],
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../include/ports',
+ ],
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/public_headers.gypi b/public_headers.gypi
new file mode 100644
index 0000000..10f30e5
--- /dev/null
+++ b/public_headers.gypi
@@ -0,0 +1,316 @@
+# Include this gypi to include all public header files that exist in the
+# include directory.
+#
+# The list is computed by running 'find include -name *.h' in the root dir of
+# the project.
+#
+{
+ 'variables': {
+ 'header_filenames': [
+ 'pdf/SkPDFDevice.h',
+ 'pdf/SkPDFDocument.h',
+ 'svg/SkSVGTypes.h',
+ 'svg/SkSVGBase.h',
+ 'svg/SkSVGAttribute.h',
+ 'svg/SkSVGParser.h',
+ 'svg/SkSVGPaintState.h',
+ 'animator/SkAnimator.h',
+ 'animator/SkAnimatorView.h',
+ 'gpu/GrTexture.h',
+ 'gpu/SkGr.h',
+ 'gpu/GrContext.h',
+ 'gpu/gl/GrGLConfig_chrome.h',
+ 'gpu/gl/SkNativeGLContext.h',
+ 'gpu/gl/SkMesaGLContext.h',
+ 'gpu/gl/SkDebugGLContext.h',
+ 'gpu/gl/SkANGLEGLContext.h',
+ 'gpu/gl/GrGLConfig.h',
+ 'gpu/gl/GrGLInterface.h',
+ 'gpu/gl/SkNullGLContext.h',
+ 'gpu/gl/GrGLFunctions.h',
+ 'gpu/gl/SkGLContextHelper.h',
+ 'gpu/gl/GrGLExtensions.h',
+ 'gpu/SkGpuDevice.h',
+ 'gpu/GrTypes.h',
+ 'gpu/GrFontScaler.h',
+ 'gpu/GrResource.h',
+ 'gpu/GrRefCnt.h',
+ 'gpu/GrKey.h',
+ 'gpu/GrOvalRenderer.h',
+ 'gpu/GrEffectUnitTest.h',
+ 'gpu/GrConfig.h',
+ 'gpu/GrPaint.h',
+ 'gpu/GrPathRendererChain.h',
+ 'gpu/GrTBackendEffectFactory.h',
+ 'gpu/GrDrawEffect.h',
+ 'gpu/GrTextContext.h',
+ 'gpu/GrEffect.h',
+ 'gpu/GrNoncopyable.h',
+ 'gpu/SkGrTexturePixelRef.h',
+ 'gpu/GrTextureAccess.h',
+ 'gpu/GrRect.h',
+ 'gpu/GrEffectStage.h',
+ 'gpu/GrClipData.h',
+ 'gpu/GrUserConfig.h',
+ 'gpu/SkGrPixelRef.h',
+ 'gpu/GrAARectRenderer.h',
+ 'gpu/GrColor.h',
+ 'gpu/GrGlyph.h',
+ 'gpu/GrBackendEffectFactory.h',
+ 'gpu/GrContextFactory.h',
+ 'gpu/GrRenderTarget.h',
+ 'gpu/GrSurface.h',
+ 'gpu/GrTypesPriv.h',
+ 'gpu/GrPoint.h',
+ 'config/sk_stdint.h',
+ 'config/SkUserConfig.h',
+ 'pipe/SkGPipe.h',
+ 'images/SkImageRef.h',
+ 'images/SkMovie.h',
+ 'images/SkPageFlipper.h',
+ 'images/SkForceLinking.h',
+ 'images/SkImageRef_GlobalPool.h',
+ 'images/SkImages.h',
+ 'effects/SkMorphologyImageFilter.h',
+ 'effects/Sk2DPathEffect.h',
+ 'effects/SkXfermodeImageFilter.h',
+ 'effects/SkArithmeticMode.h',
+ 'effects/SkMergeImageFilter.h',
+ 'effects/SkPerlinNoiseShader.h',
+ 'effects/SkLerpXfermode.h',
+ 'effects/SkRectShaderImageFilter.h',
+ 'effects/SkMagnifierImageFilter.h',
+ 'effects/SkBicubicImageFilter.h',
+ 'effects/SkPorterDuff.h',
+ 'effects/SkBlurImageFilter.h',
+ 'effects/SkKernel33MaskFilter.h',
+ 'effects/SkTableMaskFilter.h',
+ 'effects/SkAvoidXfermode.h',
+ 'effects/SkBitmapSource.h',
+ 'effects/SkCornerPathEffect.h',
+ 'effects/SkTransparentShader.h',
+ 'effects/SkStippleMaskFilter.h',
+ 'effects/SkPaintFlagsDrawFilter.h',
+ 'effects/SkOffsetImageFilter.h',
+ 'effects/SkDiscretePathEffect.h',
+ 'effects/SkTableColorFilter.h',
+ 'effects/SkGradientShader.h',
+ 'effects/SkEmbossMaskFilter.h',
+ 'effects/SkComposeImageFilter.h',
+ 'effects/SkTestImageFilters.h',
+ 'effects/SkLayerRasterizer.h',
+ 'effects/SkDashPathEffect.h',
+ 'effects/Sk1DPathEffect.h',
+ 'effects/SkBlurMaskFilter.h',
+ 'effects/SkDrawExtraPathEffect.h',
+ 'effects/SkDisplacementMapEffect.h',
+ 'effects/SkPixelXorXfermode.h',
+ 'effects/SkColorMatrixFilter.h',
+ 'effects/SkColorMatrix.h',
+ 'effects/SkBlurDrawLooper.h',
+ 'effects/SkColorFilterImageFilter.h',
+ 'effects/SkLayerDrawLooper.h',
+ 'effects/SkLightingImageFilter.h',
+ 'effects/SkDropShadowImageFilter.h',
+ 'effects/SkMatrixConvolutionImageFilter.h',
+ 'utils/win/SkAutoCoInitialize.h',
+ 'utils/win/SkHRESULT.h',
+ 'utils/win/SkIStream.h',
+ 'utils/win/SkTScopedComPtr.h',
+ 'utils/SkBoundaryPatch.h',
+ 'utils/SkUnitMappers.h',
+ 'utils/SkPictureUtils.h',
+ 'utils/SkRandom.h',
+ 'utils/SkMeshUtils.h',
+ 'utils/SkCullPoints.h',
+ 'utils/SkCamera.h',
+ 'utils/SkLua.h',
+ 'utils/SkParsePaint.h',
+ 'utils/SkCountdown.h',
+ 'utils/SkRunnable.h',
+ 'utils/SkParse.h',
+ 'utils/SkThreadPool.h',
+ 'utils/SkMatrix44.h',
+ 'utils/SkInterpolator.h',
+ 'utils/SkWGL.h',
+ 'utils/SkDumpCanvas.h',
+ 'utils/SkRTConf.h',
+ 'utils/SkCubicInterval.h',
+ 'utils/SkLuaCanvas.h',
+ 'utils/SkDebugUtils.h',
+ 'utils/SkLayer.h',
+ 'utils/SkProxyCanvas.h',
+ 'utils/SkNWayCanvas.h',
+ 'utils/SkPathUtils.h',
+ 'utils/SkDeferredCanvas.h',
+ 'utils/ios/SkStream_NSData.h',
+ 'utils/SkNullCanvas.h',
+ 'utils/SkParsePath.h',
+ 'utils/SkJSON.h',
+ 'utils/SkCondVar.h',
+ 'utils/SkNinePatch.h',
+ 'utils/mac/SkCGUtils.h',
+ 'xml/SkDOM.h',
+ 'xml/SkJS.h',
+ 'xml/SkXMLParser.h',
+ 'xml/SkBML_XMLParser.h',
+ 'xml/SkBML_WXMLParser.h',
+ 'xml/SkXMLWriter.h',
+ 'device/xps/SkXPSDevice.h',
+ 'device/xps/SkConstexprMath.h',
+ 'ports/SkTypeface_win.h',
+ 'ports/SkHarfBuzzFont.h',
+ 'ports/SkFontConfigInterface.h',
+ 'ports/SkTypeface_mac.h',
+ 'ports/SkTypeface_android.h',
+ 'ports/SkFontStyle.h',
+ 'ports/SkFontMgr.h',
+ 'text/SkTextLayout.h',
+ 'core/SkColor.h',
+ 'core/SkFontHost.h',
+ 'core/SkMetaData.h',
+ 'core/SkRRect.h',
+ 'core/SkMatrix.h',
+ 'core/SkDataTable.h',
+ 'core/SkScalar.h',
+ 'core/SkFlattenableSerialization.h',
+ 'core/SkTypeface.h',
+ 'core/SkImageEncoder.h',
+ 'core/SkDrawFilter.h',
+ 'core/SkTDict.h',
+ 'core/SkRasterizer.h',
+ 'core/SkColorPriv.h',
+ 'core/SkFloatingPoint.h',
+ 'core/SkOSFile.h',
+ 'core/SkPaint.h',
+ 'core/SkTDStack.h',
+ 'core/SkDither.h',
+ 'core/SkFixed.h',
+ 'core/SkDocument.h',
+ 'core/SkInstCnt.h',
+ 'core/SkEndian.h',
+ 'core/SkColorTable.h',
+ 'core/SkBitmap.h',
+ 'core/SkDraw.h',
+ 'core/SkPackBits.h',
+ 'core/SkFloatBits.h',
+ 'core/SkDeque.h',
+ 'core/SkTRegistry.h',
+ 'core/Sk64.h',
+ 'core/SkTLazy.h',
+ 'core/SkComposeShader.h',
+ 'core/SkUtils.h',
+ 'core/SkImage.h',
+ 'core/SkTileGridPicture.h',
+ 'core/SkPaintOptionsAndroid.h',
+ 'core/SkDeviceProperties.h',
+ 'core/SkGraphics.h',
+ 'core/SkCanvas.h',
+ 'core/SkPicture.h',
+ 'core/SkClipStack.h',
+ 'core/SkTScopedPtr.h',
+ 'core/SkXfermode.h',
+ 'core/SkColorFilter.h',
+ 'core/SkRegion.h',
+ 'core/SkRefCnt.h',
+ 'core/SkStream.h',
+ 'core/SkFontLCDConfig.h',
+ 'core/SkBlitRow.h',
+ 'core/SkGeometry.h',
+ 'core/SkStrokeRec.h',
+ 'core/SkImageDecoder.h',
+ 'core/SkTime.h',
+ 'core/SkImageTypes.h',
+ 'core/SkScalarCompare.h',
+ 'core/SkPathMeasure.h',
+ 'core/SkMaskFilter.h',
+ 'core/SkBounder.h',
+ 'core/SkFlate.h',
+ 'core/SkTDArray.h',
+ 'core/SkAnnotation.h',
+ 'core/SkChecksum.h',
+ 'core/SkMath.h',
+ 'core/SkDrawLooper.h',
+ 'core/SkThread_platform.h',
+ 'core/SkFlattenableBuffers.h',
+ 'core/SkTemplates.h',
+ 'core/SkMask.h',
+ 'core/SkMallocPixelRef.h',
+ 'core/SkWeakRefCnt.h',
+ 'core/SkTypes.h',
+ 'core/SkThread.h',
+ 'core/SkData.h',
+ 'core/SkPoint.h',
+ 'core/SkColorShader.h',
+ 'core/SkChunkAlloc.h',
+ 'core/SkUnPreMultiply.h',
+ 'core/SkReader32.h',
+ 'core/SkDevice.h',
+ 'core/SkImageFilter.h',
+ 'core/SkAdvancedTypefaceMetrics.h',
+ 'core/SkTInternalLList.h',
+ 'core/SkTArray.h',
+ 'core/SkStringUtils.h',
+ 'core/SkPreConfig.h',
+ 'core/SkImageFilterUtils.h',
+ 'core/SkLineClipper.h',
+ 'core/SkDataSet.h',
+ 'core/SkPathEffect.h',
+ 'core/SkString.h',
+ 'core/SkPixelRef.h',
+ 'core/SkSize.h',
+ 'core/SkEmptyShader.h',
+ 'core/SkSurface.h',
+ 'core/SkPostConfig.h',
+ 'core/SkShader.h',
+ 'core/SkWriter32.h',
+ 'core/SkError.h',
+ 'core/SkPath.h',
+ 'core/SkTrace.h',
+ 'core/SkUnitMapper.h',
+ 'core/SkFlattenable.h',
+ 'core/SkTSearch.h',
+ 'core/SkRect.h',
+ 'pathops/SkPathOps.h',
+ 'views/SkTouchGesture.h',
+ 'views/SkEvent.h',
+ 'views/SkOSWindow_NaCl.h',
+ 'views/SkTextBox.h',
+ 'views/SkViewInflate.h',
+ 'views/SkOSWindow_iOS.h',
+ 'views/SkBGViewArtist.h',
+ 'views/SkOSWindow_SDL.h',
+ 'views/SkWindow.h',
+ 'views/SkSystemEventTypes.h',
+ 'views/SkOSWindow_Android.h',
+ 'views/SkOSWindow_Mac.h',
+ 'views/android/AndroidKeyToSkKey.h',
+ 'views/SkEventSink.h',
+ 'views/animated/SkImageView.h',
+ 'views/animated/SkWidgetViews.h',
+ 'views/animated/SkProgressBarView.h',
+ 'views/animated/SkBorderView.h',
+ 'views/animated/SkScrollBarView.h',
+ 'views/SkStackViewLayout.h',
+ 'views/SkApplication.h',
+ 'views/unix/keysym2ucs.h',
+ 'views/unix/XkeysToSkKeys.h',
+ 'views/SkKey.h',
+ 'views/SkView.h',
+ 'views/SkOSMenu.h',
+ 'views/SkOSWindow_Unix.h',
+ 'views/SkWidget.h',
+ 'views/SkOSWindow_Win.h',
+ 'lazy/SkBitmapFactory.h',
+ 'lazy/SkImageCache.h',
+ 'lazy/SkPurgeableImageCache.h',
+ 'lazy/SkLruImageCache.h',
+ ],
+ },
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/sfnt.gyp b/sfnt.gyp
new file mode 100644
index 0000000..88ab94f
--- /dev/null
+++ b/sfnt.gyp
@@ -0,0 +1,56 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'sfnt',
+ 'product_name': 'skia_sfnt',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ ],
+ 'include_dirs': [
+ '../src/sfnt',
+ ],
+ 'sources': [
+ '../src/sfnt/SkIBMFamilyClass.h',
+ '../src/sfnt/SkOTTableTypes.h',
+ '../src/sfnt/SkOTTable_glyf.h',
+ '../src/sfnt/SkOTTable_head.h',
+ '../src/sfnt/SkOTTable_hhea.h',
+ '../src/sfnt/SkOTTable_loca.h',
+ '../src/sfnt/SkOTTable_maxp.h',
+ '../src/sfnt/SkOTTable_maxp_CFF.h',
+ '../src/sfnt/SkOTTable_maxp_TT.h',
+ '../src/sfnt/SkOTTable_name.h',
+ '../src/sfnt/SkOTTable_OS_2.h',
+ '../src/sfnt/SkOTTable_OS_2_V0.h',
+ '../src/sfnt/SkOTTable_OS_2_V1.h',
+ '../src/sfnt/SkOTTable_OS_2_V2.h',
+ '../src/sfnt/SkOTTable_OS_2_V3.h',
+ '../src/sfnt/SkOTTable_OS_2_V4.h',
+ '../src/sfnt/SkOTTable_OS_2_VA.h',
+ '../src/sfnt/SkOTTable_post.h',
+ '../src/sfnt/SkPanose.h',
+ '../src/sfnt/SkOTUtils.h',
+ '../src/sfnt/SkPreprocessorSeq.h',
+ '../src/sfnt/SkSFNTHeader.h',
+ '../src/sfnt/SkTTCFHeader.h',
+ '../src/sfnt/SkTypedEnum.h',
+
+ '../src/sfnt/SkOTTable_name.cpp',
+ '../src/sfnt/SkOTUtils.cpp',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../src/sfnt',
+ ],
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/shapeops_demo.gyp b/shapeops_demo.gyp
new file mode 100644
index 0000000..ff5c3da
--- /dev/null
+++ b/shapeops_demo.gyp
@@ -0,0 +1,124 @@
+
+{
+ 'includes': [
+ 'common.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'shapeops_demo',
+ 'type': 'executable',
+ 'mac_bundle' : 1,
+ 'include_dirs' : [
+ '../experimental/SimpleCocoaApp', # needed to get SimpleApp.h
+ ],
+ 'sources': [
+ '../experimental/Intersection/ConvexHull.cpp',
+ '../experimental/Intersection/CubeRoot.cpp',
+ '../experimental/Intersection/CubicBezierClip.cpp',
+ '../experimental/Intersection/CubicBounds.cpp',
+ '../experimental/Intersection/CubicIntersection.cpp',
+ '../experimental/Intersection/CubicReduceOrder.cpp',
+ '../experimental/Intersection/CubicSubDivide.cpp',
+ '../experimental/Intersection/CubicToQuadratics.cpp',
+ '../experimental/Intersection/CubicUtilities.cpp',
+ '../experimental/Intersection/DataTypes.cpp',
+ '../experimental/Intersection/EdgeDemo.cpp',
+ '../experimental/Intersection/EdgeDemoApp.mm',
+ '../experimental/Intersection/EdgeWalker.cpp',
+ '../experimental/Intersection/EdgeWalker_TestUtility.cpp',
+ '../experimental/Intersection/Extrema.cpp',
+ '../experimental/Intersection/Intersections.cpp',
+ '../experimental/Intersection/LineCubicIntersection.cpp',
+ '../experimental/Intersection/LineIntersection.cpp',
+ '../experimental/Intersection/LineParameterization.cpp',
+ '../experimental/Intersection/LineQuadraticIntersection.cpp',
+ '../experimental/Intersection/LineUtilities.cpp',
+ '../experimental/Intersection/QuadraticBezierClip.cpp',
+ '../experimental/Intersection/QuadraticBounds.cpp',
+ '../experimental/Intersection/QuadraticIntersection.cpp',
+ '../experimental/Intersection/QuadraticImplicit.cpp',
+ '../experimental/Intersection/QuadraticLineSegments.cpp',
+ '../experimental/Intersection/QuadraticParameterization.cpp',
+ '../experimental/Intersection/QuadraticReduceOrder.cpp',
+ '../experimental/Intersection/QuadraticSubDivide.cpp',
+ '../experimental/Intersection/QuadraticUtilities.cpp',
+ '../experimental/Intersection/QuarticRoot.cpp',
+ '../experimental/Intersection/ShapeOps.cpp',
+ '../experimental/Intersection/Simplify.cpp',
+ '../experimental/Intersection/TriangleUtilities.cpp',
+ '../experimental/Intersection/CubicParameterization.cpp',
+ '../experimental/Intersection/CubicReduceOrder.cpp',
+ '../experimental/Intersection/CubicSubDivide.cpp',
+ '../experimental/Intersection/CubicUtilities.h',
+ '../experimental/Intersection/CurveIntersection.h',
+ '../experimental/Intersection/DataTypes.h',
+ '../experimental/Intersection/EdgeDemo.h',
+ '../experimental/Intersection/Extrema.h',
+ '../experimental/Intersection/Intersections.h',
+ '../experimental/Intersection/IntersectionUtilities.h',
+ '../experimental/Intersection/LineIntersection.h',
+ '../experimental/Intersection/LineParameters.h',
+ '../experimental/Intersection/LineUtilities.h',
+ '../experimental/Intersection/QuadraticLineSegments.h',
+ '../experimental/Intersection/QuadraticParameterization.h',
+ '../experimental/Intersection/QuadraticUtilities.h',
+ '../experimental/Intersection/QuarticRoot.h',
+ '../experimental/Intersection/ShapeOps.h',
+ '../experimental/Intersection/Simplify.h',
+ '../experimental/Intersection/TSearch.h',
+ '../experimental/Intersection/TriangleUtilities.h',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'views.gyp:views',
+ 'xml.gyp:xml',
+ ],
+ 'conditions' : [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ }],
+ [ 'skia_os == "win"', {
+ }],
+ [ 'skia_os == "mac"', {
+ 'sources': [
+
+ # Mac files
+ '../src/views/mac/SkEventNotifier.h',
+ '../src/views/mac/SkEventNotifier.mm',
+ '../src/views/mac/skia_mac.mm',
+ '../src/views/mac/SkNSView.h',
+ '../src/views/mac/SkNSView.mm',
+ '../src/views/mac/SkOptionsTableView.h',
+ '../src/views/mac/SkOptionsTableView.mm',
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/SkTextFieldCell.h',
+ '../src/views/mac/SkTextFieldCell.m',
+ ],
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ 'xcode_settings' : {
+ 'INFOPLIST_FILE' : '../experimental/Intersection/EdgeDemoApp-Info.plist',
+ },
+ 'mac_bundle_resources' : [
+ '../experimental/Intersection/EdgeDemoApp.xib',
+ ],
+ }],
+ ],
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'SubSystem': '2',
+ 'AdditionalDependencies': [
+ 'd3d9.lib',
+ ],
+ },
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/shapeops_edge.gyp b/shapeops_edge.gyp
new file mode 100644
index 0000000..e4e7d72
--- /dev/null
+++ b/shapeops_edge.gyp
@@ -0,0 +1,135 @@
+# GYP file to build unit tests.
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ 'common.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'edge',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ ],
+ 'sources': [
+ '../experimental/Intersection/ActiveEdge_Test.cpp',
+ '../experimental/Intersection/ConvexHull.cpp',
+ '../experimental/Intersection/ConvexHull_Test.cpp',
+ '../experimental/Intersection/CubeRoot.cpp',
+ '../experimental/Intersection/CubicBezierClip.cpp',
+ '../experimental/Intersection/CubicBezierClip_Test.cpp',
+ '../experimental/Intersection/CubicBounds.cpp',
+ '../experimental/Intersection/CubicConvexHull.cpp',
+ '../experimental/Intersection/CubicIntersection.cpp',
+ '../experimental/Intersection/CubicIntersection_Test.cpp',
+ '../experimental/Intersection/CubicIntersection_TestData.cpp',
+ '../experimental/Intersection/CubicLineSegments.cpp',
+ '../experimental/Intersection/CubicParameterization.cpp',
+ '../experimental/Intersection/CubicParameterization_Test.cpp',
+ '../experimental/Intersection/CubicParameterizationCode.cpp',
+ '../experimental/Intersection/CubicReduceOrder.cpp',
+ '../experimental/Intersection/CubicReduceOrder_Test.cpp',
+ '../experimental/Intersection/CubicSubDivide.cpp',
+ '../experimental/Intersection/CubicToQuadratics.cpp',
+ '../experimental/Intersection/CubicToQuadratics_Test.cpp',
+ '../experimental/Intersection/CubicUtilities.cpp',
+ '../experimental/Intersection/CubicUtilities_Test.cpp',
+ '../experimental/Intersection/DataTypes.cpp',
+ '../experimental/Intersection/EdgeMain.cpp',
+ '../experimental/Intersection/EdgeWalker.cpp',
+ '../experimental/Intersection/EdgeWalker_TestUtility.cpp',
+ '../experimental/Intersection/EdgeWalkerPolygon4x4_Test.cpp',
+ '../experimental/Intersection/EdgeWalkerPolygons_Mismatches.cpp',
+ '../experimental/Intersection/EdgeWalkerPolygons_Test.cpp',
+ '../experimental/Intersection/EdgeWalkerQuadralaterals_Test.cpp',
+ '../experimental/Intersection/EdgeWalkerQuadratic4x4_Test.cpp',
+ '../experimental/Intersection/EdgeWalkerQuadratics_Test.cpp',
+ '../experimental/Intersection/EdgeWalkerRectangles_Test.cpp',
+ '../experimental/Intersection/Extrema.cpp',
+ '../experimental/Intersection/Inline_Tests.cpp',
+ '../experimental/Intersection/Intersection_Tests.cpp',
+ '../experimental/Intersection/Intersections.cpp',
+ '../experimental/Intersection/IntersectionUtilities.cpp',
+ '../experimental/Intersection/LineCubicIntersection.cpp',
+ '../experimental/Intersection/LineCubicIntersection_Test.cpp',
+ '../experimental/Intersection/LineIntersection.cpp',
+ '../experimental/Intersection/LineIntersection_Test.cpp',
+ '../experimental/Intersection/LineParameterization.cpp',
+ '../experimental/Intersection/LineParameteters_Test.cpp',
+ '../experimental/Intersection/LineQuadraticIntersection.cpp',
+ '../experimental/Intersection/LineQuadraticIntersection_Test.cpp',
+ '../experimental/Intersection/LineUtilities.cpp',
+ '../experimental/Intersection/MiniSimplify_Test.cpp',
+ '../experimental/Intersection/QuadraticBezierClip.cpp',
+ '../experimental/Intersection/QuadraticBezierClip_Test.cpp',
+ '../experimental/Intersection/QuadraticBounds.cpp',
+ '../experimental/Intersection/QuadraticImplicit.cpp',
+ '../experimental/Intersection/QuadraticIntersection_Test.cpp',
+ '../experimental/Intersection/QuadraticIntersection_TestData.cpp',
+ '../experimental/Intersection/QuadraticLineSegments.cpp',
+ '../experimental/Intersection/QuadraticParameterization.cpp',
+ '../experimental/Intersection/QuadraticParameterization_Test.cpp',
+ '../experimental/Intersection/QuadraticReduceOrder.cpp',
+ '../experimental/Intersection/QuadraticReduceOrder_Test.cpp',
+ '../experimental/Intersection/QuadraticSubDivide.cpp',
+ '../experimental/Intersection/QuadraticUtilities.cpp',
+ '../experimental/Intersection/QuarticRoot.cpp',
+ '../experimental/Intersection/QuarticRoot_Test.cpp',
+ '../experimental/Intersection/ShapeOps.cpp',
+ '../experimental/Intersection/ShapeOpCubic4x4_Test.cpp',
+ '../experimental/Intersection/ShapeOpRect4x4_Test.cpp',
+ '../experimental/Intersection/Simplify.cpp',
+ '../experimental/Intersection/SimplifyAddIntersectingTs_Test.cpp',
+ '../experimental/Intersection/SimplifyAngle_Test.cpp',
+ '../experimental/Intersection/SimplifyFindNext_Test.cpp',
+ '../experimental/Intersection/SimplifyFindTop_Test.cpp',
+ '../experimental/Intersection/SimplifyNew_Test.cpp',
+ '../experimental/Intersection/SimplifyRect4x4_Test.cpp',
+ '../experimental/Intersection/TestUtilities.cpp',
+ '../experimental/Intersection/TriangleUtilities.cpp',
+ '../experimental/Intersection/CubicIntersection_TestData.h',
+ '../experimental/Intersection/CubicLineSegments.h',
+ '../experimental/Intersection/CubicUtilities.h',
+ '../experimental/Intersection/CurveIntersection.h',
+ '../experimental/Intersection/CurveUtilities.h',
+ '../experimental/Intersection/DataTypes.h',
+ '../experimental/Intersection/EdgeWalker_Test.h',
+ '../experimental/Intersection/Extrema.h',
+ '../experimental/Intersection/Intersection_Tests.h',
+ '../experimental/Intersection/Intersections.h',
+ '../experimental/Intersection/IntersectionUtilities.h',
+ '../experimental/Intersection/LineIntersection.h',
+ '../experimental/Intersection/LineParameters.h',
+ '../experimental/Intersection/LineUtilities.h',
+ '../experimental/Intersection/Parameterization_Test.h',
+ '../experimental/Intersection/QuadraticIntersection_TestData.h',
+ '../experimental/Intersection/QuadraticLineSegments.h',
+ '../experimental/Intersection/QuadraticParameterization.h',
+ '../experimental/Intersection/QuadraticUtilities.h',
+ '../experimental/Intersection/QuarticRoot.h',
+ '../experimental/Intersection/ShapeOps.h',
+ '../experimental/Intersection/Simplify.h',
+ '../experimental/Intersection/TestUtilities.h',
+ '../experimental/Intersection/TriangleUtilities.h',
+ '../experimental/Intersection/TSearch.h',
+ '../experimental/Intersection/thingsToDo.txt',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'conditions': [
+ [ 'skia_gpu == 1', {
+ 'include_dirs': [
+ '../src/gpu',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/shapeops_tool.gyp b/shapeops_tool.gyp
new file mode 100644
index 0000000..35caccb
--- /dev/null
+++ b/shapeops_tool.gyp
@@ -0,0 +1,37 @@
+# GYP file to build unit tests.
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ 'common.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'addTest',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ ],
+ 'sources': [
+ '../experimental/Intersection/AddTestOutput/main.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'experimental.gyp:experimental',
+ 'pdf.gyp:pdf',
+ ],
+ 'conditions': [
+ [ 'skia_gpu == 1', {
+ 'include_dirs': [
+ '../src/gpu',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/skia_lib.gyp b/skia_lib.gyp
new file mode 100644
index 0000000..6f8e9cf
--- /dev/null
+++ b/skia_lib.gyp
@@ -0,0 +1,66 @@
+# The minimal set of static libraries for basic Skia functionality.
+
+{
+ 'variables': {
+ 'component_libs': [
+ 'core.gyp:core',
+ 'effects.gyp:effects',
+ 'images.gyp:images',
+ 'opts.gyp:opts',
+ 'ports.gyp:ports',
+ 'sfnt.gyp:sfnt',
+ 'utils.gyp:utils',
+ ],
+ 'conditions': [
+ [ 'skia_arch_type == "x86" and skia_os != "android"', {
+ 'component_libs': [
+ 'opts.gyp:opts_ssse3',
+ ],
+ }],
+ [ 'arm_neon == 1', {
+ 'component_libs': [
+ 'opts.gyp:opts_neon',
+ ],
+ }],
+ [ 'skia_gpu', {
+ 'component_libs': [
+ 'gpu.gyp:skgpu',
+ ],
+ }],
+ ],
+ },
+ 'targets': [
+ {
+ 'target_name': 'skia_lib',
+ 'conditions': [
+ [ 'skia_shared_lib', {
+ 'conditions': [
+ [ 'skia_os == "android"', {
+ # The name skia will confuse the linker on android into using the system's libskia.so
+ # instead of the one packaged with the apk. We simply choose a different name to fix
+ # this.
+ 'product_name': 'skia_android',
+ }, {
+ 'product_name': 'skia',
+ }],
+ ],
+ 'type': 'shared_library',
+ }, {
+ 'type': 'none',
+ }],
+ ],
+ 'dependencies': [
+ '<@(component_libs)',
+ ],
+ 'export_dependent_settings': [
+ '<@(component_libs)',
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/svg.gyp b/svg.gyp
new file mode 100644
index 0000000..aed26a6
--- /dev/null
+++ b/svg.gyp
@@ -0,0 +1,90 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'svg',
+ 'product_name': 'skia_svg',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'xml.gyp:*',
+ ],
+ 'include_dirs': [
+ '../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/tests.gyp b/tests.gyp
new file mode 100644
index 0000000..0a53617
--- /dev/null
+++ b/tests.gyp
@@ -0,0 +1,172 @@
+# GYP file to build unit tests.
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'tests',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ '../src/effects',
+ '../src/lazy',
+ '../src/pathops',
+ '../src/pdf',
+ '../src/pipe/utils',
+ '../src/utils',
+ '../tools/',
+ ],
+ 'includes': [
+ 'pathops_unittest.gypi',
+ ],
+ 'sources': [
+ '../tests/AAClipTest.cpp',
+ '../tests/AnnotationTest.cpp',
+ '../tests/ARGBImageEncoderTest.cpp',
+ '../tests/AtomicTest.cpp',
+ '../tests/BitmapCopyTest.cpp',
+ '../tests/BitmapFactoryTest.cpp',
+ '../tests/BitmapGetColorTest.cpp',
+ '../tests/BitmapHasherTest.cpp',
+ '../tests/BitmapHeapTest.cpp',
+ '../tests/BitSetTest.cpp',
+ '../tests/BlitRowTest.cpp',
+ '../tests/BlurTest.cpp',
+ '../tests/CanvasTest.cpp',
+# '../tests/CanvasStateTest.cpp',
+ '../tests/ChecksumTest.cpp',
+ '../tests/ClampRangeTest.cpp',
+ '../tests/ClipCacheTest.cpp',
+ '../tests/ClipCubicTest.cpp',
+ '../tests/ClipStackTest.cpp',
+ '../tests/ClipperTest.cpp',
+ '../tests/ColorFilterTest.cpp',
+ '../tests/ColorTest.cpp',
+ '../tests/DataRefTest.cpp',
+ '../tests/DeferredCanvasTest.cpp',
+ '../tests/DequeTest.cpp',
+ '../tests/DrawBitmapRectTest.cpp',
+ '../tests/DrawPathTest.cpp',
+ '../tests/DrawTextTest.cpp',
+ '../tests/DynamicHashTest.cpp',
+ '../tests/EmptyPathTest.cpp',
+ '../tests/ErrorTest.cpp',
+ '../tests/FillPathTest.cpp',
+ '../tests/FitsInTest.cpp',
+ '../tests/FlatDataTest.cpp',
+ '../tests/FlateTest.cpp',
+ '../tests/FontHostStreamTest.cpp',
+ '../tests/FontHostTest.cpp',
+ '../tests/FontMgrTest.cpp',
+ '../tests/FontNamesTest.cpp',
+ '../tests/GeometryTest.cpp',
+ '../tests/GLInterfaceValidation.cpp',
+ '../tests/GLProgramsTest.cpp',
+ '../tests/GpuBitmapCopyTest.cpp',
+ '../tests/GpuDrawPathTest.cpp',
+ '../tests/GrContextFactoryTest.cpp',
+ '../tests/GradientTest.cpp',
+ '../tests/GrMemoryPoolTest.cpp',
+ '../tests/GrSurfaceTest.cpp',
+ '../tests/HashCacheTest.cpp',
+ '../tests/ImageCacheTest.cpp',
+ '../tests/ImageDecodingTest.cpp',
+ '../tests/ImageFilterTest.cpp',
+ '../tests/InfRectTest.cpp',
+ '../tests/LListTest.cpp',
+ '../tests/LayerDrawLooperTest.cpp',
+ '../tests/MD5Test.cpp',
+ '../tests/MathTest.cpp',
+ '../tests/MatrixTest.cpp',
+ '../tests/Matrix44Test.cpp',
+ '../tests/MemsetTest.cpp',
+ '../tests/MetaDataTest.cpp',
+ '../tests/MipMapTest.cpp',
+ '../tests/OSPathTest.cpp',
+ '../tests/PackBitsTest.cpp',
+ '../tests/PaintTest.cpp',
+ '../tests/ParsePathTest.cpp',
+ '../tests/PathCoverageTest.cpp',
+ '../tests/PathMeasureTest.cpp',
+ '../tests/PathTest.cpp',
+ '../tests/PathUtilsTest.cpp',
+ '../tests/PDFPrimitivesTest.cpp',
+ '../tests/PictureTest.cpp',
+ '../tests/PictureUtilsTest.cpp',
+ '../tests/PipeTest.cpp',
+ '../tests/PointTest.cpp',
+ '../tests/PremulAlphaRoundTripTest.cpp',
+ '../tests/QuickRejectTest.cpp',
+ '../tests/RandomTest.cpp',
+ '../tests/Reader32Test.cpp',
+ '../tests/ReadPixelsTest.cpp',
+ '../tests/ReadWriteAlphaTest.cpp',
+ '../tests/RefCntTest.cpp',
+ '../tests/RefDictTest.cpp',
+ '../tests/RegionTest.cpp',
+ '../tests/ResourceCacheTest.cpp',
+ '../tests/RoundRectTest.cpp',
+ '../tests/RTreeTest.cpp',
+ '../tests/SHA1Test.cpp',
+ '../tests/ScalarTest.cpp',
+ '../tests/ShaderImageFilterTest.cpp',
+ '../tests/ShaderOpacityTest.cpp',
+ '../tests/Sk64Test.cpp',
+ '../tests/skia_test.cpp',
+ '../tests/SortTest.cpp',
+ '../tests/SrcOverTest.cpp',
+ '../tests/StreamTest.cpp',
+ '../tests/StringTest.cpp',
+ '../tests/StrokeTest.cpp',
+ '../tests/SurfaceTest.cpp',
+ '../tests/Test.cpp',
+ '../tests/Test.h',
+ '../tests/TestSize.cpp',
+ '../tests/TileGridTest.cpp',
+ '../tests/TLSTest.cpp',
+ '../tests/TSetTest.cpp',
+ '../tests/ToUnicode.cpp',
+ '../tests/UnicodeTest.cpp',
+ '../tests/UtilsTest.cpp',
+ '../tests/WArrayTest.cpp',
+ '../tests/WritePixelsTest.cpp',
+ '../tests/Writer32Test.cpp',
+ '../tests/XfermodeTest.cpp',
+
+ # Needed for PipeTest.
+ '../src/pipe/utils/SamplePipeControllers.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'flags.gyp:flags',
+ 'experimental.gyp:experimental',
+ 'pdf.gyp:pdf',
+ 'tools.gyp:picture_utils',
+ ],
+ 'conditions': [
+ [ 'skia_gpu == 1', {
+ 'include_dirs': [
+ '../src/gpu',
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ # CityHash is not supported on NaCl because the NaCl toolchain is
+ # missing byteswap.h which is needed by CityHash.
+ # TODO(borenet): Find a way to either provide this dependency or
+ # replace it.
+ 'sources!': [
+ '../tests/BitmapHasherTest.cpp',
+ '../tests/ChecksumTest.cpp',
+ ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/tools.gyp b/tools.gyp
new file mode 100644
index 0000000..3eae3cc
--- /dev/null
+++ b/tools.gyp
@@ -0,0 +1,477 @@
+# GYP file to build various tools.
+#
+# To build on Linux:
+# ./gyp_skia tools.gyp && make tools
+#
+{
+ 'includes': [
+ 'apptype_console.gypi',
+ ],
+ 'targets': [
+ {
+ # Build all executable targets defined below.
+ 'target_name': 'tools',
+ 'type': 'none',
+ 'dependencies': [
+ 'bench_pictures',
+ 'filter',
+ 'lua_pictures',
+ 'bbh_shootout',
+ 'lua_app',
+ 'pinspect',
+ 'render_pdfs',
+ 'render_pictures',
+ 'skdiff',
+ 'skpdiff',
+ 'skhello',
+ 'skimage',
+ ],
+ 'conditions': [
+ ['skia_shared_lib',
+ {
+ 'dependencies': [
+ 'sklua', # This can only be built if skia is built as a shared library
+ ],
+ },
+ ],
+ ],
+ },
+ {
+ 'target_name': 'skdiff',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/skdiff.cpp',
+ '../tools/skdiff.h',
+ '../tools/skdiff_html.cpp',
+ '../tools/skdiff_html.h',
+ '../tools/skdiff_main.cpp',
+ '../tools/skdiff_utils.cpp',
+ '../tools/skdiff_utils.h',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ },
+ {
+ 'target_name': 'skpdiff',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/skpdiff/skpdiff_main.cpp',
+ '../tools/skpdiff/SkDiffContext.cpp',
+ '../tools/skpdiff/SkImageDiffer.cpp',
+ '../tools/skpdiff/SkPMetric.cpp',
+ '../tools/skpdiff/skpdiff_util.cpp',
+ '../tools/flags/SkCommandLineFlags.cpp',
+ ],
+ 'include_dirs': [
+ '../tools/flags'
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'cflags': [
+ '-O3',
+ ],
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'link_settings': {
+ 'libraries': [
+ '-lrt',
+ ],
+ },
+ }],
+ ['skia_opencl', {
+ 'sources': [
+ '../tools/skpdiff/SkCLImageDiffer.cpp',
+ '../tools/skpdiff/SkDifferentPixelsMetric_opencl.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/OpenCL.framework',
+ ]
+ }
+ }, {
+ 'link_settings': {
+ 'libraries': [
+ '-lOpenCL',
+ ],
+ },
+ }],
+ ],
+ }, { # !skia_opencl
+ 'sources': [
+ '../tools/skpdiff/SkDifferentPixelsMetric_cpu.cpp',
+ ],
+ }],
+ ],
+ },
+ {
+ 'target_name': 'skimagediff',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/skdiff.cpp',
+ '../tools/skdiff.h',
+ '../tools/skdiff_html.cpp',
+ '../tools/skdiff_html.h',
+ '../tools/skdiff_image.cpp',
+ '../tools/skdiff_utils.cpp',
+ '../tools/skdiff_utils.h',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ },
+ {
+ 'target_name': 'skhello',
+ 'type': 'executable',
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'conditions': [
+ [ 'skia_os == "nacl"', {
+ 'sources': [
+ '../platform_tools/nacl/src/nacl_hello.cpp',
+ ],
+ }, {
+ 'sources': [
+ '../tools/skhello.cpp',
+ ],
+ 'dependencies': [
+ 'pdf.gyp:pdf',
+ 'flags.gyp:flags',
+ ],
+ }],
+ ],
+ },
+ {
+ 'target_name': 'skimage',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/skimage_main.cpp',
+ ],
+ 'include_dirs': [
+ # For SkBitmapHasher.h
+ '../src/utils/',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'flags.gyp:flags',
+ 'gm.gyp:gm_expectations',
+ 'jsoncpp.gyp:jsoncpp',
+ 'utils.gyp:utils',
+ ],
+ },
+
+ {
+ 'target_name': 'lua_app',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/lua/lua_app.cpp',
+ '../src/utils/SkLua.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'effects.gyp:effects',
+ 'utils.gyp:utils',
+ 'images.gyp:images',
+ 'pdf.gyp:pdf',
+ 'ports.gyp:ports',
+ 'lua.gyp:lua',
+ ],
+ },
+ {
+ 'target_name': 'lua_pictures',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/lua/lua_pictures.cpp',
+ '../src/utils/SkLuaCanvas.cpp',
+ '../src/utils/SkLua.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'effects.gyp:effects',
+ 'utils.gyp:utils',
+ 'images.gyp:images',
+ 'tools.gyp:picture_renderer',
+ 'tools.gyp:picture_utils',
+ 'pdf.gyp:pdf',
+ 'ports.gyp:ports',
+ 'flags.gyp:flags',
+ 'lua.gyp:lua',
+ ],
+ },
+ {
+ 'target_name': 'render_pictures',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/render_pictures_main.cpp',
+ ],
+ 'include_dirs': [
+ '../src/pipe/utils/',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'tools.gyp:picture_renderer',
+ 'tools.gyp:picture_utils',
+ 'flags.gyp:flags',
+ ],
+ },
+ {
+ 'target_name': 'bench_pictures',
+ 'type': 'executable',
+ 'sources': [
+ '../bench/SkBenchLogger.h',
+ '../bench/SkBenchLogger.cpp',
+ '../bench/TimerData.h',
+ '../bench/TimerData.cpp',
+ '../tools/bench_pictures_main.cpp',
+ '../tools/PictureBenchmark.cpp',
+ ],
+ 'include_dirs': [
+ '../bench',
+ '../src/lazy/',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'tools.gyp:picture_utils',
+ 'tools.gyp:picture_renderer',
+ 'bench.gyp:bench_timer',
+ 'flags.gyp:flags',
+ ],
+ },
+ {
+ 'target_name': 'picture_renderer',
+ 'type': 'static_library',
+ 'sources': [
+ '../tools/LazyDecodeBitmap.cpp',
+ '../tools/PictureRenderer.h',
+ '../tools/PictureRenderer.cpp',
+ '../tools/PictureRenderingFlags.h',
+ '../tools/PictureRenderingFlags.cpp',
+ '../tools/CopyTilesRenderer.h',
+ '../tools/CopyTilesRenderer.cpp',
+ '../src/pipe/utils/SamplePipeControllers.h',
+ '../src/pipe/utils/SamplePipeControllers.cpp',
+ ],
+ 'include_dirs': [
+ '../src/core/',
+ '../src/pipe/utils/',
+ '../src/utils/',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'tools.gyp:picture_utils',
+ 'flags.gyp:flags',
+ ],
+ 'conditions': [
+ ['skia_gpu == 1',
+ {
+ 'include_dirs' : [
+ '../src/gpu',
+ ],
+ },
+ ],
+ ],
+ },
+ {
+ 'target_name': 'render_pdfs',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/render_pdfs_main.cpp',
+ '../tools/PdfRenderer.cpp',
+ '../tools/PdfRenderer.h',
+ ],
+ 'include_dirs': [
+ '../src/pipe/utils/',
+ '../src/utils/',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'pdf.gyp:pdf',
+ 'tools.gyp:picture_utils',
+ ],
+ 'conditions': [
+ ['skia_win_debuggers_path and skia_os == "win"',
+ {
+ 'dependencies': [
+ 'tools.gyp:win_dbghelp',
+ ],
+ },
+ ],
+ # VS static libraries don't have a linker option. We must set a global
+ # project linker option, or add it to each executable.
+ ['skia_win_debuggers_path and skia_os == "win" and '
+ 'skia_arch_width == 64',
+ {
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'AdditionalDependencies': [
+ '<(skia_win_debuggers_path)/x64/DbgHelp.lib',
+ ],
+ },
+ },
+ },
+ ],
+ ['skia_win_debuggers_path and skia_os == "win" and '
+ 'skia_arch_width == 32',
+ {
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'AdditionalDependencies': [
+ '<(skia_win_debuggers_path)/DbgHelp.lib',
+ ],
+ },
+ },
+ },
+ ],
+ ],
+ },
+ {
+ 'target_name': 'picture_utils',
+ 'type': 'static_library',
+ 'sources': [
+ '../tools/picture_utils.cpp',
+ '../tools/picture_utils.h',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../tools/',
+ ],
+ },
+ },
+ {
+ 'target_name': 'pinspect',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/pinspect.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'tools.gyp:picture_renderer',
+ 'flags.gyp:flags',
+ ],
+ },
+ {
+ 'target_name': 'bbh_shootout',
+ 'type': 'executable',
+ 'include_dirs': [
+ '../bench',
+ '../tools/'
+ ],
+ 'sources': [
+ '../tools/bbh_shootout.cpp',
+
+ # Bench code:
+ '../bench/TimerData.h',
+ '../bench/TimerData.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'bench.gyp:bench_timer',
+ 'tools.gyp:picture_utils',
+ 'tools.gyp:picture_renderer',
+ 'flags.gyp:flags',
+ ],
+ },
+ {
+ 'target_name': 'filter',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ '../src/utils/debugger',
+ ],
+ 'sources': [
+ '../tools/filtermain.cpp',
+ '../tools/path_utils.h',
+ '../tools/path_utils.cpp',
+ '../src/utils/debugger/SkDrawCommand.h',
+ '../src/utils/debugger/SkDrawCommand.cpp',
+ '../src/utils/debugger/SkDebugCanvas.h',
+ '../src/utils/debugger/SkDebugCanvas.cpp',
+ '../src/utils/debugger/SkObjectParser.h',
+ '../src/utils/debugger/SkObjectParser.cpp',
+ ],
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'tools.gyp:picture_utils',
+ ],
+ },
+ ],
+ 'conditions': [
+ ['skia_shared_lib',
+ {
+ 'targets': [
+ {
+ 'target_name': 'sklua',
+ 'product_name': 'skia',
+ 'product_prefix': '',
+ 'product_dir': '<(PRODUCT_DIR)/',
+ 'type': 'shared_library',
+ 'sources': [
+ '../src/utils/SkLuaCanvas.cpp',
+ '../src/utils/SkLua.cpp',
+ ],
+ 'include_dirs': [
+ '../third_party/lua/src/',
+ ],
+ 'dependencies': [
+ 'lua.gyp:lua',
+ 'pdf.gyp:pdf',
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'conditions': [
+ ['skia_os != "win"',
+ {
+ 'ldflags': [
+ '-Wl,-rpath,\$$ORIGIN,--enable-new-dtags',
+ ],
+ },
+ ],
+ ],
+ },
+ ],
+ },
+ ],
+ ['skia_win_debuggers_path and skia_os == "win"',
+ {
+ 'targets': [
+ {
+ 'target_name': 'win_dbghelp',
+ 'type': 'static_library',
+ 'defines': [
+ 'SK_CDB_PATH="<(skia_win_debuggers_path)"',
+ ],
+ 'sources': [
+ '../tools/win_dbghelp.h',
+ '../tools/win_dbghelp.cpp',
+ ],
+ },
+ ],
+ },
+ ],
+ ['skia_os == "win"',
+ {
+ 'targets': [
+ {
+ 'target_name': 'win_lcid',
+ 'type': 'executable',
+ 'sources': [
+ '../tools/win_lcid.cpp',
+ ],
+ },
+ ],
+ },
+ ],
+ ],
+}
+
+# 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..d3bac16
--- /dev/null
+++ b/utils.gyp
@@ -0,0 +1,229 @@
+# Gyp for utils.
+{
+ 'targets': [
+ {
+ 'target_name': 'utils',
+ 'product_name': 'skia_utils',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'core.gyp:*',
+ ],
+ 'include_dirs': [
+ '../include/effects',
+ '../include/images',
+ '../include/lazy',
+ '../include/pathops',
+ '../include/pipe',
+ '../include/utils',
+ '../include/utils/mac',
+ '../include/utils/unix',
+ '../include/utils/win',
+ '../include/xml',
+ '../src/core',
+ '../src/utils',
+ ],
+ 'sources': [
+ # Classes for a threadpool.
+ '../include/utils/SkCondVar.h',
+ '../include/utils/SkCountdown.h',
+ '../include/utils/SkRunnable.h',
+ '../include/utils/SkThreadPool.h',
+ '../src/utils/SkCondVar.cpp',
+ '../src/utils/SkCountdown.cpp',
+ '../src/utils/SkThreadPool.cpp',
+
+ '../include/utils/SkBoundaryPatch.h',
+ '../include/utils/SkCamera.h',
+ '../include/utils/SkCanvasStateUtils.h',
+ '../include/utils/SkCubicInterval.h',
+ '../include/utils/SkCullPoints.h',
+ '../include/utils/SkDebugUtils.h',
+ '../include/utils/SkDeferredCanvas.h',
+ '../include/utils/SkDumpCanvas.h',
+ '../include/utils/SkInterpolator.h',
+ '../include/utils/SkLayer.h',
+ '../include/utils/SkMatrix44.h',
+ '../include/utils/SkMeshUtils.h',
+ '../include/utils/SkNinePatch.h',
+ '../include/utils/SkNWayCanvas.h',
+ '../include/utils/SkNullCanvas.h',
+ '../include/utils/SkParse.h',
+ '../include/utils/SkParsePaint.h',
+ '../include/utils/SkParsePath.h',
+ '../include/utils/SkPictureUtils.h',
+ '../include/utils/SkRandom.h',
+ '../include/utils/SkRTConf.h',
+ '../include/utils/SkProxyCanvas.h',
+ '../include/utils/SkUnitMappers.h',
+ '../include/utils/SkWGL.h',
+
+ '../src/utils/SkBase64.cpp',
+ '../src/utils/SkBase64.h',
+ '../src/utils/SkBitmapHasher.cpp',
+ '../src/utils/SkBitmapHasher.h',
+ '../src/utils/SkBitSet.cpp',
+ '../src/utils/SkBitSet.h',
+ '../src/utils/SkBoundaryPatch.cpp',
+ '../src/utils/SkCamera.cpp',
+ '../src/utils/SkCanvasStack.h',
+ '../src/utils/SkCanvasStack.cpp',
+ '../src/utils/SkCanvasStateUtils.cpp',
+ '../src/utils/SkCubicInterval.cpp',
+ '../src/utils/SkCullPoints.cpp',
+ '../src/utils/SkDeferredCanvas.cpp',
+ '../src/utils/SkDumpCanvas.cpp',
+ '../src/utils/SkFloatUtils.h',
+ '../src/utils/SkInterpolator.cpp',
+ '../src/utils/SkLayer.cpp',
+ '../src/utils/SkMatrix44.cpp',
+ '../src/utils/SkMD5.cpp',
+ '../src/utils/SkMD5.h',
+ '../src/utils/SkMeshUtils.cpp',
+ '../src/utils/SkNinePatch.cpp',
+ '../src/utils/SkNWayCanvas.cpp',
+ '../src/utils/SkNullCanvas.cpp',
+ '../src/utils/SkOSFile.cpp',
+ '../src/utils/SkParse.cpp',
+ '../src/utils/SkParseColor.cpp',
+ '../src/utils/SkParsePath.cpp',
+ '../src/utils/SkPictureUtils.cpp',
+ '../src/utils/SkPathUtils.cpp',
+ '../src/utils/SkProxyCanvas.cpp',
+ '../src/utils/SkSHA1.cpp',
+ '../src/utils/SkSHA1.h',
+ '../src/utils/SkRTConf.cpp',
+ '../src/utils/SkThreadUtils.h',
+ '../src/utils/SkThreadUtils_pthread.cpp',
+ '../src/utils/SkThreadUtils_pthread.h',
+ '../src/utils/SkThreadUtils_pthread_linux.cpp',
+ '../src/utils/SkThreadUtils_pthread_mach.cpp',
+ '../src/utils/SkThreadUtils_pthread_other.cpp',
+ '../src/utils/SkThreadUtils_win.cpp',
+ '../src/utils/SkThreadUtils_win.h',
+ '../src/utils/SkTFitsIn.h',
+ '../src/utils/SkTLogic.h',
+ '../src/utils/SkUnitMappers.cpp',
+
+ #mac
+ '../include/utils/mac/SkCGUtils.h',
+ '../src/utils/mac/SkCreateCGImageRef.cpp',
+
+ #windows
+ '../include/utils/win/SkAutoCoInitialize.h',
+ '../include/utils/win/SkHRESULT.h',
+ '../include/utils/win/SkIStream.h',
+ '../include/utils/win/SkTScopedComPtr.h',
+ '../src/utils/win/SkAutoCoInitialize.cpp',
+ '../src/utils/win/SkDWriteFontFileStream.cpp',
+ '../src/utils/win/SkDWriteFontFileStream.h',
+ '../src/utils/win/SkDWriteGeometrySink.cpp',
+ '../src/utils/win/SkDWriteGeometrySink.h',
+ '../src/utils/win/SkHRESULT.cpp',
+ '../src/utils/win/SkIStream.cpp',
+ '../src/utils/win/SkWGL_win.cpp',
+
+ #testing
+ '../src/fonts/SkGScalerContext.cpp',
+ '../src/fonts/SkGScalerContext.h',
+ ],
+ 'sources!': [
+ '../src/utils/SDL/SkOSWindow_SDL.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/AGL.framework',
+ ],
+ },
+ }],
+ [ 'skia_os in ["mac", "ios"]', {
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../include/utils/mac',
+ ],
+ },
+ 'sources!': [
+ '../src/utils/SkThreadUtils_pthread_other.cpp',
+ ],
+ },{ #else if 'skia_os != "mac"'
+ 'include_dirs!': [
+ '../include/utils/mac',
+ ],
+ 'sources!': [
+ '../include/utils/mac/SkCGUtils.h',
+ '../src/utils/mac/SkCreateCGImageRef.cpp',
+ '../src/utils/SkThreadUtils_pthread_mach.cpp',
+ ],
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'sources!': [
+ '../src/utils/SkThreadUtils_pthread_other.cpp',
+ ],
+ },{ #else if 'skia_os not in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]'
+ 'include_dirs!': [
+ '../include/utils/unix',
+ ],
+ 'sources!': [
+ '../src/utils/SkThreadUtils_pthread_linux.cpp',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../include/utils/win',
+ ],
+ },
+ 'sources!': [
+ '../src/utils/SkThreadUtils_pthread.cpp',
+ '../src/utils/SkThreadUtils_pthread.h',
+ '../src/utils/SkThreadUtils_pthread_other.cpp',
+ ],
+ },{ #else if 'skia_os != "win"'
+ 'include_dirs!': [
+ '../include/utils/win',
+ ],
+ 'sources/': [ ['exclude', '_win.(h|cpp)$'],],
+ 'sources!': [
+ '../include/utils/win/SkAutoCoInitialize.h',
+ '../include/utils/win/SkHRESULT.h',
+ '../include/utils/win/SkIStream.h',
+ '../include/utils/win/SkTScopedComPtr.h',
+ '../src/utils/win/SkAutoCoInitialize.cpp',
+ '../src/utils/win/SkDWriteFontFileStream.cpp',
+ '../src/utils/win/SkDWriteFontFileStream.h',
+ '../src/utils/win/SkDWriteGeometrySink.cpp',
+ '../src/utils/win/SkDWriteGeometrySink.h',
+ '../src/utils/win/SkHRESULT.cpp',
+ '../src/utils/win/SkIStream.cpp',
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ 'sources': [
+ '../src/utils/SkThreadUtils_pthread_other.cpp',
+ ],
+ 'sources!': [
+ '../src/utils/SkThreadUtils_pthread_linux.cpp',
+ ],
+ }],
+ [ 'skia_os == "android"', {
+ 'sources': [
+ '../src/utils/android/ashmem.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..51ce0f0
--- /dev/null
+++ b/views.gyp
@@ -0,0 +1,148 @@
+# Views is the Skia windowing toolkit.
+# It provides:
+# * A portable means of creating native windows.
+# * Events.
+# * Basic widgets and controls.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'views',
+ 'product_name': 'skia_views',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'angle.gyp:*',
+ 'xml.gyp:*',
+ ],
+ 'include_dirs': [
+ '../include/views',
+ '../include/views/unix',
+ ],
+ 'sources': [
+ '../include/views/SkApplication.h',
+ '../include/views/SkBGViewArtist.h',
+ '../include/views/SkEvent.h',
+ '../include/views/SkEventSink.h',
+ '../include/views/SkKey.h',
+ '../include/views/SkOSMenu.h',
+ '../include/views/SkOSWindow_Mac.h',
+ '../include/views/SkOSWindow_NaCl.h',
+ '../include/views/SkOSWindow_SDL.h',
+ '../include/views/SkOSWindow_Unix.h',
+ '../include/views/SkOSWindow_Win.h',
+ '../include/views/SkStackViewLayout.h',
+ '../include/views/SkSystemEventTypes.h',
+ '../include/views/SkTextBox.h',
+ '../include/views/SkTouchGesture.h',
+ '../include/views/SkView.h',
+ '../include/views/SkViewInflate.h',
+ '../include/views/SkWidget.h',
+ '../include/views/SkWindow.h',
+
+ '../src/views/SkBGViewArtist.cpp',
+ '../src/views/SkEvent.cpp',
+ '../src/views/SkEventSink.cpp',
+ '../src/views/SkOSMenu.cpp',
+ '../src/views/SkParsePaint.cpp',
+ '../src/views/SkProgressView.cpp',
+ '../src/views/SkStackViewLayout.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/SkWidgets.cpp',
+ '../src/views/SkWindow.cpp',
+
+ # Mac
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/skia_mac.mm',
+
+ # SDL
+ '../src/views/SDL/SkOSWindow_SDL.cpp',
+
+ # *nix
+ '../src/views/unix/SkOSWindow_Unix.cpp',
+ '../src/views/unix/keysym2ucs.c',
+ '../src/views/unix/skia_unix.cpp',
+
+ # Windows
+ '../src/views/win/SkOSWindow_win.cpp',
+ '../src/views/win/skia_win.cpp',
+
+ ],
+ 'sources!' : [
+ '../src/views/SDL/SkOSWindow_SDL.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ ],
+ },
+ },{
+ 'sources!': [
+ '../src/views/mac/SkOSWindow_Mac.mm',
+ '../src/views/mac/skia_mac.mm',
+ ],
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
+ 'link_settings': {
+ 'libraries': [
+ '-lGL',
+ '-lGLU',
+ '-lX11',
+ ],
+ },
+ },{
+ 'sources!': [
+ '../src/views/unix/SkOSWindow_Unix.cpp',
+ '../src/views/unix/keysym2ucs.c',
+ '../src/views/unix/skia_unix.cpp',
+ ],
+ }],
+ [ 'skia_os == "win"', {
+ },{
+ 'sources!': [
+ '../src/views/win/SkOSWindow_win.cpp',
+ '../src/views/win/skia_win.cpp',
+ ],
+ }],
+ [ 'skia_os == "nacl"', {
+ 'sources!': [
+ '../src/views/unix/SkOSWindow_Unix.cpp',
+ '../src/views/unix/keysym2ucs.c',
+ '../src/views/unix/skia_unix.cpp',
+ ],
+ }, {
+ 'sources!': [
+ '../src/views/nacl/SkOSWindow_NaCl.cpp',
+ ],
+ }],
+ [ 'skia_gpu == 1', {
+ 'include_dirs': [
+ '../include/gpu',
+ ],
+ }],
+ ],
+ '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/views_animated.gyp b/views_animated.gyp
new file mode 100644
index 0000000..4bfcb28
--- /dev/null
+++ b/views_animated.gyp
@@ -0,0 +1,71 @@
+#Animated widgets are views which use animator.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'views_animated',
+ 'type': 'static_library',
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'angle.gyp:*',
+ 'animator.gyp:*',
+ 'views.gyp:*',
+ 'xml.gyp:*',
+ ],
+ 'include_dirs': [
+ '../include/views/animated',
+ '../include/views/unix',
+ ],
+ 'sources': [
+ '../include/views/animated/SkBorderView.h',
+ '../include/views/animated/SkImageView.h',
+ '../include/views/animated/SkProgressBarView.h',
+ '../include/views/animated/SkScrollBarView.h',
+ '../include/views/animated/SkWidgetViews.h',
+
+ '../src/views/animated/SkBorderView.cpp',
+ '../src/views/animated/SkImageView.cpp',
+ '../src/views/animated/SkProgressBarView.cpp',
+ '../src/views/animated/SkScrollBarView.cpp',
+ '../src/views/animated/SkStaticTextView.cpp',
+ '../src/views/animated/SkWidgetViews.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
+ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+ ],
+ },
+ }],
+ [ 'skia_os == "android"', {
+ # Android does not support animator so we need to remove all files
+ # that have references to it.
+ 'include_dirs!': [
+ '../include/animator',
+ ],
+ 'sources!': [
+ '../src/views/animated/SkBorderView.cpp',
+ '../src/views/animated/SkImageView.cpp',
+ '../src/views/animated/SkProgressBarView.cpp',
+ '../src/views/animated/SkScrollBarView.cpp',
+ '../src/views/animated/SkStaticTextView.cpp',
+ '../src/views/animated/SkWidgetViews.cpp',
+ ],
+ }],
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../include/views/animated',
+ ],
+ },
+ },
+ ],
+}
+
+# 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..7c06b44
--- /dev/null
+++ b/xml.gyp
@@ -0,0 +1,57 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'xml',
+ 'product_name': 'skia_xml',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'include_dirs': [
+ '../include/xml',
+ ],
+ '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': [
+ [ 'skia_os in ["win", "mac", "linux", "freebsd", "openbsd", "solaris", "android", "ios", "nacl", "chromeos"]', {
+ '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:
diff --git a/xps.gyp b/xps.gyp
new file mode 100644
index 0000000..29d5e07
--- /dev/null
+++ b/xps.gyp
@@ -0,0 +1,66 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'xps',
+ 'product_name': 'skia_xps',
+ 'type': 'static_library',
+ 'standalone_static_library': 1,
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ 'sfnt.gyp:sfnt',
+ ],
+ 'include_dirs': [
+ '../include/device/xps',
+ '../include/utils/win',
+ '../src/core', # needed to get SkGlyphCache.h
+ '../src/utils', # needed to get SkBitSet.h
+ ],
+ 'sources': [
+ '../include/device/xps/SkConstexprMath.h',
+ '../include/device/xps/SkXPSDevice.h',
+
+ '../src/device/xps/SkXPSDevice.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "win"', {
+ 'link_settings': {
+ 'libraries': [
+ 'T2Embed.lib',
+ 'FontSub.lib',
+ ],
+ },
+ },{ #else if 'skia_os != "win"'
+ 'include_dirs!': [
+ '../include/utils/win',
+ ],
+ 'sources!': [
+ '../include/device/xps/SkXPSDevice.h',
+
+ '../src/device/xps/SkXPSDevice.cpp',
+ ],
+ }],
+ ],
+ # This section makes all targets that depend on this target
+ # #define SK_SUPPORT_XPS and have access to the xps header files.
+ 'direct_dependent_settings': {
+ 'conditions': [
+ [ 'skia_os == "win"', {
+ 'defines': [
+ 'SK_SUPPORT_XPS',
+ ],
+ }],
+ ],
+ 'include_dirs': [
+ '../include/device/xps',
+ '../src/utils', # needed to get SkBitSet.h
+ ],
+ },
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/zlib.gyp b/zlib.gyp
new file mode 100644
index 0000000..89d4470
--- /dev/null
+++ b/zlib.gyp
@@ -0,0 +1,44 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'zlib',
+ 'type': 'static_library',
+ 'dependencies': [
+ 'skia_lib.gyp:skia_lib',
+ ],
+ 'sources': [
+ '../include/core/SkFlate.h',
+
+ '../src/core/SkFlate.cpp',
+ ],
+ 'conditions': [
+ [ 'skia_os == "mac"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/usr/lib/libz.dylib',
+ ],
+ },
+ 'defines': [ 'SK_ZLIB_INCLUDE=<zlib.h>', ],
+ }],
+ [ 'skia_os == "ios"', {
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/usr/lib/libz.dylib',
+ ],
+ },
+ 'defines': [ 'SK_ZLIB_INCLUDE=<zlib.h>', ],
+ }],
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "android", "nacl"]', {
+ 'link_settings': { 'libraries': [ '-lz', ], },
+ 'defines': [ 'SK_ZLIB_INCLUDE=<zlib.h>', ],
+ }],
+ ],
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2: