| # 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") { |
| public = [ |
| "incoming_message_dispatcher.h", |
| "json_message_codec.h", |
| "json_method_codec.h", |
| "text_input_model.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", |
| "text_input_model.cc", |
| ] |
| |
| configs += [ ":desktop_library_implementation" ] |
| |
| deps = [ |
| ":common_cpp_library_headers", |
| "//flutter/shell/platform/common/cpp/client_wrapper:client_wrapper", |
| "//flutter/shell/platform/embedder:embedder_with_symbol_prefix", |
| ] |
| |
| public_deps = [ |
| ":common_cpp_core", |
| "//third_party/rapidjson", |
| ] |
| |
| if (is_win) { |
| # For wstring_conversion. See issue #50053. |
| defines = [ "_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" ] |
| } |
| } |
| |
| # 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", |
| ] |
| |
| deps = [ |
| ":common_cpp", |
| ":common_cpp_fixtures", |
| "//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}}", |
| ] |
| } |