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'], |
}, |
}], |
], |