diff options
author | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-20 23:13:26 +0000 |
---|---|---|
committer | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-20 23:13:26 +0000 |
commit | 9d384037786ac2912d2ffc82cd1718d8383d8d9f (patch) | |
tree | fc85e1d240d0b31c1dd488fcb1723133290d8291 | |
parent | e66eaf0cc9fe5c6c17ffee01fc2d370270b9e07f (diff) | |
download | chromium_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-- | DEPS | 2 | ||||
-rw-r--r-- | base/base.gyp | 33 | ||||
-rw-r--r-- | build/common.gypi | 70 | ||||
-rw-r--r-- | build/linux/pkg_config_wrapper.py | 30 | ||||
-rw-r--r-- | build/linux/system.gyp | 50 | ||||
-rw-r--r-- | chrome/chrome.gyp | 134 | ||||
-rw-r--r-- | media/media.gyp | 11 | ||||
-rw-r--r-- | net/net.gyp | 8 | ||||
-rw-r--r-- | site_scons/site_tools/chromium_builders.py | 44 | ||||
-rw-r--r-- | skia/skia.gyp | 3 | ||||
-rw-r--r-- | third_party/libxml/libxml.gyp | 18 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_shell.gyp | 11 | ||||
-rw-r--r-- | webkit/webkit.gyp | 20 |
13 files changed, 421 insertions, 13 deletions
@@ -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', ], |