summaryrefslogtreecommitdiffstats
path: root/webkit/features.gypi
diff options
context:
space:
mode:
authoryaar@chromium.org <yaar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-18 17:14:46 +0000
committeryaar@chromium.org <yaar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-18 17:14:46 +0000
commit11246b5a8d079c1a1983b9c455a4b4d3107d3c80 (patch)
treeb3835e4070f0a30716176aea40099d6dfdf052c3 /webkit/features.gypi
parent6d60e9b60fd6f35aeae795baa197895227dff072 (diff)
downloadchromium_src-11246b5a8d079c1a1983b9c455a4b4d3107d3c80.zip
chromium_src-11246b5a8d079c1a1983b9c455a4b4d3107d3c80.tar.gz
chromium_src-11246b5a8d079c1a1983b9c455a4b4d3107d3c80.tar.bz2
Upstreamings parts of webkit.gyp (step 1)
This is step 1 a multi-step process that is part of the webkit chromium port. This step includes: A. Refactoring the wtf, pcre & webcore targets into separate files javascriptcore.gypi and webcore.gyp, which would eventually move upstream. B. Refactoring the feature_define variables into features.gypi, to allow two sets of feature defines - one for chromium port and one for chromium. C. Refactoring the config target into config.gyp, since currently both javascriptcore and webcore target depend on it. Next steps: 2. Eliminate config dependency. 3. Make features.gypi only override built-in variables that live upstream (so we don't have to maintain 2 parallel feature lists). 4. Really move webcore.gyp & javascriptcore.gyp to webkit.org Review URL: http://codereview.chromium.org/212003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26584 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/features.gypi')
-rw-r--r--webkit/features.gypi88
1 files changed, 88 insertions, 0 deletions
diff --git a/webkit/features.gypi b/webkit/features.gypi
new file mode 100644
index 0000000..9cece5e
--- /dev/null
+++ b/webkit/features.gypi
@@ -0,0 +1,88 @@
+# Copyright (c) 2009 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': {
+ 'feature_defines': [
+ 'ENABLE_CHANNEL_MESSAGING=1',
+ 'ENABLE_DATABASE=1',
+ 'ENABLE_DATAGRID=0',
+ 'ENABLE_OFFLINE_WEB_APPLICATIONS=1',
+ 'ENABLE_DASHBOARD_SUPPORT=0',
+ 'ENABLE_DOM_STORAGE=1',
+ 'ENABLE_JAVASCRIPT_DEBUGGER=0',
+ 'ENABLE_JSC_MULTIPLE_THREADS=0',
+ 'ENABLE_ICONDATABASE=0',
+ 'ENABLE_NOTIFICATIONS=0',
+ 'ENABLE_XSLT=1',
+ 'ENABLE_XPATH=1',
+ 'ENABLE_SHARED_WORKERS=0',
+ 'ENABLE_SVG=1',
+ 'ENABLE_SVG_ANIMATION=1',
+ 'ENABLE_SVG_AS_IMAGE=1',
+ 'ENABLE_SVG_USE=1',
+ 'ENABLE_SVG_FOREIGN_OBJECT=1',
+ 'ENABLE_SVG_FONTS=1',
+ 'ENABLE_VIDEO=1',
+ 'ENABLE_WORKERS=1',
+ ],
+ 'non_feature_defines': [
+ 'BUILDING_CHROMIUM__=1',
+ 'USE_GOOGLE_URL_LIBRARY=1',
+ 'USE_SYSTEM_MALLOC=1',
+ 'WEBCORE_NAVIGATOR_VENDOR="Google Inc."',
+ ],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'non_feature_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"', {
+ 'non_feature_defines': [
+ # Ensure that only Leopard features are used when doing the Mac build.
+ 'BUILDING_ON_LEOPARD',
+ # 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.
+
+ # TODO(mark) 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.
+ # TODO(yaar) move these out of command line defines.
+ 'ScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver',
+ 'WebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver',
+ 'WebFontCache=ChromiumWebCoreObjCWebFontCache',
+
+ # Use USE_NEW_THEME on Mac.
+ 'WTF_USE_NEW_THEME=1',
+ ],
+ }],
+ ['OS=="win"', {
+ 'non_feature_defines': [
+ 'CRASH=__debugbreak',
+ # Match Safari and Mozilla on Windows.
+ 'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
+ ],
+ }],
+ ],
+ }, # variables
+}