diff options
author | Baligh Uddin <baligh@google.com> | 2013-11-01 16:01:50 -0700 |
---|---|---|
committer | Baligh Uddin <baligh@google.com> | 2013-11-01 16:01:50 -0700 |
commit | 492eca10cdbfb13f963abf4b0f16c6536abf17b5 (patch) | |
tree | 8ec7fd160da63434c3467634aa57235228813d41 | |
parent | 226525d75d212275020646c41a5c25ee4817fa5b (diff) | |
parent | d194b7120ce19bf8fd18b65be7851865b7d88e9c (diff) | |
download | gyp-idea133.tar.gz |
Merge remote-tracking branch 'origin/kitkat-dev'chromium_org-pre-replicationidea133
-rw-r--r-- | FileReaderApp.gyp | 71 | ||||
-rw-r--r-- | SampleApp.gyp | 326 | ||||
-rw-r--r-- | SimpleCocoaApp.gyp | 60 | ||||
-rw-r--r-- | SimpleiOSApp.gyp | 69 | ||||
-rw-r--r-- | android_deps.gyp | 20 | ||||
-rw-r--r-- | android_system.gyp | 20 | ||||
-rw-r--r-- | angle.gyp | 41 | ||||
-rw-r--r-- | animator.gyp | 193 | ||||
-rw-r--r-- | apptype_console.gypi | 83 | ||||
-rw-r--r-- | bench.gyp | 95 | ||||
-rw-r--r-- | bench.gypi | 85 | ||||
-rw-r--r-- | chromeos_deps.gyp | 9 | ||||
-rw-r--r-- | cityhash.gyp | 5 | ||||
-rw-r--r-- | common.gypi | 118 | ||||
-rw-r--r-- | common_conditions.gypi | 489 | ||||
-rw-r--r-- | common_variables.gypi | 160 | ||||
-rw-r--r-- | core.gyp | 136 | ||||
-rw-r--r-- | core.gypi | 380 | ||||
-rw-r--r-- | debugger.gyp | 194 | ||||
-rw-r--r-- | effects.gyp | 45 | ||||
-rw-r--r-- | effects.gypi | 121 | ||||
-rw-r--r-- | everything.gyp | 31 | ||||
-rw-r--r-- | experimental.gyp | 97 | ||||
-rw-r--r-- | flags.gyp | 28 | ||||
-rw-r--r-- | freetype.gyp | 134 | ||||
-rw-r--r-- | gm.gyp | 96 | ||||
-rw-r--r-- | gmslides.gypi | 139 | ||||
-rw-r--r-- | gpu.gyp | 271 | ||||
-rw-r--r-- | gpu.gypi | 282 | ||||
-rw-r--r-- | images.gyp | 176 | ||||
-rw-r--r-- | jsoncpp.gyp | 67 | ||||
-rw-r--r-- | libjpeg.gyp | 141 | ||||
-rw-r--r-- | libwebp.gyp | 176 | ||||
-rw-r--r-- | lua.gyp | 71 | ||||
-rw-r--r-- | most.gyp | 36 | ||||
-rw-r--r-- | nacl.gyp | 19 | ||||
-rw-r--r-- | opts.gyp | 180 | ||||
-rw-r--r-- | pathops.gypi | 62 | ||||
-rw-r--r-- | pathops_unittest.gyp | 48 | ||||
-rw-r--r-- | pathops_unittest.gypi | 46 | ||||
-rw-r--r-- | pdf.gyp | 41 | ||||
-rw-r--r-- | pdf.gypi | 50 | ||||
-rw-r--r-- | pdfviewer.gyp | 125 | ||||
-rw-r--r-- | pixman_test.gyp | 175 | ||||
-rw-r--r-- | ports.gyp | 175 | ||||
-rw-r--r-- | public_headers.gypi | 316 | ||||
-rw-r--r-- | sfnt.gyp | 56 | ||||
-rw-r--r-- | shapeops_demo.gyp | 124 | ||||
-rw-r--r-- | shapeops_edge.gyp | 135 | ||||
-rw-r--r-- | shapeops_tool.gyp | 37 | ||||
-rw-r--r-- | skia_lib.gyp | 66 | ||||
-rw-r--r-- | svg.gyp | 90 | ||||
-rw-r--r-- | tests.gyp | 172 | ||||
-rw-r--r-- | tools.gyp | 477 | ||||
-rw-r--r-- | utils.gyp | 229 | ||||
-rw-r--r-- | views.gyp | 148 | ||||
-rw-r--r-- | views_animated.gyp | 71 | ||||
-rw-r--r-- | xml.gyp | 57 | ||||
-rw-r--r-- | xps.gyp | 66 | ||||
-rw-r--r-- | zlib.gyp | 44 |
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: @@ -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: @@ -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', + ], + }, + } + ], + }], + ], +} @@ -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', + ], +} @@ -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: @@ -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: @@ -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: @@ -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: |