summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-20 23:13:26 +0000
committersgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-20 23:13:26 +0000
commit9d384037786ac2912d2ffc82cd1718d8383d8d9f (patch)
treefc85e1d240d0b31c1dd488fcb1723133290d8291
parente66eaf0cc9fe5c6c17ffee01fc2d370270b9e07f (diff)
downloadchromium_src-9d384037786ac2912d2ffc82cd1718d8383d8d9f.zip
chromium_src-9d384037786ac2912d2ffc82cd1718d8383d8d9f.tar.gz
chromium_src-9d384037786ac2912d2ffc82cd1718d8383d8d9f.tar.bz2
Update the gyp Linux build:
* Add Linux settings to target_defaults in common.gypi so gyp-generated SConscript files no longer depend on build/SConscript.main or the Hammer infrastructure. * Copy the FilterOut() function from Hammer to the chromium_builders.py Tool module. * Add a ChromiumLoadableModule() builder to chromium_builders.py. * Add dependencies on the 'views' library to the chrome link (target 'app'). * Add missing views/*/*_unittest.cc modules to the 'unit_tests' target. Exclude all but the one that builds on Linux from the non-Windows builds. * Crib a list of chrome/views files to exclude from the Linux build from the old SCons configuration. * Add a new build/linux/system.gyp file with new 'settings' targets to encapsulate the pkg-config checks for gtk+-2.0, nss and pangoft2. * Add depenedencies in the other targets on the new gtk, nss and pangoft2 'settings' targets from build/linux/system.gyp. * Add a pkg_config_wrapper.py script that keeps gyp happy by simply exiting 0 if the package isn't found. * DEPS roll for latest gyp changes to support the above. Review URL: http://codereview.chromium.org/42340 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12228 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--DEPS2
-rw-r--r--base/base.gyp33
-rw-r--r--build/common.gypi70
-rw-r--r--build/linux/pkg_config_wrapper.py30
-rw-r--r--build/linux/system.gyp50
-rw-r--r--chrome/chrome.gyp134
-rw-r--r--media/media.gyp11
-rw-r--r--net/net.gyp8
-rw-r--r--site_scons/site_tools/chromium_builders.py44
-rw-r--r--skia/skia.gyp3
-rw-r--r--third_party/libxml/libxml.gyp18
-rw-r--r--webkit/tools/test_shell/test_shell.gyp11
-rw-r--r--webkit/webkit.gyp20
13 files changed, 421 insertions, 13 deletions
diff --git a/DEPS b/DEPS
index 9fca817..71a5b8a2 100644
--- a/DEPS
+++ b/DEPS
@@ -26,7 +26,7 @@ deps = {
# TODO(mark): Remove once this has moved into depot_tools.
"src/tools/gyp":
- "http://gyp.googlecode.com/svn/trunk@375",
+ "http://gyp.googlecode.com/svn/trunk@382",
"src/v8":
"http://v8.googlecode.com/svn/trunk@1564",
diff --git a/base/base.gyp b/base/base.gyp
index 6da4c2e..f309c5d 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -319,7 +319,19 @@
# so use idle_timer_none.cc instead.
'idle_timer.cc',
],
- 'cflags': ['-Wno-write-strings'],
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../build/linux/system.gyp:nss',
+ ],
+ 'cflags': [
+ '-Wno-write-strings',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ # We need rt for clock_gettime().
+ '-lrt',
+ ],
+ },
},
{ # else: OS != "linux"
'sources!': [
@@ -436,6 +448,11 @@
'base',
],
'conditions': [
+ ['OS == "linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
[ 'OS != "win"', { 'sources!': [
'gfx/gdi_util.cc',
'gfx/native_theme.cc',
@@ -542,6 +559,9 @@
# if we want it yet, so leave it 'unported' for now.
'idletimer_unittest.cc',
],
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
}],
['OS != "mac"', {
'sources!': [
@@ -590,6 +610,17 @@
'PERF_TEST',
],
},
+ 'conditions': [
+ ['OS == "linux"', {
+ 'dependencies': [
+ # Needed to handle the #include chain:
+ # base/perf_test_suite.h
+ # base/test_suite.h
+ # gtk/gtk.h
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
+ ],
},
],
'conditions': [
diff --git a/build/common.gypi b/build/common.gypi
index f476546..2ce3140 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -87,6 +87,76 @@
},
},
'conditions': [
+ [ 'OS=="linux"', {
+ 'target_defaults': {
+ 'asflags': [
+ # Needed so that libs with .s files (e.g. libicudata.a)
+ # are compatible with the general 32-bit-ness.
+ '-32',
+ ],
+ # All floating-point computations on x87 happens in 80-bit
+ # precision. Because the C and C++ language standards allow
+ # the compiler to keep the floating-point values in higher
+ # precision than what's specified in the source and doing so
+ # is more efficient than constantly rounding up to 64-bit or
+ # 32-bit precision as specified in the source, the compiler,
+ # especially in the optimized mode, tries very hard to keep
+ # values in x87 floating-point stack (in 80-bit precision)
+ # as long as possible. This has important side effects, that
+ # the real value used in computation may change depending on
+ # how the compiler did the optimization - that is, the value
+ # kept in 80-bit is different than the value rounded down to
+ # 64-bit or 32-bit. There are possible compiler options to make
+ # this behavior consistent (e.g. -ffloat-store would keep all
+ # floating-values in the memory, thus force them to be rounded
+ # to its original precision) but they have significant runtime
+ # performance penalty.
+ #
+ # -mfpmath=sse -msse2 makes the compiler use SSE instructions
+ # which keep floating-point values in SSE registers in its
+ # native precision (32-bit for single precision, and 64-bit for
+ # double precision values). This means the floating-point value
+ # used during computation does not change depending on how the
+ # compiler optimized the code, since the value is always kept
+ # in its specified precision.
+ 'cflags': [
+ '-m32',
+ '-pthread',
+ '-march=pentium4',
+ '-fno-exceptions',
+ '-msse2',
+ '-mfpmath=sse',
+ ],
+ 'linkflags': [
+ '-m32',
+ '-pthread',
+ ],
+ 'scons_settings': {
+ 'LIBPATH': ['$DESTINATION_ROOT/lib'],
+ # Linking of large files uses lots of RAM, so serialize links
+ # using the handy flock command from util-linux.
+ 'FLOCK_LINK': ['flock', '$DESTINATION_ROOT/linker.lock', '$LINK'],
+
+ # We have several cases where archives depend on each other in
+ # a cyclic fashion. Since the GNU linker does only a single
+ # pass over the archives we surround the libraries with
+ # --start-group and --end-group (aka -( and -) ). That causes
+ # ld to loop over the group until no more undefined symbols
+ # are found. In an ideal world we would only make groups from
+ # those libraries which we knew to be in cycles. However,
+ # that's tough with SCons, so we bodge it by making all the
+ # archives a group by redefining the linking command here.
+ #
+ # TODO: investigate whether we still have cycles that
+ # require --{start,end}-group. There has been a lot of
+ # refactoring since this was first coded, which might have
+ # eliminated the circular dependencies.
+ 'LINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$LINKFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
+ 'SHLINKCOM': [['$FLOCK_LINK', '-o', '$TARGET $SHLIN', 'FLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
+ 'IMPLICIT_COMMAND_DEPENDENCIES': 0,
+ },
+ },
+ }],
['OS=="mac"', {
'target_defaults': {
'mac_bundle': 0,
diff --git a/build/linux/pkg_config_wrapper.py b/build/linux/pkg_config_wrapper.py
new file mode 100644
index 0000000..3060340
--- /dev/null
+++ b/build/linux/pkg_config_wrapper.py
@@ -0,0 +1,30 @@
+#!/bin/env python
+# 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.
+
+__doc__ = """
+Wrapper script for executing pkg-config with the arguments supplied
+on the command line and suppressing the exit status and error output
+when the error is simply that the specified package isn't installed.
+"""
+
+import sys
+import subprocess
+
+p = subprocess.Popen(['pkg-config'] + sys.argv[1:],
+ stderr=subprocess.PIPE)
+(stdout, stderr) = p.communicate()
+
+exit_status = p.wait()
+
+if exit_status == 1:
+ import re
+ if re.search('No package.*found', stderr):
+ # Exit status of 1 with a presumably "normal" not found message.
+ # Just swallow the "error."
+ sys.exit(0)
+
+sys.stderr.write(stderr)
+
+sys.exit(exit_status)
diff --git a/build/linux/system.gyp b/build/linux/system.gyp
new file mode 100644
index 0000000..c9452bd
--- /dev/null
+++ b/build/linux/system.gyp
@@ -0,0 +1,50 @@
+# 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.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'gtk',
+ 'type': 'settings',
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '<!@(python ../build/linux/pkg_config_wrapper.py --cflags gtk+-2.0)',
+ ],
+ },
+ 'link_settings': {
+ 'libraries': [
+ '<!@(python ../build/linux/pkg_config_wrapper.py --libs gtk+-2.0)',
+ ],
+ },
+ },
+ {
+ 'target_name': 'nss',
+ 'type': 'settings',
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '<!@(python ../build/linux/pkg_config_wrapper.py --cflags nss)',
+ ],
+ },
+ 'link_settings': {
+ 'libraries': [
+ '<!@(python ../build/linux/pkg_config_wrapper.py --libs nss)',
+ ],
+ },
+ },
+ {
+ 'target_name': 'pangoft2',
+ 'type': 'settings',
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '<!@(python ../build/linux/pkg_config_wrapper.py --cflags pangoft2)',
+ ],
+ },
+ 'link_settings': {
+ 'libraries': [
+ '<!@(python ../build/linux/pkg_config_wrapper.py --libs pangoft2)',
+ ],
+ },
+ },
+ ],
+}
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 17e0d61..31bd64c 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -304,7 +304,11 @@
],
},
'conditions': [
- ['OS!="linux"', {
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }, { # else: 'OS!="linux"'
'sources!': [
'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc',
],
@@ -1207,6 +1211,9 @@
],
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
'sources!': [
'browser/debugger/debugger_shell_stubs.cc',
# Windows-specific files.
@@ -1414,6 +1421,11 @@
],
},
'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
['OS=="win"', {
'include_dirs': [
'third_party/wtl/include',
@@ -1489,6 +1501,11 @@
},
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ 'views',
+ # Needed for chrome_dll_main.cc #include of gtk/gtk.h
+ '../build/linux/system.gyp:gtk',
+ ],
'copies': [
{
'destination': '<(PRODUCT_DIR)',
@@ -1704,6 +1721,11 @@
'test/testing_profile.h',
],
'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
['OS=="win"', {
'include_dirs': [
'third_party/wtl/include',
@@ -1739,6 +1761,11 @@
'test/ui/ui_test_suite.h',
],
'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
['OS!="win"', {
'sources!': [
'test/ui/npapi_test_helper.cc',
@@ -1761,6 +1788,17 @@
'sources': [
'test/unit/run_all_unittests.cc',
],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ # Needed for the following #include chain:
+ # test/unit/run_all_unittests.cc
+ # test/unit/chrome_test_suite.h
+ # gtk/gtk.h
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
+ ],
},
{
'target_name': 'ipc_tests',
@@ -1781,6 +1819,13 @@
'common/ipc_tests.cc',
'common/ipc_tests.h',
],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
+ ],
},
{
'target_name': 'ui_tests',
@@ -1857,6 +1902,10 @@
],
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ 'views',
+ '../build/linux/system.gyp:gtk',
+ ],
'sources!': [
# TODO(port)
'app/chrome_main_uitest.cc',
@@ -1881,9 +1930,6 @@
'test/ui/layout_plugin_uitest.cpp',
'test/ui/omnibox_uitest.cc',
],
- 'dependencies': [
- 'views',
- ],
}],
['OS=="mac"', {
# mac tests load the resources from the built app beside the test
@@ -2089,11 +2135,19 @@
'test/test_tab_contents.h',
'test/v8_unit_test.cc',
'test/v8_unit_test.h',
+ 'views/controls/label_unittest.cc',
+ 'views/controls/table/table_view_unittest.cc',
+ 'views/controls/tree/tree_node_iterator_unittest.cc',
+ 'views/focus/focus_manager_unittest.cc',
+ 'views/grid_layout_unittest.cc',
+ 'views/view_unittest.cc',
],
'conditions': [
['OS=="linux"', {
'dependencies': [
'views',
+ '../build/linux/system.gyp:gtk',
+ '../build/linux/system.gyp:nss',
],
}],
['OS=="win"', {
@@ -2112,8 +2166,7 @@
'dependencies': [
'views',
],
- },],
- ['OS!="win"', {
+ }, { # else: OS != "win"
'sources!': [
'browser/back_forward_menu_model_unittest.cc',
'browser/bookmarks/bookmark_drag_data_unittest.cc',
@@ -2166,6 +2219,11 @@
'test/test_notification_tracker.h',
'test/ui_test_utils.cc',
'test/ui_test_utils.h',
+ 'views/controls/label_unittest.cc',
+ 'views/controls/table/table_view_unittest.cc',
+ 'views/focus/focus_manager_unittest.cc',
+ 'views/grid_layout_unittest.cc',
+ 'views/view_unittest.cc',
],
}],
],
@@ -2190,6 +2248,11 @@
'tools/build/win/precompiled.h',
],
'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
['OS!="win"', {
'sources!': [
'test/startup/feature_startup_test.cc',
@@ -2243,6 +2306,11 @@
],
'conditions': [
['OS!="win"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
+ ['OS!="win"', {
'sources!': [
'tools/build/win/precompiled.cc',
'tools/build/win/precompiled.h',
@@ -2269,6 +2337,9 @@
],
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
'sources!': [
# TODO(port):
'browser/visitedlink_perftest.cc',
@@ -2439,9 +2510,52 @@
'views/window/window_win.cc',
'views/window/window_win.h',
],
- # These are layered in conditionals in the event other platforms
- # end up using this module as well.
'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ 'sources!': [
+ 'views/accelerator.cc',
+ 'views/accessibility/accessible_wrapper.cc',
+ 'views/accessibility/view_accessibility.cc',
+ 'views/controls/scrollbar/bitmap_scroll_bar.cc',
+ 'views/controls/button/image_button.cc',
+ 'views/controls/button/button_dropdown.cc',
+ 'views/controls/button/checkbox.cc',
+ 'views/controls/menu/chrome_menu.cc',
+ 'views/controls/combo_box.cc',
+ 'views/focus/focus_manager.cc',
+ 'views/controls/table/group_table_view.cc',
+ 'views/controls/hwnd_view.cc',
+ 'views/controls/link.cc',
+ 'views/controls/menu/menu.cc',
+ 'views/controls/button/menu_button.cc',
+ 'views/controls/message_box_view.cc',
+ 'views/controls/button/native_button.cc',
+ 'views/controls/native_control.cc',
+ 'views/controls/scrollbar/native_scroll_bar.cc',
+ 'views/controls/button/radio_button.cc',
+ 'views/resize_corner.cc',
+ 'views/controls/separator.cc',
+ 'views/controls/single_split_view.cc',
+ 'views/controls/tabbed_pane.cc',
+ 'views/controls/table/table_view.cc',
+ 'views/controls/text_field.cc',
+ 'views/controls/tree/tree_view.cc',
+ 'views/widget/accelerator_handler.cc',
+ 'views/widget/aero_tooltip_manager.cc',
+ 'views/widget/root_view_drop_target.cc',
+ 'views/widget/tooltip_manager.cc',
+ 'views/window/client_view.cc',
+ 'views/window/custom_frame_view.cc',
+ 'views/window/dialog_delegate.cc',
+ 'views/window/dialog_client_view.cc',
+ 'views/window/native_frame_view.cc',
+ 'views/window/non_client_view.cc',
+ 'views/window/window_delegate.cc',
+ ],
+ }],
['OS=="win"', {
'defines': [
'__STD_C',
@@ -2499,6 +2613,10 @@
}],
],
},
+ ],
+ }], # OS=="win" or OS=="linux"
+ ['OS=="win"',
+ { 'targets': [
{
'target_name': 'plugin',
'type': 'static_library',
diff --git a/media/media.gyp b/media/media.gyp
index 2151cde..84451d3 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -98,6 +98,17 @@
'filters/video_decoder_unittest.cc',
'filters/video_renderer_unittest.cc',
],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ # Needed for the following #include chain:
+ # base/run_all_unittests.cc
+ # ../base/test_suite.h
+ # gtk/gtk.h
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
+ ],
},
],
}
diff --git a/net/net.gyp b/net/net.gyp
index 1b822d3..80631c3 100644
--- a/net/net.gyp
+++ b/net/net.gyp
@@ -302,6 +302,11 @@
'../base/base.gyp:base',
],
'conditions': [
+ [ 'OS == "linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:nss',
+ ],
+ }],
[ 'OS == "win"', {
'sources/': [ ['exclude', '_(mac|linux|posix)\\.cc$'] ],
'sources!': [
@@ -435,6 +440,9 @@
},
],
[ 'OS == "linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
'sources!': [
'base/sdch_filter_unittest.cc',
'base/ssl_config_service_unittest.cc',
diff --git a/site_scons/site_tools/chromium_builders.py b/site_scons/site_tools/chromium_builders.py
index c1a6b077..334ac83 100644
--- a/site_scons/site_tools/chromium_builders.py
+++ b/site_scons/site_tools/chromium_builders.py
@@ -52,6 +52,38 @@ class ChromeFileList(MSVS.FileList):
else:
top[i] = new
+
+def FilterOut(self, **kw):
+ """Removes values from existing construction variables in an Environment.
+
+ The values to remove should be a list. For example:
+
+ self.FilterOut(CPPDEFINES=['REMOVE_ME', 'ME_TOO'])
+
+ Args:
+ self: Environment to alter.
+ kw: (Any other named arguments are values to remove).
+ """
+
+ kw = SCons.Environment.copy_non_reserved_keywords(kw)
+ for key, val in kw.items():
+ envval = self.get(key, None)
+ if envval is None:
+ # No existing variable in the environment, so nothing to delete.
+ continue
+
+ for vremove in val:
+ # Use while not if, so we can handle duplicates.
+ while vremove in envval:
+ envval.remove(vremove)
+
+ self[key] = envval
+
+ # TODO(sgk): SCons.Environment.Append() has much more logic to deal
+ # with various types of values. We should handle all those cases in here
+ # too. (If variable is a dict, etc.)
+
+
import __builtin__
__builtin__.ChromeFileList = ChromeFileList
@@ -119,6 +151,15 @@ def ChromeLibrary(env, target, source, *args, **kw):
result = env.ComponentLibrary(target, source, *args, **kw)
return result
+def ChromeLoadableModule(env, target, source, *args, **kw):
+ source = compilable_files(env, source)
+ if env.get('_GYP'):
+ result = env.LoadableModule(target, source, *args, **kw)
+ else:
+ kw['COMPONENT_STATIC'] = True
+ result = env.LoadableModule(target, source, *args, **kw)
+ return result
+
def ChromeStaticLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source)
if env.get('_GYP'):
@@ -189,6 +230,7 @@ def generate(env):
env.AddMethod(ChromeProgram)
env.AddMethod(ChromeTestProgram)
env.AddMethod(ChromeLibrary)
+ env.AddMethod(ChromeLoadableModule)
env.AddMethod(ChromeStaticLibrary)
env.AddMethod(ChromeSharedLibrary)
env.AddMethod(ChromeObject)
@@ -196,6 +238,8 @@ def generate(env):
env.AddMethod(ChromeMSVSProject)
env.AddMethod(ChromeMSVSSolution)
+ env.AddMethod(FilterOut)
+
# Add the grit tool to the base environment because we use this a lot.
sys.path.append(env.Dir('$CHROME_SRC_DIR/tools/grit').abspath)
env.Tool('scons', toolpath=[env.Dir('$CHROME_SRC_DIR/tools/grit/grit')])
diff --git a/skia/skia.gyp b/skia/skia.gyp
index e3ceeae..ae3ccd7 100644
--- a/skia/skia.gyp
+++ b/skia/skia.gyp
@@ -687,6 +687,9 @@
],
}],
[ 'OS == "linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
'cflags': [
'-Wno-unused',
'-Wno-unused-function',
diff --git a/third_party/libxml/libxml.gyp b/third_party/libxml/libxml.gyp
index b9cc411..6c1bff3 100644
--- a/third_party/libxml/libxml.gyp
+++ b/third_party/libxml/libxml.gyp
@@ -173,6 +173,15 @@
'dependencies': [
'libxml',
],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'link_settings': {
+ 'libraries': [
+ '-lm',
+ ],
+ },
+ }],
+ ],
},
{
'target_name': 'xmllint',
@@ -186,6 +195,15 @@
'dependencies': [
'libxml',
],
+ 'conditions': [
+ ['OS=="linux"', {
+ 'link_settings': {
+ 'libraries': [
+ '-lm',
+ ],
+ },
+ }],
+ ],
},
],
}
diff --git a/webkit/tools/test_shell/test_shell.gyp b/webkit/tools/test_shell/test_shell.gyp
index dd97761..e5b66d5 100644
--- a/webkit/tools/test_shell/test_shell.gyp
+++ b/webkit/tools/test_shell/test_shell.gyp
@@ -86,6 +86,7 @@
'test_shell_resources',
'npapi_layout_test_plugin',
'npapi_test_plugin',
+ '../../../build/linux/system.gyp:gtk',
],
# for: test_shell_gtk.cc
'cflags': ['-Wno-multichar'],
@@ -160,6 +161,7 @@
'conditions': [
['OS=="linux"', {
'dependencies': [
+ '../../../build/linux/system.gyp:gtk',
'../../../net/net.gyp:net_resources',
'../../webkit.gyp:glue', # for webkit_{resources,strings_en-US}.pak
'test_shell_resources',
@@ -261,6 +263,9 @@
],
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ '../../../build/linux/system.gyp:gtk',
+ ],
'sources!': [
# TODO(port)
'../../../skia/ext/platform_canvas_unittest.cc',
@@ -348,6 +353,9 @@
'../../glue/plugins/test/plugin_test.cc',
'../../glue/plugins/test/plugin_window_size_test.cc',
],
+ 'include_dirs': [
+ '../../..',
+ ],
'conditions': [
['OS=="linux"', {
'sources!': [
@@ -374,6 +382,9 @@
'../npapi_layout_test_plugin/PluginObject.cpp',
'../npapi_layout_test_plugin/TestObject.cpp',
],
+ 'include_dirs': [
+ '../../..',
+ ],
'dependencies': [
'../../../third_party/npapi/npapi.gyp:npapi',
'../../webkit.gyp:wtf',
diff --git a/webkit/webkit.gyp b/webkit/webkit.gyp
index 0415266..c91e6fd 100644
--- a/webkit/webkit.gyp
+++ b/webkit/webkit.gyp
@@ -3942,6 +3942,9 @@
},
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
'sources!': [
# Not yet ported to Linux.
'../third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp',
@@ -3955,9 +3958,11 @@
['include', 'third_party/WebKit/WebCore/platform/graphics/chromium/GlyphPageTreeNodeLinux\\.cpp$'],
['include', 'third_party/WebKit/WebCore/platform/graphics/chromium/SimpleFontDataLinux\\.cpp$'],
],
- # for:
- # .../WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp
- 'cflags': ['-Wno-multichar'],
+ 'cflags': [
+ # -Wno-multichar for:
+ # .../WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp
+ '-Wno-multichar',
+ ],
# TODO(sgk): unnecessary once common.gypi gets Linux settings
# necessary to avoid build failure due to warnings generated by:
# ../third_party/WebKit/WebCore/dom/Document.cpp
@@ -4119,6 +4124,11 @@
'../third_party/WebKit/WebKit/chromium/src/WebURL.cpp',
],
'conditions': [
+ ['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+ }],
['OS=="mac"', {
'sources!': [
'../third_party/WebKit/WebKit/chromium/src/WebImageSkia.cpp',
@@ -4411,6 +4421,10 @@
],
'conditions': [
['OS=="linux"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../build/linux/system.gyp:pangoft2',
+ ],
'sources!': [
'glue/plugins/plugin_stubs.cc',
],