diff --git a/build/BUILDCONFIG.gn b/build/BUILDCONFIG.gn
index a87e2dff4..7cba24611 100644
--- a/build/BUILDCONFIG.gn
+++ b/build/BUILDCONFIG.gn
@@ -12,17 +12,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+default_static_configs = [ "//build:defaults" ]
+
+default_dynamic_configs = [
+ "//build:defaults",
+ "//build:shared_library_defaults",
+]
+
set_defaults("executable") {
- configs = [ "//build:defaults" ]
+ configs = default_static_configs
}
set_defaults("static_library") {
- configs = [ "//build:defaults" ]
+ configs = default_static_configs
+}
+set_defaults("source_set") {
+ configs = default_static_configs
}
set_defaults("shared_library") {
- configs = [ "//build:defaults", "//build:shared_library_defaults" ]
+ configs = default_dynamic_configs
}
set_defaults("published_shared_library") {
- configs = [ "//build:defaults", "//build:shared_library_defaults" ]
+ configs = default_dynamic_configs
}
if (host_os == "linux") {
@@ -40,3 +50,10 @@ if (host_os == "linux") {
is_mac = false
is_win = true
}
+
+declare_args() {
+ # Whether to use the GLFW embedding implementation. Currently overriding this
+ # would not work since each platform only has one working implementation,
+ # but in the future GLFW may be one of multiple supported implementations.
+ use_glfw = is_linux || is_win
+}
diff --git a/example/linux_fde/Makefile b/example/linux_fde/Makefile
index 70ebcac21..5351d5606 100644
--- a/example/linux_fde/Makefile
+++ b/example/linux_fde/Makefile
@@ -78,6 +78,17 @@ BIN_OUT=$(OUT_DIR)/flutter_embedder_example
ICU_DATA_OUT=$(OUT_DATA_DIR)/$(ICU_DATA_NAME)
ALL_LIBS_OUT=$(foreach lib,$(ALL_LIBS),$(OUT_LIB_DIR)/$(notdir $(lib)))
+# Add relevant code from the wrapper library, which is intended to be statically
+# built into the client.
+WRAPPER_ROOT = $(GN_OUT_DIR)/fde_cpp_wrapper
+WRAPPER_SOURCES = \
+ $(WRAPPER_ROOT)/flutter_window_controller.cc \
+ $(WRAPPER_ROOT)/plugin_handler.cc \
+ $(WRAPPER_ROOT)/engine_method_result.cc
+SOURCES += $(WRAPPER_SOURCES)
+INCLUDE_DIRS += $(WRAPPER_ROOT)/include
+
+
# Build settings
CXX=g++ -std=c++14
CXXFLAGS.release=-DNDEBUG
@@ -104,7 +115,7 @@ $(BIN_OUT): $(SOURCES) $(ALL_LIBS_OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(SOURCES) $(LDFLAGS) -o $@
.PHONY: gnbuild
-gnbuild: $(GN_OUT_DIR)
+gnbuild $(WRAPPER_SOURCES): $(GN_OUT_DIR)
$(NINJA_BIN) -C $(GN_OUT_DIR) $(FLUTTER_EMBEDDER_LIB_NAME) $(PLUGIN_NAMES)
$(GN_OUT_DIR):
diff --git a/example/windows_fde/GLFW Example.vcxproj b/example/windows_fde/GLFW Example.vcxproj
index 42c828237..3e7ba3f65 100644
--- a/example/windows_fde/GLFW Example.vcxproj
+++ b/example/windows_fde/GLFW Example.vcxproj
@@ -45,13 +45,13 @@
$(SolutionDir)bin\$(Platform)\$(Configuration)\$(ProjectName)\$(SolutionDir)bin\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\
- $(ProjectDir)..\..\library\windows\dependencies\;$(ProjectDir)..\..\;$(IncludePath);$(ProjectDir)..\..\library\windows\;$(ProjectDir)..\..\library\include\
+ $(ProjectDir)..\..\library\windows\dependencies\;$(ProjectDir)..\..\;$(IncludePath);$(ProjectDir)..\..\library\windows\;$(ProjectDir)..\..\library\include\;$(ProjectDir)..\..\library\common\client_wrapper\include\$(ProjectDir)..\..\library\windows\dependencies\GLFW\;$(SolutionDir)bin\$(Platform)\$(Configuration)\GLFW Library\;$(LibraryPath)$(SolutionDir)bin\$(Platform)\$(Configuration)\$(ProjectName)\$(SolutionDir)bin\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\
- $(ProjectDir)..\..\library\windows\dependencies\;$(ProjectDir)..\..\library\include\;$(IncludePath)
+ $(ProjectDir)..\..\library\windows\dependencies\;$(ProjectDir)..\..\;$(IncludePath);$(ProjectDir)..\..\library\windows\;$(ProjectDir)..\..\library\include\;$(ProjectDir)..\..\library\common\client_wrapper\include\$(ProjectDir)..\..\library\windows\dependencies\GLFW\;$(SolutionDir)bin\$(Platform)\$(Configuration)\GLFW Library\;$(LibraryPath)
@@ -62,6 +62,7 @@
true
+ _MBCS;%(PreprocessorDefinitions);USE_FDE_TREE_PATHSflutter_embedder.lib;glfw3.lib;opengl32.lib;%(AdditionalDependencies)
@@ -91,6 +92,7 @@
true
+ _MBCS;%(PreprocessorDefinitions);USE_FDE_TREE_PATHStrue
@@ -113,6 +115,9 @@
+
+
+
@@ -126,4 +131,4 @@
$(SolutionDir)
-
\ No newline at end of file
+
diff --git a/example/windows_fde/GLFW Example.vcxproj.filters b/example/windows_fde/GLFW Example.vcxproj.filters
index db892f006..0115b39b8 100644
--- a/example/windows_fde/GLFW Example.vcxproj.filters
+++ b/example/windows_fde/GLFW Example.vcxproj.filters
@@ -1,22 +1,40 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
-
-
- {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
- rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
-
-
-
- Source Files
-
-
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {2761a4b5-57b2-4d50-a677-d20ddc17a7f1}
+
+
+
+
+ Source Files
+
+
+ Source Files\Client Wrapper
+
+
+ Source Files\Client Wrapper
+
+
+ Source Files\Client Wrapper
+
+
+ Source Files\Client Wrapper
+
+
+ Source Files\Client Wrapper
+
+
\ No newline at end of file
diff --git a/library/BUILD.gn b/library/BUILD.gn
index 4b1efa9d9..3b3ea658c 100644
--- a/library/BUILD.gn
+++ b/library/BUILD.gn
@@ -16,23 +16,14 @@ import("//build/flutter.gni")
import("//build/packaging.gni")
import("//library/engine.gni")
-declare_args() {
- # Whether to use the GLFW embedding implementation. Currently overriding this
- # would not work since each platform only has one working implementation,
- # but in the future GLFW may be one of multiple supported implementations.
- use_glfw = is_linux || is_win
-}
-
published_shared_library("flutter_embedder") {
# GLFW embedding implementation.
if (use_glfw) {
public = [
- "include/flutter_desktop_embedding/glfw/embedder.h",
- "include/flutter_desktop_embedding/glfw/flutter_window_controller.h",
+ "include/flutter_desktop_embedding_core/glfw/embedder.h",
]
sources = [
"common/glfw/embedder.cc",
- "common/glfw/flutter_window_controller.cc",
"common/glfw/key_event_handler.cc",
"common/glfw/key_event_handler.h",
"common/glfw/keyboard_hook_handler.h",
@@ -41,42 +32,32 @@ published_shared_library("flutter_embedder") {
]
}
+ deps = [
+ ":flutter_engine",
+ ]
+
# Embedding-agnostic shared C++.
if (is_linux || is_win) {
sources += [
- "common/engine_method_result.cc",
"common/internal/incoming_message_dispatcher.cc",
"common/internal/incoming_message_dispatcher.h",
- "common/internal/plugin_handler.cc",
- "common/internal/plugin_handler.h",
"common/internal/text_input_model.cc",
"common/internal/text_input_model.h",
- "common/json_message_codec.cc",
- "common/json_method_codec.cc",
]
- public += [
- "include/flutter_desktop_embedding/basic_message_channel.h",
- "include/flutter_desktop_embedding/binary_messenger.h",
- "include/flutter_desktop_embedding/engine_method_result.h",
- "include/flutter_desktop_embedding/fde_export.h",
- "include/flutter_desktop_embedding/json_message_codec.h",
- "include/flutter_desktop_embedding/json_method_codec.h",
- "include/flutter_desktop_embedding/message_codec.h",
- "include/flutter_desktop_embedding/method_call.h",
- "include/flutter_desktop_embedding/method_channel.h",
- "include/flutter_desktop_embedding/method_codec.h",
- "include/flutter_desktop_embedding/method_result.h",
- "include/flutter_desktop_embedding/plugin_registrar.h",
+ public += [ "include/flutter_desktop_embedding_core/fde_export.h" ]
+
+ deps += [
+ "//library/common/client_wrapper:client_wrapper_internal",
+ "//library/common/client_wrapper:publish_wrapper",
]
}
- deps = [
- ":flutter_engine",
+ defines = [
+ "FLUTTER_DESKTOP_EMBEDDING_IMPL",
+ "USE_FDE_TREE_PATHS",
]
- defines = [ "FLUTTER_DESKTOP_EMBEDDING_IMPL" ]
-
- public_header_subdir = "flutter_desktop_embedding"
+ public_header_subdir = "flutter_desktop_embedding_core"
public_configs = [ ":relative_public_headers" ]
diff --git a/library/common/client_wrapper/BUILD.gn b/library/common/client_wrapper/BUILD.gn
new file mode 100644
index 000000000..e0803f936
--- /dev/null
+++ b/library/common/client_wrapper/BUILD.gn
@@ -0,0 +1,128 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+_wrapper_includes = [
+ "include/flutter_desktop_embedding/basic_message_channel.h",
+ "include/flutter_desktop_embedding/binary_messenger.h",
+ "include/flutter_desktop_embedding/engine_method_result.h",
+ "include/flutter_desktop_embedding/json_message_codec.h",
+ "include/flutter_desktop_embedding/json_method_codec.h",
+ "include/flutter_desktop_embedding/message_codec.h",
+ "include/flutter_desktop_embedding/method_call.h",
+ "include/flutter_desktop_embedding/method_channel.h",
+ "include/flutter_desktop_embedding/method_codec.h",
+ "include/flutter_desktop_embedding/method_result.h",
+ "include/flutter_desktop_embedding/plugin_registrar.h",
+]
+
+# TODO: Re-evaluate this once more codecs are supported, since most libraries
+# won't need all the codecs.
+_wrapper_sources = [
+ "src/engine_method_result.cc",
+ "src/json_message_codec.cc",
+ "src/json_method_codec.cc",
+ "src/plugin_handler.cc",
+ "src/plugin_handler.h",
+]
+
+_wrapper_publish_dir = "$root_out_dir/fde_cpp_wrapper"
+
+# Template for building the wrapper code in two different modes.
+# This is needed because the implementation of the embedding library
+# uses this code internally, in addition to it being published for
+# client use, but the internal version needs to set the flag that
+# controls the export macro.
+template("client_wrapper") {
+ template_target_name = target_name
+
+ source_set(template_target_name) {
+ forward_variables_from(invoker, "*")
+ }
+
+ source_set("${template_target_name}_internal") {
+ forward_variables_from(invoker, "*")
+
+ defines += [ "FLUTTER_DESKTOP_EMBEDDING_IMPL" ]
+ }
+}
+
+# A static library version of the client wrapper, for use both within the
+# framework implementation itself, as well as with the plugin builds.
+client_wrapper("client_wrapper") {
+ sources = _wrapper_sources
+ public = _wrapper_includes
+
+ # Use shared library settings since this target will be folded into shared
+ # libraries.
+ configs = default_dynamic_configs
+
+ if (is_linux) {
+ configs += [ "//build/linux/config:jsoncpp" ]
+ }
+ if (is_win) {
+ deps = [
+ "//third_party/jsoncpp:jsoncpp",
+ ]
+ }
+
+ public_configs = [ ":_relative_headers" ]
+
+ # Since these sources are for client use, they are written assuming they will
+ # consume the embedder as a framework.
+ include_dirs = [ "//library/include/" ]
+
+ # Explicitly disable flattened headers, since this is being built in-tree.
+ # TODO: Simplify down to one define once Windows is using GN.
+ defines = [
+ "USE_FLATTENED_INCLUDES=0",
+ "USE_FDE_TREE_PATHS",
+ ]
+}
+
+# Since this code is intended to be used by clients in a source bundle, the
+# include paths use library-relative header paths rather than project-relative.
+config("_relative_headers") {
+ include_dirs = [ "include" ]
+}
+
+copy("_publish_includes") {
+ sources = _wrapper_includes
+ if (use_glfw) {
+ sources +=
+ [ "include/flutter_desktop_embedding/glfw/flutter_window_controller.h" ]
+ }
+ output_dir = "$_wrapper_publish_dir/include/flutter_desktop_embedding"
+ outputs = [
+ "$output_dir/{{source_file_part}}",
+ ]
+}
+
+copy("_publish_sources") {
+ sources = _wrapper_sources + [ "README" ]
+
+ if (use_glfw) {
+ sources += [ "src/glfw/flutter_window_controller.cc" ]
+ }
+ output_dir = "$_wrapper_publish_dir"
+ outputs = [
+ "$output_dir/{{source_file_part}}",
+ ]
+}
+
+group("publish_wrapper") {
+ deps = [
+ ":_publish_includes",
+ ":_publish_sources",
+ ]
+}
diff --git a/library/common/client_wrapper/README b/library/common/client_wrapper/README
new file mode 100644
index 000000000..cca08aa26
--- /dev/null
+++ b/library/common/client_wrapper/README
@@ -0,0 +1,9 @@
+This code is intended to be built into plugins and embedders to provide
+higher-level, C++ abstractions for interacting with the embedding library.
+
+Over time, the goal is to move more of this code into the library in a way that
+provides a usable ABI (e.g., does not use standard libary in the interfaces).
+
+Note that this wrapper is still in early stages. Expect significant churn in
+both the APIs and the structure of the wrapper (e.g., the exact set of files
+that need to be built).
diff --git a/library/include/flutter_desktop_embedding/basic_message_channel.h b/library/common/client_wrapper/include/flutter_desktop_embedding/basic_message_channel.h
similarity index 92%
rename from library/include/flutter_desktop_embedding/basic_message_channel.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/basic_message_channel.h
index 25882e250..2ab900cae 100644
--- a/library/include/flutter_desktop_embedding/basic_message_channel.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/basic_message_channel.h
@@ -11,14 +11,13 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BASIC_MESSAGE_CHANNEL_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BASIC_MESSAGE_CHANNEL_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BASIC_MESSAGE_CHANNEL_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BASIC_MESSAGE_CHANNEL_H_
#include
#include
#include "binary_messenger.h"
-#include "fde_export.h"
#include "message_codec.h"
namespace flutter_desktop_embedding {
@@ -40,7 +39,7 @@ using MessageHandler =
// A channel for communicating with the Flutter engine by sending asynchronous
// messages.
template
-class FDE_EXPORT BasicMessageChannel {
+class BasicMessageChannel {
public:
// Creates an instance that sends and receives method calls on the channel
// named |name|, encoded with |codec| and dispatched via |messenger|.
@@ -103,4 +102,4 @@ class FDE_EXPORT BasicMessageChannel {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BASIC_MESSAGE_CHANNEL_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BASIC_MESSAGE_CHANNEL_H_
diff --git a/library/include/flutter_desktop_embedding/binary_messenger.h b/library/common/client_wrapper/include/flutter_desktop_embedding/binary_messenger.h
similarity index 87%
rename from library/include/flutter_desktop_embedding/binary_messenger.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/binary_messenger.h
index 3252ad596..09a9b07f8 100644
--- a/library/include/flutter_desktop_embedding/binary_messenger.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/binary_messenger.h
@@ -11,14 +11,12 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BINARY_MESSENGER_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BINARY_MESSENGER_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BINARY_MESSENGER_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_BINARY_MESSENGER_H_
#include
#include
-#include "fde_export.h"
-
// TODO: Consider adding absl as a dependency and using absl::Span for all of
// the message/message_size pairs.
namespace flutter_desktop_embedding {
@@ -38,7 +36,7 @@ typedef std::function
#include "binary_messenger.h"
-#include "fde_export.h"
#include "method_codec.h"
#include "method_result.h"
@@ -29,7 +28,7 @@ namespace internal {
// Manages the one-time sending of response data. This is an internal helper
// class for EngineMethodResult, separated out since the implementation doesn't
// vary based on the template type.
-class FDE_EXPORT ReplyManager {
+class ReplyManager {
public:
ReplyManager(BinaryReply reply_handler_);
~ReplyManager();
@@ -51,7 +50,7 @@ class FDE_EXPORT ReplyManager {
// Implemention of MethodResult that sends a response to the Flutter engine
// exactly once, encoded using a given codec.
template
-class FDE_EXPORT EngineMethodResult : public MethodResult {
+class EngineMethodResult : public MethodResult {
public:
// Creates a result object that will send results to |reply_handler|, encoded
// using |codec|. The |codec| pointer must remain valid for as long as this
diff --git a/library/include/flutter_desktop_embedding/glfw/flutter_window_controller.h b/library/common/client_wrapper/include/flutter_desktop_embedding/glfw/flutter_window_controller.h
similarity index 85%
rename from library/include/flutter_desktop_embedding/glfw/flutter_window_controller.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/glfw/flutter_window_controller.h
index 7f2ce4f52..03a09520d 100644
--- a/library/include/flutter_desktop_embedding/glfw/flutter_window_controller.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/glfw/flutter_window_controller.h
@@ -12,20 +12,22 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_GLFW_FLUTTER_WINDOW_CONTROLLER_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_GLFW_FLUTTER_WINDOW_CONTROLLER_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_GLFW_FLUTTER_WINDOW_CONTROLLER_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_GLFW_FLUTTER_WINDOW_CONTROLLER_H_
#include
#include
-#include "embedder.h"
-
-#ifdef USE_FLATTENED_INCLUDES
-#include "fde_export.h"
-#include "plugin_registrar.h"
+#ifdef USE_FDE_TREE_PATHS
+#include
#else
-#include "../fde_export.h"
+#include
+#endif
+
+#ifdef USE_FDE_TREE_PATHS
#include "../plugin_registrar.h"
+#else
+#include "plugin_registrar.h"
#endif
namespace flutter_desktop_embedding {
@@ -42,7 +44,7 @@ class PluginHandler;
// requires control of the application's event loop, and is thus useful
// primarily for building a simple one-window shell hosting a Flutter
// application. The final implementation and API will be very different.
-class FDE_EXPORT FlutterWindowController {
+class FlutterWindowController {
public:
// There must be only one instance of this class in an application at any
// given time, as Flutter does not support multiple engines in one process,
@@ -91,4 +93,4 @@ class FDE_EXPORT FlutterWindowController {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_GLFW_FLUTTER_WINDOW_CONTROLLER_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_GLFW_FLUTTER_WINDOW_CONTROLLER_H_
diff --git a/library/include/flutter_desktop_embedding/json_message_codec.h b/library/common/client_wrapper/include/flutter_desktop_embedding/json_message_codec.h
similarity index 84%
rename from library/include/flutter_desktop_embedding/json_message_codec.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/json_message_codec.h
index 8a824e67f..e1c54db69 100644
--- a/library/include/flutter_desktop_embedding/json_message_codec.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/json_message_codec.h
@@ -11,12 +11,11 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_MESSAGE_CODEC_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_MESSAGE_CODEC_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_MESSAGE_CODEC_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_MESSAGE_CODEC_H_
#include
-#include "fde_export.h"
#include "message_codec.h"
namespace flutter_desktop_embedding {
@@ -47,4 +46,4 @@ class JsonMessageCodec : public MessageCodec {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_MESSAGE_CODEC_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_MESSAGE_CODEC_H_
diff --git a/library/include/flutter_desktop_embedding/json_method_codec.h b/library/common/client_wrapper/include/flutter_desktop_embedding/json_method_codec.h
similarity index 84%
rename from library/include/flutter_desktop_embedding/json_method_codec.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/json_method_codec.h
index 9b1978830..88cd3497d 100644
--- a/library/include/flutter_desktop_embedding/json_method_codec.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/json_method_codec.h
@@ -11,19 +11,18 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_METHOD_CODEC_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_METHOD_CODEC_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_METHOD_CODEC_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_METHOD_CODEC_H_
#include
-#include "fde_export.h"
#include "method_call.h"
#include "method_codec.h"
namespace flutter_desktop_embedding {
// An implementation of MethodCodec that uses JSON strings as the serialization.
-class FDE_EXPORT JsonMethodCodec : public MethodCodec {
+class JsonMethodCodec : public MethodCodec {
public:
// Returns the shared instance of the codec.
static const JsonMethodCodec &GetInstance();
@@ -52,4 +51,4 @@ class FDE_EXPORT JsonMethodCodec : public MethodCodec {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_METHOD_CODEC_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_JSON_METHOD_CODEC_H_
diff --git a/library/include/flutter_desktop_embedding/message_codec.h b/library/common/client_wrapper/include/flutter_desktop_embedding/message_codec.h
similarity index 87%
rename from library/include/flutter_desktop_embedding/message_codec.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/message_codec.h
index 7ad2d518f..a9f07635e 100644
--- a/library/include/flutter_desktop_embedding/message_codec.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/message_codec.h
@@ -11,21 +11,19 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_MESSAGE_CODEC_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_MESSAGE_CODEC_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_MESSAGE_CODEC_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_MESSAGE_CODEC_H_
#include
#include
#include
-#include "fde_export.h"
-
namespace flutter_desktop_embedding {
// Translates between a binary message and higher-level method call and
// response/error objects.
template
-class FDE_EXPORT MessageCodec {
+class MessageCodec {
public:
MessageCodec() = default;
virtual ~MessageCodec() = default;
@@ -58,4 +56,4 @@ class FDE_EXPORT MessageCodec {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_MESSAGE_CODEC_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_MESSAGE_CODEC_H_
diff --git a/library/include/flutter_desktop_embedding/method_call.h b/library/common/client_wrapper/include/flutter_desktop_embedding/method_call.h
similarity index 83%
rename from library/include/flutter_desktop_embedding/method_call.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/method_call.h
index 64c06ecec..4c04f0144 100644
--- a/library/include/flutter_desktop_embedding/method_call.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/method_call.h
@@ -11,20 +11,18 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_TYPED_METHOD_CALL_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_TYPED_METHOD_CALL_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_TYPED_METHOD_CALL_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_TYPED_METHOD_CALL_H_
#include
#include
-#include "fde_export.h"
-
namespace flutter_desktop_embedding {
// An object encapsulating a method call from Flutter whose arguments are of
// type T.
template
-class FDE_EXPORT MethodCall {
+class MethodCall {
public:
// Creates a MethodCall with the given name and arguments.
explicit MethodCall(const std::string &method_name,
@@ -49,4 +47,4 @@ class FDE_EXPORT MethodCall {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_TYPED_METHOD_CALL_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_TYPED_METHOD_CALL_H_
diff --git a/library/include/flutter_desktop_embedding/method_channel.h b/library/common/client_wrapper/include/flutter_desktop_embedding/method_channel.h
similarity index 92%
rename from library/include/flutter_desktop_embedding/method_channel.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/method_channel.h
index 6016e35d9..7dac0b962 100644
--- a/library/include/flutter_desktop_embedding/method_channel.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/method_channel.h
@@ -11,15 +11,14 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CHANNEL_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CHANNEL_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CHANNEL_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CHANNEL_H_
#include
#include
#include "binary_messenger.h"
#include "engine_method_result.h"
-#include "fde_export.h"
#include "method_call.h"
#include "method_codec.h"
#include "method_result.h"
@@ -37,7 +36,7 @@ using MethodCallHandler = std::function
-class FDE_EXPORT MethodChannel {
+class MethodChannel {
public:
// Creates an instance that sends and receives method calls on the channel
// named |name|, encoded with |codec| and dispatched via |messenger|.
@@ -96,4 +95,4 @@ class FDE_EXPORT MethodChannel {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CHANNEL_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CHANNEL_H_
diff --git a/library/include/flutter_desktop_embedding/method_codec.h b/library/common/client_wrapper/include/flutter_desktop_embedding/method_codec.h
similarity index 91%
rename from library/include/flutter_desktop_embedding/method_codec.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/method_codec.h
index cc8ed2c87..30a183d95 100644
--- a/library/include/flutter_desktop_embedding/method_codec.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/method_codec.h
@@ -11,14 +11,13 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CODEC_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CODEC_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CODEC_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CODEC_H_
#include
#include
#include
-#include "fde_export.h"
#include "method_call.h"
namespace flutter_desktop_embedding {
@@ -26,7 +25,7 @@ namespace flutter_desktop_embedding {
// Translates between a binary message and higher-level method call and
// response/error objects.
template
-class FDE_EXPORT MethodCodec {
+class MethodCodec {
public:
MethodCodec() = default;
virtual ~MethodCodec() = default;
@@ -81,4 +80,4 @@ class FDE_EXPORT MethodCodec {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CODEC_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_CODEC_H_
diff --git a/library/include/flutter_desktop_embedding/method_result.h b/library/common/client_wrapper/include/flutter_desktop_embedding/method_result.h
similarity index 88%
rename from library/include/flutter_desktop_embedding/method_result.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/method_result.h
index f7a8a5c57..3f6fc748e 100644
--- a/library/include/flutter_desktop_embedding/method_result.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/method_result.h
@@ -11,19 +11,17 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_RESULT_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_RESULT_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_RESULT_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_RESULT_H_
#include
-#include "fde_export.h"
-
namespace flutter_desktop_embedding {
// Encapsulates a result sent back to the Flutter engine in response to a
// MethodCall. Only one method should be called on any given instance.
template
-class FDE_EXPORT MethodResult {
+class MethodResult {
public:
MethodResult() = default;
virtual ~MethodResult() = default;
@@ -62,4 +60,4 @@ class FDE_EXPORT MethodResult {
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_RESULT_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_METHOD_RESULT_H_
diff --git a/library/include/flutter_desktop_embedding/plugin_registrar.h b/library/common/client_wrapper/include/flutter_desktop_embedding/plugin_registrar.h
similarity index 86%
rename from library/include/flutter_desktop_embedding/plugin_registrar.h
rename to library/common/client_wrapper/include/flutter_desktop_embedding/plugin_registrar.h
index c64d144f0..dab4bd88e 100644
--- a/library/include/flutter_desktop_embedding/plugin_registrar.h
+++ b/library/common/client_wrapper/include/flutter_desktop_embedding/plugin_registrar.h
@@ -11,13 +11,12 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_PLUGIN_REGISTRAR_H_
-#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_PLUGIN_REGISTRAR_H_
+#ifndef LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_PLUGIN_REGISTRAR_H_
+#define LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_PLUGIN_REGISTRAR_H_
#include
#include "binary_messenger.h"
-#include "fde_export.h"
namespace flutter_desktop_embedding {
@@ -28,7 +27,7 @@ class Plugin;
// Currently this class has very limited functionality, but is expected to
// expand over time to more closely match the functionality of
// the Flutter mobile plugin APIs' plugin registrars.
-class FDE_EXPORT PluginRegistrar {
+class PluginRegistrar {
public:
virtual ~PluginRegistrar() {}
@@ -54,11 +53,11 @@ class FDE_EXPORT PluginRegistrar {
};
// A plugin that can be registered for ownership by a PluginRegistrar.
-class FDE_EXPORT Plugin {
+class Plugin {
public:
virtual ~Plugin() {}
};
} // namespace flutter_desktop_embedding
-#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_PLUGIN_REGISTRAR_H_
+#endif // LIBRARY_COMMON_CLIENT_WRAPPER_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_PLUGIN_REGISTRAR_H_
diff --git a/library/common/engine_method_result.cc b/library/common/client_wrapper/src/engine_method_result.cc
similarity index 95%
rename from library/common/engine_method_result.cc
rename to library/common/client_wrapper/src/engine_method_result.cc
index dd83babf3..5af244872 100644
--- a/library/common/engine_method_result.cc
+++ b/library/common/client_wrapper/src/engine_method_result.cc
@@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "library/include/flutter_desktop_embedding/engine_method_result.h"
+#include "flutter_desktop_embedding/engine_method_result.h"
#include
diff --git a/library/common/glfw/flutter_window_controller.cc b/library/common/client_wrapper/src/glfw/flutter_window_controller.cc
similarity index 90%
rename from library/common/glfw/flutter_window_controller.cc
rename to library/common/client_wrapper/src/glfw/flutter_window_controller.cc
index b53fef807..6505a73dc 100644
--- a/library/common/glfw/flutter_window_controller.cc
+++ b/library/common/client_wrapper/src/glfw/flutter_window_controller.cc
@@ -12,12 +12,20 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "library/include/flutter_desktop_embedding/glfw/flutter_window_controller.h"
+#ifdef USE_FDE_TREE_PATHS
+#include "flutter_desktop_embedding/glfw/flutter_window_controller.h"
+#else
+#include "flutter_desktop_embedding/flutter_window_controller.h"
+#endif
#include
#include
-#include "library/common/internal/plugin_handler.h"
+#ifdef USE_FDE_TREE_PATHS
+#include "../plugin_handler.h"
+#else
+#include "plugin_handler.h"
+#endif
namespace flutter_desktop_embedding {
diff --git a/library/common/json_message_codec.cc b/library/common/client_wrapper/src/json_message_codec.cc
similarity index 96%
rename from library/common/json_message_codec.cc
rename to library/common/client_wrapper/src/json_message_codec.cc
index 8eda6714d..9ad1b8845 100644
--- a/library/common/json_message_codec.cc
+++ b/library/common/client_wrapper/src/json_message_codec.cc
@@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "library/include/flutter_desktop_embedding/json_message_codec.h"
+#include "flutter_desktop_embedding/json_message_codec.h"
#include
#include
diff --git a/library/common/json_method_codec.cc b/library/common/client_wrapper/src/json_method_codec.cc
similarity index 95%
rename from library/common/json_method_codec.cc
rename to library/common/client_wrapper/src/json_method_codec.cc
index 717f8bc81..60c5a299b 100644
--- a/library/common/json_method_codec.cc
+++ b/library/common/client_wrapper/src/json_method_codec.cc
@@ -11,9 +11,9 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "library/include/flutter_desktop_embedding/json_method_codec.h"
+#include "flutter_desktop_embedding/json_method_codec.h"
-#include "library/include/flutter_desktop_embedding/json_message_codec.h"
+#include "flutter_desktop_embedding/json_message_codec.h"
namespace flutter_desktop_embedding {
diff --git a/library/common/internal/plugin_handler.cc b/library/common/client_wrapper/src/plugin_handler.cc
similarity index 94%
rename from library/common/internal/plugin_handler.cc
rename to library/common/client_wrapper/src/plugin_handler.cc
index b66a2d9f4..63a227a4f 100644
--- a/library/common/internal/plugin_handler.cc
+++ b/library/common/client_wrapper/src/plugin_handler.cc
@@ -11,10 +11,10 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "library/common/internal/plugin_handler.h"
+#include "plugin_handler.h"
-#include "library/include/flutter_desktop_embedding/engine_method_result.h"
-#include "library/include/flutter_desktop_embedding/method_channel.h"
+#include "flutter_desktop_embedding/engine_method_result.h"
+#include "flutter_desktop_embedding/method_channel.h"
#include
diff --git a/library/common/internal/plugin_handler.h b/library/common/client_wrapper/src/plugin_handler.h
similarity index 85%
rename from library/common/internal/plugin_handler.h
rename to library/common/client_wrapper/src/plugin_handler.h
index a891286f2..b80b686c8 100644
--- a/library/common/internal/plugin_handler.h
+++ b/library/common/client_wrapper/src/plugin_handler.h
@@ -19,9 +19,16 @@
#include
#include
-#include "library/include/flutter_desktop_embedding/binary_messenger.h"
-#include "library/include/flutter_desktop_embedding/glfw/embedder.h"
-#include "library/include/flutter_desktop_embedding/plugin_registrar.h"
+// TODO: Change USE_FDE_TREE_PATHS branches to use project-relative paths
+// once Windows clients aren't relying on it.
+#ifdef USE_FDE_TREE_PATHS
+#include
+#else
+#include
+#endif
+
+#include "flutter_desktop_embedding/binary_messenger.h"
+#include "flutter_desktop_embedding/plugin_registrar.h"
namespace flutter_desktop_embedding {
diff --git a/library/common/glfw/embedder.cc b/library/common/glfw/embedder.cc
index 63d9e2bed..e529e1eac 100644
--- a/library/common/glfw/embedder.cc
+++ b/library/common/glfw/embedder.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "library/include/flutter_desktop_embedding/glfw/embedder.h"
+#include "library/include/flutter_desktop_embedding_core/glfw/embedder.h"
#include
#include
@@ -29,11 +29,11 @@
#include
+#include "library/common/client_wrapper/src/plugin_handler.h"
#include "library/common/glfw/key_event_handler.h"
#include "library/common/glfw/keyboard_hook_handler.h"
#include "library/common/glfw/text_input_plugin.h"
#include "library/common/internal/incoming_message_dispatcher.h"
-#include "library/common/internal/plugin_handler.h"
#ifdef __linux__
// For plugin-compatible event handling (e.g., modal windows).
diff --git a/library/common/glfw/key_event_handler.cc b/library/common/glfw/key_event_handler.cc
index d2337cd67..08d6d5476 100644
--- a/library/common/glfw/key_event_handler.cc
+++ b/library/common/glfw/key_event_handler.cc
@@ -16,7 +16,7 @@
#include
#include
-#include "library/include/flutter_desktop_embedding/json_message_codec.h"
+#include "library/common/client_wrapper/include/flutter_desktop_embedding/json_message_codec.h"
static constexpr char kChannelName[] = "flutter/keyevent";
diff --git a/library/common/glfw/key_event_handler.h b/library/common/glfw/key_event_handler.h
index 5e086db93..446c6170f 100644
--- a/library/common/glfw/key_event_handler.h
+++ b/library/common/glfw/key_event_handler.h
@@ -18,9 +18,9 @@
#include
+#include "library/common/client_wrapper/include/flutter_desktop_embedding/basic_message_channel.h"
+#include "library/common/client_wrapper/include/flutter_desktop_embedding/binary_messenger.h"
#include "library/common/glfw/keyboard_hook_handler.h"
-#include "library/include/flutter_desktop_embedding/basic_message_channel.h"
-#include "library/include/flutter_desktop_embedding/binary_messenger.h"
namespace flutter_desktop_embedding {
diff --git a/library/common/glfw/text_input_plugin.cc b/library/common/glfw/text_input_plugin.cc
index d34379537..d0fe6699f 100644
--- a/library/common/glfw/text_input_plugin.cc
+++ b/library/common/glfw/text_input_plugin.cc
@@ -16,7 +16,7 @@
#include
#include
-#include "library/include/flutter_desktop_embedding/json_method_codec.h"
+#include "library/common/client_wrapper/include/flutter_desktop_embedding/json_method_codec.h"
static constexpr char kSetEditingStateMethod[] = "TextInput.setEditingState";
static constexpr char kClearClientMethod[] = "TextInput.clearClient";
diff --git a/library/common/glfw/text_input_plugin.h b/library/common/glfw/text_input_plugin.h
index 716229dcf..2ed44a41a 100644
--- a/library/common/glfw/text_input_plugin.h
+++ b/library/common/glfw/text_input_plugin.h
@@ -17,10 +17,10 @@
#include
+
\ No newline at end of file
diff --git a/library/windows/GLFW Library.vcxproj.filters b/library/windows/GLFW Library.vcxproj.filters
index a98b1102f..07d60b321 100644
--- a/library/windows/GLFW Library.vcxproj.filters
+++ b/library/windows/GLFW Library.vcxproj.filters
@@ -13,6 +13,9 @@
{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+ {6cc11b49-f23d-438f-b98a-aaaf956b5495}
+
@@ -21,29 +24,26 @@
Source Files
-
- Source Files
-
-
- Source Files
- Source Files
-
- Source Files
- Source Files
-
+ Source Files
-
- Source Files
+
+ Source Files\Client Wrapper
-
- Source Files
+
+ Source Files\Client Wrapper
+
+
+ Source Files\Client Wrapper
+
+
+ Source Files\Client Wrapper
diff --git a/plugins/color_panel/BUILD.gn b/plugins/color_panel/BUILD.gn
index abec46c25..f2684b2a2 100644
--- a/plugins/color_panel/BUILD.gn
+++ b/plugins/color_panel/BUILD.gn
@@ -34,6 +34,7 @@ published_shared_library("color_panel") {
deps = [
"//library:flutter_embedder",
+ "//library/common/client_wrapper:client_wrapper",
]
if (is_linux) {
diff --git a/plugins/file_chooser/BUILD.gn b/plugins/file_chooser/BUILD.gn
index 67f802f44..aa1e5df59 100644
--- a/plugins/file_chooser/BUILD.gn
+++ b/plugins/file_chooser/BUILD.gn
@@ -34,6 +34,7 @@ published_shared_library("file_chooser") {
deps = [
"//library:flutter_embedder",
+ "//library/common/client_wrapper:client_wrapper",
]
if (is_linux) {
diff --git a/plugins/menubar/BUILD.gn b/plugins/menubar/BUILD.gn
index 2d57864fe..8c0ce48ee 100644
--- a/plugins/menubar/BUILD.gn
+++ b/plugins/menubar/BUILD.gn
@@ -34,6 +34,7 @@ published_shared_library("menubar") {
deps = [
"//library:flutter_embedder",
+ "//library/common/client_wrapper:client_wrapper",
]
if (is_linux) {