Commit b5d76b49 authored by Riku Palomäki's avatar Riku Palomäki Committed by Marshall Greenblatt
Browse files

Linux: Fixed component build failure due to undefined KeySym functions (issue #2587)

parent 7aae02e4
......@@ -39,7 +39,11 @@ patches = [
{
# Support component builds (GN is_component_build=true).
# https://bitbucket.org/chromiumembedded/cef/issues/1617
'name': 'component_build_1617',
#
# Export GetUnicodeCharacterFromXKeySym and XKeySymToDomKey
# to fix component builds.
# https://bitbucket.org/chromiumembedded/cef/issues/2587
'name': 'component_build_1617_2587',
},
{
# Revert change on Windows that removes MessageLoop::os_modal_loop().
......
......@@ -54,3 +54,93 @@ index 7668f3725200..665e8e579c54 100644
]
if (is_android) {
diff --git ui/events/keycodes/BUILD.gn ui/events/keycodes/BUILD.gn
index 1e6d31cc0c92..9ba27b68203d 100644
--- ui/events/keycodes/BUILD.gn
+++ ui/events/keycodes/BUILD.gn
@@ -14,6 +14,8 @@ jumbo_source_set("xkb") {
"xkb_keysym.h",
]
+ defines = [ "KEYCODES_XKB_IMPLEMENTATION" ]
+
deps = [
"//base",
"//ui/base:buildflags",
diff --git ui/events/keycodes/keyboard_code_conversion_xkb.h ui/events/keycodes/keyboard_code_conversion_xkb.h
index a1f9b78704fb..6d7001c25905 100644
--- ui/events/keycodes/keyboard_code_conversion_xkb.h
+++ ui/events/keycodes/keyboard_code_conversion_xkb.h
@@ -9,6 +9,7 @@
#include "base/strings/string16.h"
#include "ui/events/keycodes/dom/dom_key.h"
+#include "ui/events/keycodes/keycodes_xkb_export.h"
#include "ui/events/keycodes/xkb_keysym.h"
namespace ui {
@@ -24,7 +25,7 @@ DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym);
// base::char16 DeadXKeySymToCombiningCharacter(xkb_keysym_t keysym);
// Return the DomKey determined by the XKB layout result (keysym, character).
-DomKey XKeySymToDomKey(xkb_keysym_t keysym, base::char16 character);
+KEYCODES_XKB_EXPORT DomKey XKeySymToDomKey(xkb_keysym_t keysym, base::char16 character);
} // namespace ui
diff --git ui/events/keycodes/keycodes_xkb_export.h ui/events/keycodes/keycodes_xkb_export.h
index e69de29bb2d1..dc0e8939f597 100644
--- ui/events/keycodes/keycodes_xkb_export.h
+++ ui/events/keycodes/keycodes_xkb_export.h
@@ -0,0 +1,29 @@
+// Copyright 2016 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.
+
+#ifndef UI_EVENTS_KEYCODES_KEYCODES_XKB_EXPORT_H_
+#define UI_EVENTS_KEYCODES_KEYCODES_XKB_EXPORT_H_
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(KEYCODES_XKB_IMPLEMENTATION)
+#define KEYCODES_XKB_EXPORT __declspec(dllexport)
+#else
+#define KEYCODES_XKB_EXPORT __declspec(dllimport)
+#endif // defined(KEYCODES_XKB_IMPLEMENTATION)
+
+#else // defined(WIN32)
+#if defined(KEYCODES_XKB_IMPLEMENTATION)
+#define KEYCODES_XKB_EXPORT __attribute__((visibility("default")))
+#else
+#define KEYCODES_XKB_EXPORT
+#endif
+#endif
+
+#else // defined(COMPONENT_BUILD)
+#define KEYCODES_XKB_EXPORT
+#endif
+
+#endif // UI_EVENTS_KEYCODES_KEYCODES_XKB_EXPORT_H_
diff --git ui/events/keycodes/keysym_to_unicode.h ui/events/keycodes/keysym_to_unicode.h
index a7983d179832..2bbee48e57ac 100644
--- ui/events/keycodes/keysym_to_unicode.h
+++ ui/events/keycodes/keysym_to_unicode.h
@@ -5,6 +5,8 @@
#ifndef UI_EVENTS_KEYCODES_KEYSYM_TO_UNICODE_H_
#define UI_EVENTS_KEYCODES_KEYSYM_TO_UNICODE_H_
+#include "ui/events/keycodes/keycodes_x_export.h"
+
#include <stdint.h>
namespace ui {
@@ -13,7 +15,7 @@ namespace ui {
// |keysym| doesn't represent a printable character, returns zero. We don't
// support characters outside the Basic Plane, and this function returns zero
// in that case.
-uint16_t GetUnicodeCharacterFromXKeySym(unsigned long keysym);
+KEYCODES_X_EXPORT uint16_t GetUnicodeCharacterFromXKeySym(unsigned long keysym);
} // namespace ui
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment