From 9be81c588afc913f5214d78608fecafeef8bc160 Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Mon, 24 Mar 2014 18:49:30 +0100 Subject: Get rid of GTK dependencies Build with aura by default and remove GTK related code. This patch introduces a mechanism for setting gyp build configuration variables using a GYP_CONFIG and adds a desktop_linux.pri configuration for this target. Change-Id: I6b044ba52ebb20c187572669af94a6fc280b0412 Reviewed-by: Jocelyn Turcotte --- src/core/chromium_overrides.cpp | 84 +++++++++++++++++++++++++++++++- src/core/clipboard_qt.cpp | 14 ++---- src/core/config/desktop_linux.pri | 16 ++++++ src/core/gyp_run.pro | 14 +++++- src/core/qtwebengine.gypi | 8 --- src/core/qtwebengine_extras.gypi | 12 +++++ src/core/render_widget_host_view_qt.cpp | 14 ------ src/core/render_widget_host_view_qt.h | 4 -- src/core/resources/repack_resources.gypi | 7 ++- 9 files changed, 130 insertions(+), 43 deletions(-) create mode 100644 src/core/config/desktop_linux.pri (limited to 'src/core') diff --git a/src/core/chromium_overrides.cpp b/src/core/chromium_overrides.cpp index b0f8702d0..2b1b1632e 100644 --- a/src/core/chromium_overrides.cpp +++ b/src/core/chromium_overrides.cpp @@ -41,8 +41,13 @@ #include "chromium_overrides.h" +#include "qtwebenginecoreglobal.h" +#include "base/values.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" +#include "content/browser/renderer_host/pepper/pepper_truetype_font_list.h" +#include "content/common/font_list.h" + #include #include #include @@ -53,10 +58,17 @@ #endif #if defined(USE_X11) -#include "base/message_loop/message_pump_gtk.h" +#include "base/message_loop/message_pump_x11.h" #include #endif +#if defined(USE_AURA) && !defined(USE_OZONE) +#include "ui/base/dragdrop/os_exchange_data.h" +#include "ui/base/dragdrop/os_exchange_data_provider_aura.h" +#include "ui/gfx/render_text.h" +#include "ui/gfx/platform_font.h" +#endif + void GetScreenInfoFromNativeWindow(QWindow* window, blink::WebScreenInfo* results) { QScreen* screen = window->screen(); @@ -77,7 +89,7 @@ void GetScreenInfoFromNativeWindow(QWindow* window, blink::WebScreenInfo* result namespace base { #if defined(USE_X11) -Display* MessagePumpGtk::GetDefaultXDisplay() { +Display* MessagePumpForUI::GetDefaultXDisplay() { static void *display = qApp->platformNativeInterface()->nativeResourceForScreen(QByteArrayLiteral("display"), qApp->primaryScreen()); if (!display) { // XLib isn't available or has not been initialized, which is a decision we wish to @@ -118,6 +130,74 @@ void RenderWidgetHostViewPort::GetDefaultScreenInfo(blink::WebScreenInfo* result } +#if defined(USE_AURA) && !defined(USE_OZONE) +namespace content { + +// content/common/font_list.h +scoped_ptr GetFontList_SlowBlocking() +{ + QT_NOT_USED + return scoped_ptr(new base::ListValue); +} + +#if defined(ENABLE_PLUGINS) +// content/browser/renderer_host/pepper/pepper_truetype_font_list.h +void GetFontFamilies_SlowBlocking(std::vector *) +{ + QT_NOT_USED +} + +void GetFontsInFamily_SlowBlocking(const std::string &, std::vector *) +{ + QT_NOT_USED +} +#endif //defined(ENABLE_PLUGINS) + +} // namespace content + +namespace ui { + +OSExchangeData::Provider* OSExchangeData::CreateProvider() +{ + QT_NOT_USED + return 0; +} + +} + +namespace gfx { + +// Stubs for these unused functions that are stripped in case +// of a release aura build but a debug build needs the symbols. + +RenderText* RenderText::CreateInstance() +{ + QT_NOT_USED; + return 0; +} + +PlatformFont* PlatformFont::CreateDefault() +{ + QT_NOT_USED; + return 0; +} + +PlatformFont* PlatformFont::CreateFromNativeFont(NativeFont) +{ + QT_NOT_USED; + return 0; +} + +PlatformFont* PlatformFont::CreateFromNameAndSize(const std::string&, int) +{ + QT_NOT_USED; + return 0; +} + +} // namespace gfx + +#endif // defined(USE_AURA) && !defined(USE_OZONE) + #if defined(OS_ANDROID) namespace ui { bool GrabViewSnapshot(gfx::NativeView /*view*/, std::vector* /*png_representation*/, const gfx::Rect& /*snapshot_bounds*/) diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp index 701ccacb1..ef2e28603 100644 --- a/src/core/clipboard_qt.cpp +++ b/src/core/clipboard_qt.cpp @@ -356,18 +356,10 @@ const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() return type; } -#if defined(TOOLKIT_GTK) -void Clipboard::SetGtkClipboard(ClipboardType type) +#if defined(OS_WIN) || defined(USE_AURA) +bool Clipboard::FormatType::operator<(const FormatType& other) const { -} - -void Clipboard::InsertMapping(const char* key, char* data, size_t data_len) -{ -} - -GtkClipboard* Clipboard::LookupBackingClipboard(ClipboardType type) const -{ - return NULL; + return data_.compare(other.data_) < 0; } #endif diff --git a/src/core/config/desktop_linux.pri b/src/core/config/desktop_linux.pri new file mode 100644 index 000000000..47fb4de77 --- /dev/null +++ b/src/core/config/desktop_linux.pri @@ -0,0 +1,16 @@ +GYP_CONFIG += \ + desktop_linux=1 \ + toolkit_uses_gtk=0 \ + use_alsa=0 \ + use_aura=1 \ + use_ash=0 \ + use_cairo=0 \ + use_clipboard_aurax11=0 \ + use_cups=0 \ + use_gconf=0 \ + use_gio=0 \ + use_gnome_keyring=0 \ + use_kerberos=0 \ + use_pango=0 \ + use_pulseaudio=0 \ + diff --git a/src/core/gyp_run.pro b/src/core/gyp_run.pro index 82f18331b..0962c7cfe 100644 --- a/src/core/gyp_run.pro +++ b/src/core/gyp_run.pro @@ -4,6 +4,18 @@ TEMPLATE = aux +cross_compile { + GYP_ARGS = "-D qt_cross_compile=1" + posix: GYP_ARGS += "-D os_posix=1" +} else { + # !cross_compile + GYP_ARGS = "-D qt_cross_compile=0" + linux: include(config/desktop_linux.pri) +} + +# Append additional platform options defined in GYP_CONFIG +for (config, GYP_CONFIG): GYP_ARGS += "-D $$config" + # Copy this logic from qt_module.prf so that ninja can run according # to the same rules as the final module linking in core_module.pro. !host_build:if(win32|mac):!macx-xcode { @@ -11,9 +23,7 @@ TEMPLATE = aux contains(QT_CONFIG, build_all):CONFIG += build_all } -GYP_ARGS = "-D qt_cross_compile=0" cross_compile { - GYP_ARGS = "-D qt_cross_compile=1 -D os_posix=1" TOOLCHAIN_SYSROOT = $$[QT_SYSROOT] android { diff --git a/src/core/qtwebengine.gypi b/src/core/qtwebengine.gypi index ec8c97c8e..f3c0112c5 100644 --- a/src/core/qtwebengine.gypi +++ b/src/core/qtwebengine.gypi @@ -100,13 +100,5 @@ '<(chromium_src_dir)/build/linux/system.gyp:fontconfig', ], }], - ['use_aura==1', { - 'dependencies': [ - '<(chromium_src_dir)/ui/aura/aura.gyp:aura', - '<(chromium_src_dir)/ui/base/strings/ui_strings.gyp:ui_strings', - '<(chromium_src_dir)/ui/views/views.gyp:views', - '<(chromium_src_dir)/ui/ui.gyp:ui', - ], - }], # use_aura==1 ], } diff --git a/src/core/qtwebengine_extras.gypi b/src/core/qtwebengine_extras.gypi index 5d75f9929..8846814b7 100644 --- a/src/core/qtwebengine_extras.gypi +++ b/src/core/qtwebengine_extras.gypi @@ -6,21 +6,33 @@ 'target_defaults': { # patterns used to exclude chromium files from the build when we have a drop-in replacement 'sources/': [ + ['exclude', 'base/clipboard/clipboard_android.cc$'], + ['exclude', 'base/clipboard/clipboard_aura.cc$'], + ['exclude', 'base/clipboard/clipboard_aurax11.cc$'], ['exclude', 'base/clipboard/clipboard_gtk.cc$'], ['exclude', 'base/clipboard/clipboard_mac.mm$'], ['exclude', 'base/clipboard/clipboard_win.cc$'], ['exclude', 'base/clipboard/clipboard_util_win\\.(cc|h)$'], + ['exclude', 'base/dragdrop/os_exchange_data_provider_aurax11\\.(cc|h)$'], ['exclude', 'base/dragdrop/os_exchange_data_provider_win\\.(cc|h)$'], + ['exclude', 'base/resource/resource_bundle_android.cc$'], + ['exclude', 'base/resource/resource_bundle_auralinux.cc$'], ['exclude', 'base/resource/resource_bundle_gtk.cc$'], ['exclude', 'base/resource/resource_bundle_mac.mm$'], ['exclude', 'base/resource/resource_bundle_win.cc$'], + ['exclude', 'browser/web_contents/web_contents_view_android\\.(cc|h)$'], + ['exclude', 'browser/web_contents/web_contents_view_aura\\.(cc|h)$'], ['exclude', 'browser/web_contents/web_contents_view_gtk\\.(cc|h)$'], ['exclude', 'browser/web_contents/web_contents_view_mac\\.(mm|h)$'], ['exclude', 'browser/web_contents/web_contents_view_win\\.(cc|h)$'], ['exclude', 'browser/renderer_host/gtk_im_context_wrapper\\.cc$'], + ['exclude', 'browser/renderer_host/pepper/pepper_truetype_font_list_pango\\.cc$'], + ['exclude', 'browser/renderer_host/render_widget_host_view_android\\.(cc|h)$'], + ['exclude', 'browser/renderer_host/render_widget_host_view_aura\\.(cc|h)$'], ['exclude', 'browser/renderer_host/render_widget_host_view_gtk\\.(cc|h)$'], ['exclude', 'browser/renderer_host/render_widget_host_view_mac\\.(mm|h)$'], ['exclude', 'browser/renderer_host/render_widget_host_view_win\\.(cc|h)$'], + ['exclude', 'common/font_list_pango\\.cc$'], # QNX-specific excludes ['exclude', 'base/resource/resource_bundle_qnx.cc$'], diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index d179fbe70..a2ed37b36 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -342,20 +342,6 @@ void RenderWidgetHostViewQt::UnlockMouse() QT_NOT_USED } -// FIXME: remove TOOLKIT_GTK related things. -#if defined(TOOLKIT_GTK) -// Gets the event for the last mouse down. -GdkEventButton* RenderWidgetHostViewQt::GetLastMouseDown() -{ - return 0; -} - -gfx::NativeView RenderWidgetHostViewQt::BuildInputMethodsGtkMenu() -{ - return 0; -} -#endif // defined(TOOLKIT_GTK) - void RenderWidgetHostViewQt::WasShown() { m_host->WasShown(); diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h index ef8b45755..e55d946e0 100644 --- a/src/core/render_widget_host_view_qt.h +++ b/src/core/render_widget_host_view_qt.h @@ -124,10 +124,6 @@ public: virtual void SetBackground(const SkBitmap& background) Q_DECL_OVERRIDE; virtual bool LockMouse() Q_DECL_OVERRIDE; virtual void UnlockMouse() Q_DECL_OVERRIDE; -#if defined(TOOLKIT_GTK) - virtual GdkEventButton* GetLastMouseDown() Q_DECL_OVERRIDE; - virtual gfx::NativeView BuildInputMethodsGtkMenu() Q_DECL_OVERRIDE; -#endif // defined(TOOLKIT_GTK) virtual void WasShown() Q_DECL_OVERRIDE; virtual void WasHidden() Q_DECL_OVERRIDE; virtual void MovePluginWindows(const gfx::Vector2d&, const std::vector&) Q_DECL_OVERRIDE; diff --git a/src/core/resources/repack_resources.gypi b/src/core/resources/repack_resources.gypi index 49bd52b8e..5a955cccc 100644 --- a/src/core/resources/repack_resources.gypi +++ b/src/core/resources/repack_resources.gypi @@ -8,8 +8,11 @@ 'pak_inputs': [ '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak', '<(SHARED_INTERMEDIATE_DIR)/webkit/devtools_resources.pak', -# FIXME: we'll probably want those as well -# '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/webui_resources.pak', + '<(SHARED_INTERMEDIATE_DIR)/content/content_resources.pak', + '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak', + '<(SHARED_INTERMEDIATE_DIR)/webkit/blink_resources.pak', + '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources_100_percent.pak', + '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/webui_resources.pak', ], }, 'inputs': [ -- cgit v1.2.3