Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1833)

Unified Diff: WebCore/WebCore.gyp/WebCore.gyp

Issue 3223009: Move more common settings to webcore_prerequisites (Closed) Base URL: git://git.webkit.org/WebKit.git
Patch Set: fix mac build Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « WebCore/ChangeLog ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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'],
},
}],
],
« no previous file with comments | « WebCore/ChangeLog ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698