mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This converts the GTK keyboard code to track the key down states of the lock modifiers NumLock and CapsLock so that they represent the actual "down" state of the key, rather than the lock state itself. GTK tracks the lock state, and Flutter expects the down state.
184 lines
5.1 KiB
Plaintext
184 lines
5.1 KiB
Plaintext
# Copyright 2013 The Flutter Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
assert(is_linux)
|
|
|
|
import("//flutter/shell/platform/glfw/config.gni")
|
|
import("//flutter/testing/testing.gni")
|
|
|
|
group("linux") {
|
|
deps = [
|
|
":flutter_linux_gtk",
|
|
":publish_headers_linux",
|
|
]
|
|
if (build_glfw_shell) {
|
|
deps += [
|
|
":flutter_linux_glfw",
|
|
"//flutter/shell/platform/glfw:publish_headers_glfw",
|
|
"//flutter/shell/platform/glfw/client_wrapper:publish_wrapper_glfw",
|
|
]
|
|
}
|
|
}
|
|
|
|
# Temporary workaround for the issue describe in
|
|
# https://github.com/flutter/flutter/issues/14509 and
|
|
# https://github.com/flutter/flutter/issues/14438
|
|
# Remove once the build infrastructure moves to Ubuntu 18.04 or newer, where
|
|
# the underlying issue is fixed.
|
|
config("disable_fatal_link_warnings") {
|
|
visibility = [ ":*" ]
|
|
ldflags = [ "-Wl,--no-fatal-warnings" ]
|
|
}
|
|
|
|
if (build_glfw_shell) {
|
|
shared_library("flutter_linux_glfw") {
|
|
deps = [ "//flutter/shell/platform/glfw:flutter_glfw" ]
|
|
|
|
configs += [ ":disable_fatal_link_warnings" ]
|
|
|
|
public_configs = [ "//flutter:config" ]
|
|
}
|
|
}
|
|
|
|
_public_headers = [
|
|
"public/flutter_linux/fl_basic_message_channel.h",
|
|
"public/flutter_linux/fl_binary_codec.h",
|
|
"public/flutter_linux/fl_binary_messenger.h",
|
|
"public/flutter_linux/fl_dart_project.h",
|
|
"public/flutter_linux/fl_engine.h",
|
|
"public/flutter_linux/fl_json_message_codec.h",
|
|
"public/flutter_linux/fl_json_method_codec.h",
|
|
"public/flutter_linux/fl_message_codec.h",
|
|
"public/flutter_linux/fl_method_call.h",
|
|
"public/flutter_linux/fl_method_channel.h",
|
|
"public/flutter_linux/fl_method_codec.h",
|
|
"public/flutter_linux/fl_method_response.h",
|
|
"public/flutter_linux/fl_plugin_registrar.h",
|
|
"public/flutter_linux/fl_plugin_registry.h",
|
|
"public/flutter_linux/fl_standard_message_codec.h",
|
|
"public/flutter_linux/fl_standard_method_codec.h",
|
|
"public/flutter_linux/fl_string_codec.h",
|
|
"public/flutter_linux/fl_value.h",
|
|
"public/flutter_linux/fl_view.h",
|
|
"public/flutter_linux/flutter_linux.h",
|
|
]
|
|
|
|
config("relative_flutter_linux_headers") {
|
|
include_dirs = [ "public" ]
|
|
}
|
|
|
|
source_set("flutter_linux_sources") {
|
|
public = _public_headers
|
|
|
|
configs += [ "//flutter/shell/platform/linux/config:gtk" ]
|
|
|
|
sources = [
|
|
"egl_utils.cc",
|
|
"fl_basic_message_channel.cc",
|
|
"fl_binary_codec.cc",
|
|
"fl_binary_messenger.cc",
|
|
"fl_dart_project.cc",
|
|
"fl_engine.cc",
|
|
"fl_json_message_codec.cc",
|
|
"fl_json_method_codec.cc",
|
|
"fl_key_event_plugin.cc",
|
|
"fl_message_codec.cc",
|
|
"fl_method_call.cc",
|
|
"fl_method_channel.cc",
|
|
"fl_method_codec.cc",
|
|
"fl_method_response.cc",
|
|
"fl_mouse_cursor_plugin.cc",
|
|
"fl_platform_plugin.cc",
|
|
"fl_plugin_registrar.cc",
|
|
"fl_plugin_registry.cc",
|
|
"fl_renderer.cc",
|
|
"fl_renderer_headless.cc",
|
|
"fl_renderer_x11.cc",
|
|
"fl_standard_message_codec.cc",
|
|
"fl_standard_method_codec.cc",
|
|
"fl_string_codec.cc",
|
|
"fl_text_input_plugin.cc",
|
|
"fl_value.cc",
|
|
"fl_view.cc",
|
|
]
|
|
|
|
# Set flag to stop headers being directly included (library users should not do this)
|
|
defines = [ "FLUTTER_LINUX_COMPILATION" ]
|
|
|
|
deps = [
|
|
"//flutter/shell/platform/common/cpp:common_cpp_input",
|
|
"//flutter/shell/platform/embedder:embedder_headers",
|
|
"//third_party/rapidjson",
|
|
]
|
|
}
|
|
|
|
source_set("flutter_linux") {
|
|
configs += [
|
|
"//flutter/shell/platform/linux/config:gtk",
|
|
"//flutter/shell/platform/linux/config:egl",
|
|
"//third_party/khronos:khronos_headers",
|
|
]
|
|
|
|
public_deps = [ ":flutter_linux_sources" ]
|
|
|
|
deps = [ "//flutter/shell/platform/embedder:embedder_as_internal_library" ]
|
|
}
|
|
|
|
test_fixtures("flutter_linux_fixtures") {
|
|
fixtures = []
|
|
}
|
|
|
|
executable("flutter_linux_unittests") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"egl_utils_test.cc",
|
|
"fl_basic_message_channel_test.cc",
|
|
"fl_binary_codec_test.cc",
|
|
"fl_binary_messenger_test.cc",
|
|
"fl_dart_project_test.cc",
|
|
"fl_json_message_codec_test.cc",
|
|
"fl_json_method_codec_test.cc",
|
|
"fl_key_event_plugin_test.cc",
|
|
"fl_message_codec_test.cc",
|
|
"fl_method_channel_test.cc",
|
|
"fl_method_codec_test.cc",
|
|
"fl_method_response_test.cc",
|
|
"fl_standard_message_codec_test.cc",
|
|
"fl_standard_method_codec_test.cc",
|
|
"fl_string_codec_test.cc",
|
|
"fl_value_test.cc",
|
|
"testing/fl_test.cc",
|
|
"testing/mock_egl.cc",
|
|
"testing/mock_engine.cc",
|
|
"testing/mock_renderer.cc",
|
|
]
|
|
|
|
public_configs = [ "//flutter:config" ]
|
|
|
|
configs += [ "//flutter/shell/platform/linux/config:gtk" ]
|
|
|
|
# Set flag to allow public headers to be directly included (library users should not do this)
|
|
defines = [ "FLUTTER_LINUX_COMPILATION" ]
|
|
|
|
deps = [
|
|
":flutter_linux_fixtures",
|
|
":flutter_linux_sources",
|
|
"//flutter/runtime:libdart",
|
|
"//flutter/shell/platform/embedder:embedder_headers",
|
|
"//flutter/testing",
|
|
]
|
|
}
|
|
|
|
shared_library("flutter_linux_gtk") {
|
|
deps = [ ":flutter_linux" ]
|
|
|
|
public_configs = [ "//flutter:config" ]
|
|
}
|
|
|
|
copy("publish_headers_linux") {
|
|
sources = _public_headers
|
|
outputs = [ "$root_out_dir/flutter_linux/{{source_file_part}}" ]
|
|
}
|