diff options
Diffstat (limited to 'WebCore/WebCore.gyp')
-rw-r--r-- | WebCore/WebCore.gyp/WebCore.gyp | 338 |
1 files changed, 190 insertions, 148 deletions
diff --git a/WebCore/WebCore.gyp/WebCore.gyp b/WebCore/WebCore.gyp/WebCore.gyp index 6282530..2745cfa 100644 --- a/WebCore/WebCore.gyp/WebCore.gyp +++ b/WebCore/WebCore.gyp/WebCore.gyp @@ -95,6 +95,12 @@ }, # target webkit_system_interface ], # targets }], # condition OS == "mac" + ['OS!="win" and remove_webcore_debug_symbols==1', { + # Remove -g from all targets defined here. + 'target_defaults': { + 'cflags!': ['-g'], + }, + }], ], # conditions 'variables': { @@ -163,6 +169,7 @@ '../plugins/chromium', '../rendering', '../rendering/style', + '../rendering/svg', '../storage', '../storage/chromium', '../svg', @@ -799,13 +806,6 @@ 'include_dirs+++': ['../dom'], }, }], - ['OS!="win" and remove_webcore_debug_symbols==1', { - 'configurations': { - 'Debug': { - 'cflags!': ['-g'], - } - }, - }], ], }, { @@ -982,6 +982,9 @@ '<@(webcore_files)', ], 'sources/': [ + # Start by excluding everything then include svg files only. Note that + # css/SVG* and bindings/v8/custom/V8SVG* are still built in + # webcore_remaining. ['exclude', '.*'], ['include', 'svg/'], ['include', 'css/svg/'], @@ -992,7 +995,7 @@ ], }, { - 'target_name': 'webcore_remaining', + 'target_name': 'webcore_platform', 'type': '<(library)', 'dependencies': [ 'webcore_prerequisites', @@ -1007,137 +1010,38 @@ '../../WebKit/mac/WebCoreSupport/WebSystemInterface.mm', ], 'sources/': [ - # Exclude JSC custom bindings. - ['exclude', 'bindings/js'], - - # Fortunately, many things can be excluded by using broad patterns. + # Start by excluding everything then include platform files only. + ['exclude', '.*'], + ['include', 'platform/'], # Exclude things that don't apply to the Chromium platform on the basis # of their enclosing directories and tags at the ends of their # filenames. - ['exclude', '(android|cairo|cf|cg|curl|gtk|haiku|linux|mac|opentype|posix|qt|soup|symbian|win|wx)/'], + ['exclude', '(android|cairo|cf|cg|curl|gtk|haiku|linux|mac|opentype|posix|qt|soup|svg|symbian|win|wx)/'], ['exclude', '(?<!Chromium)(Android|Cairo|CF|CG|Curl|Gtk|Linux|Mac|OpenType|POSIX|Posix|Qt|Safari|Soup|Symbian|Win|Wx)\\.(cpp|mm?)$'], - ['include', 'platform/graphics/opentype/OpenTypeSanitizer\\.cpp$'], - # JSC-only. - ['exclude', 'inspector/JavaScript[^/]*\\.cpp$'], - - # ENABLE_OFFLINE_WEB_APPLICATIONS, exclude most of webcore's impl - ['exclude', 'loader/appcache/'], - ['include', 'loader/appcache/ApplicationCacheHost\.h$'], - ['include', 'loader/appcache/DOMApplicationCache\.(h|cpp)$'], - - # Exclude some DB-related files. - ['exclude', 'platform/sql/SQLiteFileSystem.cpp'], - ['exclude', 'storage/DatabaseTracker.cpp'], - ['exclude', 'storage/DatabaseTrackerClient.h'], - ['exclude', 'storage/OriginQuotaManager.cpp'], - ['exclude', 'storage/OriginQuotaManager.h'], - ['exclude', 'storage/OriginUsageRecord.cpp'], - ['exclude', 'storage/OriginUsageRecord.h'], - ['exclude', 'storage/SQLTransactionClient.cpp'], - - # Exclude SVG. - ['exclude', 'svg/'], - ['exclude', 'css/svg/'], - ['exclude', 'rendering/style/SVG'], - ['exclude', 'rendering/RenderSVG'], - ['exclude', 'rendering/SVG'], - ], - 'sources!': [ # A few things can't be excluded by patterns. List them individually. - # Don't build StorageNamespace. We have our own implementation. - '../storage/StorageNamespace.cpp', - - # Don't build StorageEventDispatcher. We have our own implementation. - '../storage/StorageEventDispatcher.cpp', - - # Don't build IDBFactoryBackendInterface. We have our own implementation. - '../storage/IDBFactoryBackendInterface.cpp', - - # Don't build IDBKeyPathBackendImpl. We have our own implementation. - '../storage/IDBKeyPathBackendImpl.cpp', - - # Use history/BackForwardListChromium.cpp instead. - '../history/BackForwardListImpl.cpp', + ['include', 'platform/graphics/opentype/OpenTypeSanitizer\\.cpp$'], - # Use loader/icon/IconDatabaseNone.cpp instead. - '../loader/icon/IconDatabase.cpp', + # Exclude some DB-related files. + ['exclude', 'platform/sql/SQLiteFileSystem\\.cpp$'], # Use platform/KURLGoogle.cpp instead. - '../platform/KURL.cpp', + ['exclude', 'platform/KURL\\.cpp$'], # Use platform/MIMETypeRegistryChromium.cpp instead. - '../platform/MIMETypeRegistry.cpp', + ['exclude', 'platform/MIMETypeRegistry\\.cpp$'], # Theme.cpp is used only if we're using USE_NEW_THEME. We are not for # Windows and Linux. We manually include Theme.cpp for the Mac below. - '../platform/Theme.cpp', - - # Exclude some, but not all, of plugins. - '../plugins/PluginDatabase.cpp', - '../plugins/PluginMainThreadScheduler.cpp', - '../plugins/PluginPackage.cpp', - '../plugins/PluginStream.cpp', - '../plugins/PluginView.cpp', - '../plugins/npapi.cpp', + ['exclude', 'platform/Theme\\.cpp$'], # Use LinkHashChromium.cpp instead - '../platform/LinkHash.cpp', - - # Don't build these. - # FIXME: I don't know exactly why these are excluded. It would - # be nice to provide more explicit comments. Some of these do actually - # compile. - '../dom/StaticStringList.cpp', - '../loader/icon/IconFetcher.cpp', - '../loader/UserStyleSheetLoader.cpp', - - # We use a multi-process version from the WebKit API. - '../dom/default/PlatformMessagePortChannel.cpp', - '../dom/default/PlatformMessagePortChannel.h', - + ['exclude', 'platform/LinkHash\\.cpp$'], ], - 'link_settings': { - 'mac_bundle_resources': [ - '../Resources/aliasCursor.png', - '../Resources/cellCursor.png', - '../Resources/contextMenuCursor.png', - '../Resources/copyCursor.png', - '../Resources/crossHairCursor.png', - '../Resources/eastResizeCursor.png', - '../Resources/eastWestResizeCursor.png', - '../Resources/helpCursor.png', - '../Resources/linkCursor.png', - '../Resources/missingImage.png', - '../Resources/moveCursor.png', - '../Resources/noDropCursor.png', - '../Resources/noneCursor.png', - '../Resources/northEastResizeCursor.png', - '../Resources/northEastSouthWestResizeCursor.png', - '../Resources/northResizeCursor.png', - '../Resources/northSouthResizeCursor.png', - '../Resources/northWestResizeCursor.png', - '../Resources/northWestSouthEastResizeCursor.png', - '../Resources/notAllowedCursor.png', - '../Resources/progressCursor.png', - '../Resources/southEastResizeCursor.png', - '../Resources/southResizeCursor.png', - '../Resources/southWestResizeCursor.png', - '../Resources/verticalTextCursor.png', - '../Resources/waitCursor.png', - '../Resources/westResizeCursor.png', - '../Resources/zoomInCursor.png', - '../Resources/zoomOutCursor.png', - ], - }, 'conditions': [ ['OS=="linux" or OS=="freebsd"', { - 'sources': [ - '../platform/graphics/chromium/VDMXParser.cpp', - '../platform/graphics/chromium/HarfbuzzSkia.cpp', - ], 'sources/': [ # Cherry-pick files excluded by the broader regular expressions above. ['include', 'platform/chromium/KeyCodeConversionGtk\\.cpp$'], @@ -1215,53 +1119,181 @@ # Chromium Mac does not use skia. ['exclude', 'platform/graphics/skia/[^/]*Skia\\.(cpp|h)$'], - ], - 'sources!': [ + # The Mac uses platform/mac/KillRingMac.mm instead of the dummy # implementation. - '../platform/KillRingNone.cpp', + ['exclude', 'platform/KillRingNone\\.cpp$'], # The Mac currently uses FontCustomPlatformData.cpp from # platform/graphics/mac, included by regex above, instead. - '../platform/graphics/skia/FontCustomPlatformData.cpp', + ['exclude', 'platform/graphics/skia/FontCustomPlatformData\\.cpp$'], # The Mac currently uses ScrollbarThemeChromiumMac.mm, which is not # related to ScrollbarThemeChromium.cpp. - '../platform/chromium/ScrollbarThemeChromium.cpp', + ['exclude', 'platform/chromium/ScrollbarThemeChromium\\.cpp$'], + + # The Mac currently uses ImageChromiumMac.mm from + # platform/graphics/chromium, included by regex above, instead. + ['exclude', 'platform/graphics/chromium/ImageChromium\\.cpp$'], # The Mac uses ImageSourceCG.cpp from platform/graphics/cg, included # by regex above, instead. - '../platform/graphics/ImageSource.cpp', - - # RenderThemeChromiumSkia is not used on mac since RenderThemeChromiumMac - # does not reference the Skia code that is used by Windows and Linux. - '../rendering/RenderThemeChromiumSkia.cpp', + ['exclude', 'platform/graphics/ImageSource\\.cpp$'], # Skia image-decoders are also not used on mac. CoreGraphics # is used directly instead. - '../platform/image-decoders/ImageDecoder.h', - '../platform/image-decoders/bmp/BMPImageDecoder.cpp', - '../platform/image-decoders/bmp/BMPImageDecoder.h', - '../platform/image-decoders/bmp/BMPImageReader.cpp', - '../platform/image-decoders/bmp/BMPImageReader.h', - '../platform/image-decoders/gif/GIFImageDecoder.cpp', - '../platform/image-decoders/gif/GIFImageDecoder.h', - '../platform/image-decoders/gif/GIFImageReader.cpp', - '../platform/image-decoders/gif/GIFImageReader.h', - '../platform/image-decoders/ico/ICOImageDecoder.cpp', - '../platform/image-decoders/ico/ICOImageDecoder.h', - '../platform/image-decoders/jpeg/JPEGImageDecoder.cpp', - '../platform/image-decoders/jpeg/JPEGImageDecoder.h', - '../platform/image-decoders/png/PNGImageDecoder.cpp', - '../platform/image-decoders/png/PNGImageDecoder.h', - '../platform/image-decoders/skia/ImageDecoderSkia.cpp', - '../platform/image-decoders/xbm/XBMImageDecoder.cpp', - '../platform/image-decoders/xbm/XBMImageDecoder.h', + ['exclude', 'platform/image-decoders/ImageDecoder\\.h$'], + ['exclude', 'platform/image-decoders/bmp/BMPImageDecoder\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/bmp/BMPImageReader\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/gif/GIFImageDecoder\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/gif/GIFImageReader\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/ico/ICOImageDecoder\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/jpeg/JPEGImageDecoder\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/png/PNGImageDecoder\\.(cpp|h)$'], + ['exclude', 'platform/image-decoders/skia/ImageDecoderSkia\\.cpp$'], + ['exclude', 'platform/image-decoders/xbm/XBMImageDecoder\\.(cpp|h)$'], # Again, Skia is not used on Mac. - '../platform/chromium/DragImageChromiumSkia.cpp', + ['exclude', 'platform/chromium/DragImageChromiumSkia\\.cpp$'], + ], + }], + ['OS!="linux" and OS!="freebsd"', { + 'sources/': [ + ['exclude', '(Gtk|Linux)\\.cpp$'], + ['exclude', 'Harfbuzz[^/]+\\.(cpp|h)$'], + ['exclude', 'VDMX[^/]+\\.(cpp|h)$'], + ], + }], + ['OS!="mac"', { + 'sources/': [['exclude', 'Mac\\.(cpp|mm?)$']] + }], + ['OS!="win"', { + 'sources/': [ + ['exclude', 'Win\\.cpp$'], + ['exclude', '/(Windows|Uniscribe)[^/]*\\.cpp$'] + ], + }], + ['OS=="win"', { + 'sources/': [ + ['exclude', 'Posix\\.cpp$'], ], }], + ], + }, + { + 'target_name': 'webcore_remaining', + 'type': '<(library)', + 'dependencies': [ + 'webcore_prerequisites', + ], + # This is needed for mac because of webkit_system_interface. It'd be nice + # if this hard dependency could be split off the rest. + 'hard_dependency': 1, + 'sources': [ + '<@(webcore_files)', + ], + 'sources/': [ + # Exclude JSC custom bindings. + ['exclude', 'bindings/js'], + + # Fortunately, many things can be excluded by using broad patterns. + + # Exclude things that don't apply to the Chromium platform on the basis + # of their enclosing directories and tags at the ends of their + # filenames. + ['exclude', '(android|cairo|cf|cg|curl|gtk|haiku|linux|mac|opentype|platform|posix|qt|soup|svg|symbian|win|wx)/'], + ['exclude', '(?<!Chromium)(Android|Cairo|CF|CG|Curl|Gtk|Linux|Mac|OpenType|POSIX|Posix|Qt|Safari|Soup|Symbian|Win|Wx)\\.(cpp|mm?)$'], + + # Exclude most of SVG except css and javascript bindings. + ['exclude', 'rendering/style/SVG[^/]+.(cpp|h)$'], + ['exclude', 'rendering/RenderSVG[^/]+.(cpp|h)$'], + ['exclude', 'rendering/SVG[^/]+.(cpp|h)$'], + + # JSC-only. + ['exclude', 'inspector/JavaScript[^/]*\\.cpp$'], + + # ENABLE_OFFLINE_WEB_APPLICATIONS, exclude most of webcore's impl + ['exclude', 'loader/appcache/'], + ['include', 'loader/appcache/ApplicationCacheHost\.h$'], + ['include', 'loader/appcache/DOMApplicationCache\.(h|cpp)$'], + + # Exclude some DB-related files. + ['exclude', 'storage/DatabaseTracker\\.cpp$'], + ['exclude', 'storage/DatabaseTrackerClient\\.h$'], + ['exclude', 'storage/OriginQuotaManager\\.(cpp|h)$'], + ['exclude', 'storage/OriginUsageRecord\\.(cpp|h)$'], + ['exclude', 'storage/SQLTransactionClient\\.cpp$'], + + # Don't build StorageNamespace. We have our own implementation. + ['exclude', 'storage/StorageNamespace\\.cpp$'], + + # Don't build StorageEventDispatcher. We have our own implementation. + ['exclude', 'storage/StorageEventDispatcher\\.cpp$'], + + # Don't build IDBFactoryBackendInterface. We have our own implementation. + ['exclude', 'storage/IDBFactoryBackendInterface\\.cpp$'], + + # Don't build IDBKeyPathBackendImpl. We have our own implementation. + ['exclude', 'storage/IDBKeyPathBackendImpl\\.cpp$'], + + # Use history/BackForwardListChromium.cpp instead. + ['exclude', 'history/BackForwardListImpl\\.cpp$'], + + # Use loader/icon/IconDatabaseNone.cpp instead. + ['exclude', 'loader/icon/IconDatabase\\.cpp$'], + + # Exclude some, but not all, of plugins. + ['exclude', 'plugins/PluginDatabase\\.cpp$'], + ['exclude', 'plugins/PluginMainThreadScheduler\\.cpp$'], + ['exclude', 'plugins/PluginPackage\\.cpp$'], + ['exclude', 'plugins/PluginStream\\.cpp$'], + ['exclude', 'plugins/PluginView\\.cpp$'], + ['exclude', 'plugins/npapi\\.cpp$'], + + # FIXME: I don't know exactly why these are excluded. It would + # be nice to provide more explicit comments. Some of these do actually + # compile. + ['exclude', 'dom/StaticStringList\\.cpp$'], + ['exclude', 'loader/icon/IconFetcher\\.cpp$'], + ['exclude', 'loader/UserStyleSheetLoader\\.cpp$'], + + # We use a multi-process version from the WebKit API. + ['exclude', 'dom/default/PlatformMessagePortChannel\\.(cpp|h)$'], + ], + 'link_settings': { + 'mac_bundle_resources': [ + '../Resources/aliasCursor.png', + '../Resources/cellCursor.png', + '../Resources/contextMenuCursor.png', + '../Resources/copyCursor.png', + '../Resources/crossHairCursor.png', + '../Resources/eastResizeCursor.png', + '../Resources/eastWestResizeCursor.png', + '../Resources/helpCursor.png', + '../Resources/linkCursor.png', + '../Resources/missingImage.png', + '../Resources/moveCursor.png', + '../Resources/noDropCursor.png', + '../Resources/noneCursor.png', + '../Resources/northEastResizeCursor.png', + '../Resources/northEastSouthWestResizeCursor.png', + '../Resources/northResizeCursor.png', + '../Resources/northSouthResizeCursor.png', + '../Resources/northWestResizeCursor.png', + '../Resources/northWestSouthEastResizeCursor.png', + '../Resources/notAllowedCursor.png', + '../Resources/progressCursor.png', + '../Resources/southEastResizeCursor.png', + '../Resources/southResizeCursor.png', + '../Resources/southWestResizeCursor.png', + '../Resources/verticalTextCursor.png', + '../Resources/waitCursor.png', + '../Resources/westResizeCursor.png', + '../Resources/zoomInCursor.png', + '../Resources/zoomOutCursor.png', + ], + }, + 'conditions': [ ['OS=="win"', { 'sources/': [ ['exclude', 'Posix\\.cpp$'], @@ -1272,8 +1304,17 @@ ['include', '/TransparencyWin\\.cpp$'], ], }], + ['OS=="mac"', { + 'sources/': [ + # RenderThemeChromiumSkia is not used on mac since RenderThemeChromiumMac + # does not reference the Skia code that is used by Windows and Linux. + ['exclude', 'rendering/RenderThemeChromiumSkia\\.cpp$'], + ], + }], ['OS!="linux" and OS!="freebsd"', { - 'sources/': [['exclude', '(Gtk|Linux)\\.cpp$']] + 'sources/': [ + ['exclude', '(Gtk|Linux)\\.cpp$'], + ], }], ['OS!="mac"', { 'sources/': [['exclude', 'Mac\\.(cpp|mm?)$']] @@ -1290,6 +1331,7 @@ 'target_name': 'webcore', 'type': 'none', 'dependencies': [ + 'webcore_platform', 'webcore_remaining', # Exported. 'webcore_bindings', |