| Index: WebCore/WebCore.gyp/WebCore.gyp
|
| diff --git a/WebCore/WebCore.gyp/WebCore.gyp b/WebCore/WebCore.gyp/WebCore.gyp
|
| index 25ad450e5610066720dc5b12d5f1c067c4da275b..56045db5b981b1296b82c8a12ec7a2d92559dbce 100644
|
| --- a/WebCore/WebCore.gyp/WebCore.gyp
|
| +++ b/WebCore/WebCore.gyp/WebCore.gyp
|
| @@ -809,9 +809,10 @@
|
| ],
|
| },
|
| {
|
| - 'target_name': 'webcore',
|
| - 'type': '<(library)',
|
| - 'msvs_guid': '1C16337B-ACF3-4D03-AA90-851C5B5EADA6',
|
| + # We'll soon split libwebcore in multiple smaller libraries.
|
| + # webcore_prerequisites will be the 'base' target of every sub-target.
|
| + 'target_name': 'webcore_prerequisites',
|
| + 'type': 'none',
|
| 'dependencies': [
|
| 'webcore_bindings',
|
| '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
|
| @@ -827,15 +828,128 @@
|
| '<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
|
| '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
|
| ],
|
| - 'defines': [
|
| - 'WEBCORE_NAVIGATOR_VENDOR="Google Inc."',
|
| + 'export_dependent_settings': [
|
| + 'webcore_bindings',
|
| + '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
|
| + '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
| + '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
|
| + '<(chromium_src_dir)/skia/skia.gyp:skia',
|
| + '<(chromium_src_dir)/third_party/libjpeg/libjpeg.gyp:libjpeg',
|
| + '<(chromium_src_dir)/third_party/libpng/libpng.gyp:libpng',
|
| + '<(chromium_src_dir)/third_party/libxml/libxml.gyp:libxml',
|
| + '<(chromium_src_dir)/third_party/libxslt/libxslt.gyp:libxslt',
|
| + '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
|
| + '<(chromium_src_dir)/third_party/ots/ots.gyp:ots',
|
| + '<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
|
| + '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
|
| ],
|
| - 'include_dirs': [
|
| - '<(INTERMEDIATE_DIR)',
|
| - '<@(webcore_include_dirs)',
|
| - '<(chromium_src_dir)/gpu',
|
| - '<(chromium_src_dir)/third_party/angle/include/GLSLANG',
|
| + # 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,
|
| + 'direct_dependent_settings': {
|
| + 'defines': [
|
| + 'WEBCORE_NAVIGATOR_VENDOR="Google Inc."',
|
| + ],
|
| + 'include_dirs': [
|
| + '<(INTERMEDIATE_DIR)',
|
| + '<@(webcore_include_dirs)',
|
| + '<(chromium_src_dir)/gpu',
|
| + '<(chromium_src_dir)/third_party/angle/include/GLSLANG',
|
| + ],
|
| + 'mac_framework_dirs': [
|
| + '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
|
| + ],
|
| + 'msvs_disabled_warnings': [
|
| + 4138, 4244, 4291, 4305, 4344, 4355, 4521, 4099,
|
| + ],
|
| + 'scons_line_length' : 1,
|
| + 'xcode_settings': {
|
| + # Some Mac-specific parts of WebKit won't compile without having this
|
| + # prefix header injected.
|
| + # FIXME: make this a first-class setting.
|
| + 'GCC_PREFIX_HEADER': '../WebCorePrefix.h',
|
| + },
|
| + },
|
| + 'conditions': [
|
| + ['javascript_engine=="v8"', {
|
| + 'conditions': [
|
| + ['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
|
| + 'defines': [
|
| + 'USING_V8_SHARED',
|
| + ],
|
| + }],
|
| + ],
|
| + }],
|
| + ['OS=="linux" or OS=="freebsd"', {
|
| + 'cflags': [
|
| + # WebCore does not work with strict aliasing enabled.
|
| + # https://bugs.webkit.org/show_bug.cgi?id=25864
|
| + '-fno-strict-aliasing',
|
| + ],
|
| + }],
|
| + ['OS=="linux"', {
|
| + 'defines': [
|
| + # Mozilla on Linux effectively uses uname -sm, but when running
|
| + # 32-bit x86 code on an x86_64 processor, it uses
|
| + # "Linux i686 (x86_64)". Matching that would require making a
|
| + # run-time determination.
|
| + 'WEBCORE_NAVIGATOR_PLATFORM="Linux i686"',
|
| + ],
|
| + }],
|
| + ['OS=="mac"', {
|
| + 'defines': [
|
| + # Match Safari and Mozilla on Mac x86.
|
| + 'WEBCORE_NAVIGATOR_PLATFORM="MacIntel"',
|
| +
|
| + # Chromium's version of WebCore includes the following Objective-C
|
| + # classes. The system-provided WebCore framework may also provide
|
| + # these classes. Because of the nature of Objective-C binding
|
| + # (dynamically at runtime), it's possible for the Chromium-provided
|
| + # versions to interfere with the system-provided versions. This may
|
| + # happen when a system framework attempts to use WebCore.framework,
|
| + # such as when converting an HTML-flavored string to an
|
| + # NSAttributedString. The solution is to force Objective-C class
|
| + # names that would conflict to use alternate names.
|
| +
|
| + # FIXME: This list will hopefully shrink but may also grow.
|
| + # Periodically run:
|
| + # nm libwebcore.a | grep -E '[atsATS] ([+-]\[|\.objc_class_name)'
|
| + # and make sure that everything listed there has the alternate
|
| + # ChromiumWebCoreObjC name, and that nothing extraneous is listed
|
| + # here. If all Objective-C can be eliminated from Chromium's WebCore
|
| + # library, these defines should be removed entirely.
|
| + 'ScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver',
|
| + 'WebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver',
|
| + 'WebFontCache=ChromiumWebCoreObjCWebFontCache',
|
| + ],
|
| + 'include_dirs': [
|
| + '../../WebKitLibraries',
|
| + ],
|
| + }],
|
| + ['OS=="win"', {
|
| + 'defines': [
|
| + # Match Safari and Mozilla on Windows.
|
| + 'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
|
| + '__PRETTY_FUNCTION__=__FUNCTION__',
|
| + ],
|
| + # This is needed because Event.h in this directory is blocked
|
| + # by a system header on windows.
|
| + 'include_dirs++': ['../dom'],
|
| + }],
|
| + ],
|
| + },
|
| + {
|
| + # TODO: To be the remaining, there must be other sibbling projects.
|
| + # Will be done in a separate change to keep the diff simpler.
|
| + 'target_name': 'webcore_remaining',
|
| + 'type': '<(library)',
|
| + 'msvs_guid': '1C16337B-ACF3-4D03-AA90-851C5B5EADA6',
|
| + '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)',
|
|
|
| @@ -928,21 +1042,6 @@
|
| '../dom/default/PlatformMessagePortChannel.h',
|
|
|
| ],
|
| - 'direct_dependent_settings': {
|
| - 'include_dirs': [
|
| - '<@(webcore_include_dirs)',
|
| - ],
|
| - 'mac_framework_dirs': [
|
| - '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
|
| - ],
|
| - },
|
| - 'export_dependent_settings': [
|
| - 'webcore_bindings',
|
| - '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
| - '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
|
| - '<(chromium_src_dir)/skia/skia.gyp:skia',
|
| - '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
|
| - ],
|
| 'link_settings': {
|
| 'mac_bundle_resources': [
|
| '../Resources/aliasCursor.png',
|
| @@ -976,35 +1075,11 @@
|
| '../Resources/zoomOutCursor.png',
|
| ],
|
| },
|
| - 'hard_dependency': 1,
|
| - 'mac_framework_dirs': [
|
| - '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
|
| - ],
|
| - 'msvs_disabled_warnings': [
|
| - 4138, 4244, 4291, 4305, 4344, 4355, 4521, 4099,
|
| - ],
|
| - 'scons_line_length' : 1,
|
| - 'xcode_settings': {
|
| - # Some Mac-specific parts of WebKit won't compile without having this
|
| - # prefix header injected.
|
| - # FIXME: make this a first-class setting.
|
| - 'GCC_PREFIX_HEADER': '../WebCorePrefix.h',
|
| - },
|
| 'conditions': [
|
| ['javascript_engine=="v8"', {
|
| 'dependencies': [
|
| '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
|
| ],
|
| - 'export_dependent_settings': [
|
| - '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
|
| - ],
|
| - 'conditions': [
|
| - ['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
|
| - 'defines': [
|
| - 'USING_V8_SHARED',
|
| - ],
|
| - }],
|
| - ],
|
| }],
|
| ['enable_svg!=0', {
|
| 'sources/': [
|
| @@ -1043,50 +1118,15 @@
|
| ['include', 'platform/graphics/chromium/GlyphPageTreeNodeLinux\\.cpp$'],
|
| ['include', 'platform/graphics/chromium/SimpleFontDataLinux\\.cpp$'],
|
| ],
|
| - 'cflags': [
|
| - # WebCore does not work with strict aliasing enabled.
|
| - # https://bugs.webkit.org/show_bug.cgi?id=25864
|
| - '-fno-strict-aliasing',
|
| - ],
|
| - }],
|
| - ['OS=="linux"', {
|
| - 'defines': [
|
| - # Mozilla on Linux effectively uses uname -sm, but when running
|
| - # 32-bit x86 code on an x86_64 processor, it uses
|
| - # "Linux i686 (x86_64)". Matching that would require making a
|
| - # run-time determination.
|
| - 'WEBCORE_NAVIGATOR_PLATFORM="Linux i686"',
|
| - ],
|
| }],
|
| ['OS=="mac"', {
|
| + # Necessary for Mac .mm stuff.
|
| + 'include_dirs': [
|
| + '../../WebKitLibraries',
|
| + ],
|
| 'dependencies': [
|
| 'webkit_system_interface',
|
| ],
|
| - 'defines': [
|
| - # Match Safari and Mozilla on Mac x86.
|
| - 'WEBCORE_NAVIGATOR_PLATFORM="MacIntel"',
|
| -
|
| - # Chromium's version of WebCore includes the following Objective-C
|
| - # classes. The system-provided WebCore framework may also provide
|
| - # these classes. Because of the nature of Objective-C binding
|
| - # (dynamically at runtime), it's possible for the Chromium-provided
|
| - # versions to interfere with the system-provided versions. This may
|
| - # happen when a system framework attempts to use WebCore.framework,
|
| - # such as when converting an HTML-flavored string to an
|
| - # NSAttributedString. The solution is to force Objective-C class
|
| - # names that would conflict to use alternate names.
|
| -
|
| - # FIXME: This list will hopefully shrink but may also grow.
|
| - # Periodically run:
|
| - # nm libwebcore.a | grep -E '[atsATS] ([+-]\[|\.objc_class_name)'
|
| - # and make sure that everything listed there has the alternate
|
| - # ChromiumWebCoreObjC name, and that nothing extraneous is listed
|
| - # here. If all Objective-C can be eliminated from Chromium's WebCore
|
| - # library, these defines should be removed entirely.
|
| - 'ScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver',
|
| - 'WebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver',
|
| - 'WebFontCache=ChromiumWebCoreObjCWebFontCache',
|
| - ],
|
| 'actions': [
|
| {
|
| # Allow framework-style #include of
|
| @@ -1101,9 +1141,6 @@
|
| 'action': ['cp', '<@(_inputs)', '<@(_outputs)'],
|
| },
|
| ],
|
| - 'include_dirs': [
|
| - '../../WebKitLibraries',
|
| - ],
|
| 'sources/': [
|
| # Additional files from the WebCore Mac build that are presently
|
| # used in the WebCore Chromium Mac build too.
|
| @@ -1208,12 +1245,6 @@
|
| # Again, Skia is not used on Mac.
|
| '../platform/chromium/DragImageChromiumSkia.cpp',
|
| ],
|
| - 'direct_dependent_settings': {
|
| - 'include_dirs': [
|
| - '../../WebKitLibraries',
|
| - '../../WebKit/mac/WebCoreSupport',
|
| - ],
|
| - },
|
| }],
|
| ['OS=="win"', {
|
| 'dependencies': [
|
| @@ -1225,17 +1256,6 @@
|
| ['include', '/SkiaFontWin\\.cpp$'],
|
| ['include', '/TransparencyWin\\.cpp$'],
|
| ],
|
| - 'defines': [
|
| - # Match Safari and Mozilla on Windows.
|
| - 'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
|
| - '__PRETTY_FUNCTION__=__FUNCTION__',
|
| - ],
|
| - # This is needed because Event.h in this directory is blocked
|
| - # by a system header on windows.
|
| - 'include_dirs++': ['../dom'],
|
| - 'direct_dependent_settings': {
|
| - 'include_dirs+++': ['../dom'],
|
| - },
|
| }],
|
| ['OS!="linux" and OS!="freebsd"', {
|
| 'sources/': [['exclude', '(Gtk|Linux)\\.cpp$']]
|
| @@ -1249,11 +1269,55 @@
|
| ['exclude', '/(Windows|Uniscribe)[^/]*\\.cpp$']
|
| ],
|
| }],
|
| - ['OS!="win" and remove_webcore_debug_symbols==1', {
|
| - 'configurations': {
|
| - 'Debug': {
|
| - 'cflags!': ['-g'],
|
| - }
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'webcore',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'webcore_remaining',
|
| + # Exported.
|
| + 'webcore_bindings',
|
| + '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
| + '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
|
| + '<(chromium_src_dir)/skia/skia.gyp:skia',
|
| + '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
|
| + ],
|
| + 'export_dependent_settings': [
|
| + 'webcore_bindings',
|
| + '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
| + '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
|
| + '<(chromium_src_dir)/skia/skia.gyp:skia',
|
| + '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
|
| + ],
|
| + 'direct_dependent_settings': {
|
| + 'include_dirs': [
|
| + '<@(webcore_include_dirs)',
|
| + ],
|
| + 'mac_framework_dirs': [
|
| + '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
|
| + ],
|
| + },
|
| + 'conditions': [
|
| + ['javascript_engine=="v8"', {
|
| + 'dependencies': [
|
| + '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
|
| + ],
|
| + 'export_dependent_settings': [
|
| + '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
|
| + ],
|
| + }],
|
| + ['OS=="mac"', {
|
| + 'direct_dependent_settings': {
|
| + 'include_dirs': [
|
| + '../../WebKitLibraries',
|
| + '../../WebKit/mac/WebCoreSupport',
|
| + ],
|
| + },
|
| + }],
|
| + ['OS=="win"', {
|
| + 'direct_dependent_settings': {
|
| + 'include_dirs+++': ['../dom'],
|
| },
|
| }],
|
| ],
|
|
|