stuartmorgan a95882ba70
Don't export embedder API in desktop embeddings (#18735)
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.
2020-06-03 18:13:59 -07:00

145 lines
3.4 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.
import("//flutter/testing/testing.gni")
config("desktop_library_implementation") {
defines = [ "FLUTTER_DESKTOP_LIBRARY" ]
}
_public_headers = [
"public/flutter_export.h",
"public/flutter_messenger.h",
"public/flutter_plugin_registrar.h",
]
# Any files that are built by clients (client_wrapper code, library headers for
# implementations using this shared code, etc.) include the public headers
# assuming they are in the include path. This configuration should be added to
# any such code that is also built by GN to make the includes work.
config("relative_flutter_library_headers") {
include_dirs = [ "public" ]
}
# The headers are a separate source set since the client wrapper is allowed
# to depend on the public headers, but none of the rest of the code.
source_set("common_cpp_library_headers") {
public = _public_headers
configs += [ ":desktop_library_implementation" ]
}
source_set("common_cpp_input") {
public = [
"text_input_model.h",
]
sources = [
"text_input_model.cc",
]
configs += [ ":desktop_library_implementation" ]
if (is_win) {
# For wstring_conversion. See issue #50053.
defines = [ "_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" ]
}
}
source_set("common_cpp") {
public = [
"incoming_message_dispatcher.h",
"json_message_codec.h",
"json_method_codec.h",
]
# TODO: Refactor flutter_glfw.cc to move the implementations corresponding
# to the _public_headers above into this target.
sources = [
"incoming_message_dispatcher.cc",
"json_message_codec.cc",
"json_method_codec.cc",
]
configs += [ ":desktop_library_implementation" ]
deps = [
":common_cpp_library_headers",
"//flutter/shell/platform/common/cpp/client_wrapper:client_wrapper",
"//flutter/shell/platform/embedder:embedder_as_internal_library",
]
public_deps = [
":common_cpp_core",
"//third_party/rapidjson",
]
}
# The portion of common_cpp that has no dependencies on the public/
# headers. This division should be revisited once the Linux GTK
# embedding is futher along and it's clearer how much, if any, shared
# API surface there will be.
source_set("common_cpp_core") {
public = [
"path_utils.h",
]
sources = [
"path_utils.cc",
]
}
test_fixtures("common_cpp_core_fixtures") {
fixtures = []
}
executable("common_cpp_core_unittests") {
testonly = true
sources = [
"path_utils_unittests.cc",
]
deps = [
":common_cpp_core",
":common_cpp_core_fixtures",
"//flutter/testing",
"//third_party/dart/runtime:libdart_jit",
]
public_configs = [ "//flutter:config" ]
}
test_fixtures("common_cpp_fixtures") {
fixtures = []
}
executable("common_cpp_unittests") {
testonly = true
sources = [
"json_message_codec_unittests.cc",
"json_method_codec_unittests.cc",
"text_input_model_unittests.cc",
]
deps = [
":common_cpp",
":common_cpp_fixtures",
":common_cpp_input",
"//flutter/shell/platform/common/cpp/client_wrapper:client_wrapper",
"//flutter/shell/platform/common/cpp/client_wrapper:client_wrapper_library_stubs",
"//flutter/testing",
]
public_configs = [ "//flutter:config" ]
}
copy("publish_headers") {
sources = _public_headers
outputs = [
"$root_out_dir/{{source_file_part}}",
]
}