mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
The embedder.h API layer is an implementation detail of the desktop embeddings, not part of the public API surface, so should not be part of the public symbol list for those libraries.
188 lines
4.9 KiB
Plaintext
188 lines
4.9 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 = [
|
|
"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_plugin_registrar.cc",
|
|
"fl_plugin_registry.cc",
|
|
"fl_renderer.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 = [
|
|
"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_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}}",
|
|
]
|
|
}
|