From 175bfb4da54cfabf206fc21cc6a8855bdbeb1c53 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 7 Jan 2019 15:57:04 -0500 Subject: [PATCH 1/2] Add visibility/export annotations Adds export macros, and annotations for all symbols that should be public. Switches the default for shared library builds on Linux to visibility=hidden so that missing annotations will be caught on both platforms, rather than just Windows. Fixes issue #208 --- build/BUILD.gn | 2 + library/BUILD.gn | 5 +++ .../binary_messenger.h | 4 +- .../engine_method_result.h | 5 ++- .../flutter_desktop_embedding/fde_export.h | 37 +++++++++++++++++++ .../flutter_desktop_embedding/glfw/embedder.h | 25 +++++++------ .../json_method_codec.h | 3 +- .../flutter_desktop_embedding/method_call.h | 4 +- .../method_channel.h | 3 +- .../flutter_desktop_embedding/method_codec.h | 3 +- .../flutter_desktop_embedding/method_result.h | 4 +- .../plugin_registrar.h | 5 ++- library/linux/Makefile | 3 +- plugins/color_panel/BUILD.gn | 5 ++- plugins/color_panel/linux/Makefile | 3 +- .../include/color_panel/color_panel_plugin.h | 9 ++++- plugins/file_chooser/BUILD.gn | 5 ++- plugins/file_chooser/linux/Makefile | 3 +- .../file_chooser/file_chooser_plugin.h | 9 ++++- plugins/menubar/BUILD.gn | 5 ++- plugins/menubar/linux/Makefile | 3 +- .../linux/include/menubar/menubar_plugin.h | 9 ++++- 22 files changed, 122 insertions(+), 32 deletions(-) create mode 100644 library/include/flutter_desktop_embedding/fde_export.h diff --git a/build/BUILD.gn b/build/BUILD.gn index 2c37ee9fb..276788b17 100644 --- a/build/BUILD.gn +++ b/build/BUILD.gn @@ -38,6 +38,8 @@ config("shared_library_defaults") { cflags = [ "-shared", "-fPIC", + # Default to hidden for consistency with Windows builds. + "-fvisibility=hidden", ] } } diff --git a/library/BUILD.gn b/library/BUILD.gn index af55b2cf3..e013036f5 100644 --- a/library/BUILD.gn +++ b/library/BUILD.gn @@ -47,6 +47,7 @@ published_shared_library("flutter_embedder") { public += [ "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_method_codec.h", "include/flutter_desktop_embedding/method_call.h", "include/flutter_desktop_embedding/method_channel.h", @@ -60,6 +61,10 @@ published_shared_library("flutter_embedder") { ":fetch_flutter_engine", ] + defines = [ + "FLUTTER_DESKTOP_EMBEDDING_IMPL", + ] + public_header_subdir = "flutter_desktop_embedding" public_configs = [ diff --git a/library/include/flutter_desktop_embedding/binary_messenger.h b/library/include/flutter_desktop_embedding/binary_messenger.h index 4e6f73b13..13f18ac33 100644 --- a/library/include/flutter_desktop_embedding/binary_messenger.h +++ b/library/include/flutter_desktop_embedding/binary_messenger.h @@ -17,6 +17,8 @@ #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 { @@ -36,7 +38,7 @@ typedef std::function #include "binary_messenger.h" +#include "fde_export.h" #include "method_codec.h" #include "method_result.h" @@ -28,7 +29,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 ReplyManager { +class FDE_EXPORT ReplyManager { public: ReplyManager(BinaryReply reply_handler_); ~ReplyManager(); @@ -50,7 +51,7 @@ class ReplyManager { // Implemention of MethodResult that sends a response to the Flutter engine // exactly once, encoded using a given codec. template -class EngineMethodResult : public MethodResult { +class FDE_EXPORT 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/fde_export.h b/library/include/flutter_desktop_embedding/fde_export.h new file mode 100644 index 000000000..06b83fb97 --- /dev/null +++ b/library/include/flutter_desktop_embedding/fde_export.h @@ -0,0 +1,37 @@ +// 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. +#ifndef LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_FDE_EXPORT_H_ +#define LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_FDE_EXPORT_H_ + +#ifdef FLUTTER_DESKTOP_EMBEDDING_IMPL +// Add visibiilty/export annotations when building the library. + +#ifdef _WIN32 +#define FDE_EXPORT __declspec(dllexport) +#else +#define FDE_EXPORT __attribute__((visibility("default"))) +#endif + +#else + +// Add import annotations when consuming the library. +#ifdef _WIN32 +#define FDE_EXPORT __declspec(dllimport) +#else +#define FDE_EXPORT +#endif + +#endif + +#endif // LIBRARY_INCLUDE_FLUTTER_DESKTOP_EMBEDDING_FDE_EXPORT_H_ diff --git a/library/include/flutter_desktop_embedding/glfw/embedder.h b/library/include/flutter_desktop_embedding/glfw/embedder.h index c3d8268b5..0b37d1114 100644 --- a/library/include/flutter_desktop_embedding/glfw/embedder.h +++ b/library/include/flutter_desktop_embedding/glfw/embedder.h @@ -27,8 +27,10 @@ #include #ifdef USE_FLATTENED_INCLUDES +#include "fde_export.h" #include "plugin_registrar.h" #else +#include "../fde_export.h" #include "../plugin_registrar.h" #endif @@ -37,12 +39,12 @@ namespace flutter_desktop_embedding { // Calls glfwInit() // // glfwInit() must be called in the same library as glfwCreateWindow() -bool FlutterInit(); +FDE_EXPORT bool FlutterInit(); // Calls glfwTerminate() // // glfwTerminate() must be called in the same library as glfwCreateWindow() -void FlutterTerminate(); +FDE_EXPORT void FlutterTerminate(); // Creates a GLFW Window running a Flutter Application. // @@ -54,12 +56,11 @@ void FlutterTerminate(); // // Returns a null pointer in the event of an error. The caller owns the pointer // when it is non-null. -GLFWwindow *CreateFlutterWindow(size_t initial_width, size_t initial_height, - const std::string &main_path, - const std::string &assets_path, - const std::string &packages_path, - const std::string &icu_data_path, - const std::vector &arguments); +FDE_EXPORT GLFWwindow *CreateFlutterWindow( + size_t initial_width, size_t initial_height, const std::string &main_path, + const std::string &assets_path, const std::string &packages_path, + const std::string &icu_data_path, + const std::vector &arguments); // Creates a GLFW Window running a Flutter Application in snapshot mode. // @@ -74,7 +75,7 @@ GLFWwindow *CreateFlutterWindow(size_t initial_width, size_t initial_height, // // Returns a null pointer in the event of an error. The caller owns the pointer // when it is non-null. -GLFWwindow *CreateFlutterWindowInSnapshotMode( +FDE_EXPORT GLFWwindow *CreateFlutterWindowInSnapshotMode( size_t initial_width, size_t initial_height, const std::string &assets_path, const std::string &icu_data_path, const std::vector &arguments); @@ -84,8 +85,8 @@ GLFWwindow *CreateFlutterWindowInSnapshotMode( // // The name must be unique across the application, so the recommended approach // is to use the fully namespace-qualified name of the plugin class. -PluginRegistrar *GetRegistrarForPlugin(GLFWwindow *flutter_window, - const std::string &plugin_name); +FDE_EXPORT PluginRegistrar *GetRegistrarForPlugin( + GLFWwindow *flutter_window, const std::string &plugin_name); // Loops on flutter window events until termination. // @@ -94,7 +95,7 @@ PluginRegistrar *GetRegistrarForPlugin(GLFWwindow *flutter_window, // // After this function the user must eventually call FlutterTerminate() if doing // cleanup. -void FlutterWindowLoop(GLFWwindow *flutter_window); +FDE_EXPORT void FlutterWindowLoop(GLFWwindow *flutter_window); } // namespace flutter_desktop_embedding diff --git a/library/include/flutter_desktop_embedding/json_method_codec.h b/library/include/flutter_desktop_embedding/json_method_codec.h index 973a2ec73..9b1978830 100644 --- a/library/include/flutter_desktop_embedding/json_method_codec.h +++ b/library/include/flutter_desktop_embedding/json_method_codec.h @@ -16,13 +16,14 @@ #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 JsonMethodCodec : public MethodCodec { +class FDE_EXPORT JsonMethodCodec : public MethodCodec { public: // Returns the shared instance of the codec. static const JsonMethodCodec &GetInstance(); diff --git a/library/include/flutter_desktop_embedding/method_call.h b/library/include/flutter_desktop_embedding/method_call.h index f329532d5..64c06ecec 100644 --- a/library/include/flutter_desktop_embedding/method_call.h +++ b/library/include/flutter_desktop_embedding/method_call.h @@ -17,12 +17,14 @@ #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 MethodCall { +class FDE_EXPORT MethodCall { public: // Creates a MethodCall with the given name and arguments. explicit MethodCall(const std::string &method_name, diff --git a/library/include/flutter_desktop_embedding/method_channel.h b/library/include/flutter_desktop_embedding/method_channel.h index f5e276400..6016e35d9 100644 --- a/library/include/flutter_desktop_embedding/method_channel.h +++ b/library/include/flutter_desktop_embedding/method_channel.h @@ -19,6 +19,7 @@ #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" @@ -36,7 +37,7 @@ using MethodCallHandler = std::function -class MethodChannel { +class FDE_EXPORT MethodChannel { public: // Creates an instance that sends and receives method calls on the channel // named |name|, encoded with |codec| and dispatched via |messenger|. diff --git a/library/include/flutter_desktop_embedding/method_codec.h b/library/include/flutter_desktop_embedding/method_codec.h index 7f7213e34..cc8ed2c87 100644 --- a/library/include/flutter_desktop_embedding/method_codec.h +++ b/library/include/flutter_desktop_embedding/method_codec.h @@ -18,6 +18,7 @@ #include #include +#include "fde_export.h" #include "method_call.h" namespace flutter_desktop_embedding { @@ -25,7 +26,7 @@ namespace flutter_desktop_embedding { // Translates between a binary message and higher-level method call and // response/error objects. template -class MethodCodec { +class FDE_EXPORT MethodCodec { public: MethodCodec() = default; virtual ~MethodCodec() = default; diff --git a/library/include/flutter_desktop_embedding/method_result.h b/library/include/flutter_desktop_embedding/method_result.h index 310883e2b..f7a8a5c57 100644 --- a/library/include/flutter_desktop_embedding/method_result.h +++ b/library/include/flutter_desktop_embedding/method_result.h @@ -16,12 +16,14 @@ #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 MethodResult { +class FDE_EXPORT MethodResult { public: MethodResult() = default; virtual ~MethodResult() = default; diff --git a/library/include/flutter_desktop_embedding/plugin_registrar.h b/library/include/flutter_desktop_embedding/plugin_registrar.h index 6930312f3..c64d144f0 100644 --- a/library/include/flutter_desktop_embedding/plugin_registrar.h +++ b/library/include/flutter_desktop_embedding/plugin_registrar.h @@ -17,6 +17,7 @@ #include #include "binary_messenger.h" +#include "fde_export.h" namespace flutter_desktop_embedding { @@ -27,7 +28,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 PluginRegistrar { +class FDE_EXPORT PluginRegistrar { public: virtual ~PluginRegistrar() {} @@ -53,7 +54,7 @@ class PluginRegistrar { }; // A plugin that can be registered for ownership by a PluginRegistrar. -class Plugin { +class FDE_EXPORT Plugin { public: virtual ~Plugin() {} }; diff --git a/library/linux/Makefile b/library/linux/Makefile index 03b8ce637..df7b62ebe 100644 --- a/library/linux/Makefile +++ b/library/linux/Makefile @@ -22,10 +22,11 @@ ENGINE_UPDATER=$(TOOLS_DIR)/update_flutter_engine FLUTTER_DIR=$(shell "$(TOOLS_DIR)/flutter_location") LIBRARY_OUT=libflutter_embedder.so CXX=g++ -std=c++14 -CXXFLAGS= -Wall -Werror -shared -fPIC \ +CXXFLAGS= -Wall -Werror -shared -fPIC -fvisibility=hidden \ -I$(PROJECT_ROOT) \ -I$(PROJECT_ROOT)/library/include \ -I$(FLUTTER_ENGINE_HEADER_DIR) \ + -DFLUTTER_DESKTOP_EMBEDDING_IMPL \ $(shell pkg-config --cflags gtk+-3.0 epoxy x11 jsoncpp) LDFLAGS= -L$(CURDIR) \ $(shell pkg-config --libs gtk+-3.0 epoxy x11 jsoncpp) \ diff --git a/plugins/color_panel/BUILD.gn b/plugins/color_panel/BUILD.gn index 0b6bf3c8e..0926adc48 100644 --- a/plugins/color_panel/BUILD.gn +++ b/plugins/color_panel/BUILD.gn @@ -30,7 +30,10 @@ published_shared_library("color_panel") { ] } - defines = ["USE_FLATTENED_INCLUDES"] + defines = [ + "COLOR_PANEL_PLUGIN_IMPL", + "USE_FLATTENED_INCLUDES", + ] deps = [ "//library:flutter_embedder", diff --git a/plugins/color_panel/linux/Makefile b/plugins/color_panel/linux/Makefile index 4f8e167a8..14a2eb8d4 100644 --- a/plugins/color_panel/linux/Makefile +++ b/plugins/color_panel/linux/Makefile @@ -24,9 +24,10 @@ EMBEDDER_LIB_FILE=$(EMBEDDER_LIBRARY_OUT_DIR)/lib$(EMBEDDER_LIB_NAME).so COMMON_DIR=$(CURDIR)/../common CXX=g++ -std=c++14 -CXXFLAGS= -Wall -Werror -shared -fPIC \ +CXXFLAGS= -Wall -Werror -shared -fPIC -fvisibility=hidden \ -I$(PROJECT_ROOT) \ -I$(EMBEDDER_LIBRARY_HEADER_DIR) \ + -DCOLOR_PANEL_PLUGIN_IMPL \ $(shell pkg-config --cflags gtk+-3.0 jsoncpp) LDFLAGS= -L$(EMBEDDER_LIBRARY_OUT_DIR) \ $(shell pkg-config --libs gtk+-3.0 jsoncpp) \ diff --git a/plugins/color_panel/linux/include/color_panel/color_panel_plugin.h b/plugins/color_panel/linux/include/color_panel/color_panel_plugin.h index 6835f18cb..17ea3fd50 100644 --- a/plugins/color_panel/linux/include/color_panel/color_panel_plugin.h +++ b/plugins/color_panel/linux/include/color_panel/color_panel_plugin.h @@ -21,10 +21,17 @@ #include #include +#ifdef COLOR_PANEL_PLUGIN_IMPL +#define COLOR_PANEL_PLUGIN_EXPORT __attribute__((visibility("default"))) +#else +#define COLOR_PANEL_PLUGIN_EXPORT +#endif + namespace plugins_color_panel { // A plugin for communicating with a native color picker panel. -class ColorPanelPlugin : public flutter_desktop_embedding::Plugin { +class COLOR_PANEL_PLUGIN_EXPORT ColorPanelPlugin + : public flutter_desktop_embedding::Plugin { public: static void RegisterWithRegistrar( flutter_desktop_embedding::PluginRegistrar *registrar); diff --git a/plugins/file_chooser/BUILD.gn b/plugins/file_chooser/BUILD.gn index 86b3e8837..1b9f3ec1c 100644 --- a/plugins/file_chooser/BUILD.gn +++ b/plugins/file_chooser/BUILD.gn @@ -30,7 +30,10 @@ published_shared_library("file_chooser") { ] } - defines = ["USE_FLATTENED_INCLUDES"] + defines = [ + "FILE_CHOOSER_PLUGIN_IMPL", + "USE_FLATTENED_INCLUDES", + ] deps = [ "//library:flutter_embedder", diff --git a/plugins/file_chooser/linux/Makefile b/plugins/file_chooser/linux/Makefile index bb2bf3f87..0cfc2b300 100644 --- a/plugins/file_chooser/linux/Makefile +++ b/plugins/file_chooser/linux/Makefile @@ -24,9 +24,10 @@ EMBEDDER_LIB_FILE=$(EMBEDDER_LIBRARY_OUT_DIR)/lib$(EMBEDDER_LIB_NAME).so COMMON_DIR=$(CURDIR)/../common CXX=g++ -std=c++14 -CXXFLAGS= -Wall -Werror -shared -fPIC \ +CXXFLAGS= -Wall -Werror -shared -fPIC -fvisibility=hidden \ -I$(PROJECT_ROOT) \ -I$(EMBEDDER_LIBRARY_HEADER_DIR) \ + -DFILE_CHOOSER_PLUGIN_IMPL \ $(shell pkg-config --cflags gtk+-3.0 jsoncpp) LDFLAGS= -L$(EMBEDDER_LIBRARY_OUT_DIR) \ $(shell pkg-config --libs gtk+-3.0 jsoncpp) \ diff --git a/plugins/file_chooser/linux/include/file_chooser/file_chooser_plugin.h b/plugins/file_chooser/linux/include/file_chooser/file_chooser_plugin.h index fa78a0d5f..ae97be36e 100644 --- a/plugins/file_chooser/linux/include/file_chooser/file_chooser_plugin.h +++ b/plugins/file_chooser/linux/include/file_chooser/file_chooser_plugin.h @@ -21,10 +21,17 @@ #include #include +#ifdef FILE_CHOOSER_PLUGIN_IMPL +#define FILE_CHOOSER_PLUGIN_EXPORT __attribute__((visibility("default"))) +#else +#define FILE_CHOOSER_PLUGIN_EXPORT +#endif + namespace plugins_file_chooser { // Implements a file chooser plugin. -class FileChooserPlugin : public flutter_desktop_embedding::Plugin { +class FILE_CHOOSER_PLUGIN_EXPORT FileChooserPlugin + : public flutter_desktop_embedding::Plugin { public: static void RegisterWithRegistrar( flutter_desktop_embedding::PluginRegistrar *registrar); diff --git a/plugins/menubar/BUILD.gn b/plugins/menubar/BUILD.gn index ab431f8ef..3d081058a 100644 --- a/plugins/menubar/BUILD.gn +++ b/plugins/menubar/BUILD.gn @@ -30,7 +30,10 @@ published_shared_library("menubar") { ] } - defines = ["USE_FLATTENED_INCLUDES"] + defines = [ + "MENUBAR_PLUGIN_IMPL", + "USE_FLATTENED_INCLUDES", + ] deps = [ "//library:flutter_embedder", diff --git a/plugins/menubar/linux/Makefile b/plugins/menubar/linux/Makefile index 0ee350ef1..87928cb71 100644 --- a/plugins/menubar/linux/Makefile +++ b/plugins/menubar/linux/Makefile @@ -24,9 +24,10 @@ EMBEDDER_LIB_FILE=$(EMBEDDER_LIBRARY_OUT_DIR)/lib$(EMBEDDER_LIB_NAME).so COMMON_DIR=$(CURDIR)/../common CXX=g++ -std=c++14 -CXXFLAGS= -Wall -Werror -shared -fPIC \ +CXXFLAGS= -Wall -Werror -shared -fPIC -fvisibility=hidden \ -I$(PROJECT_ROOT) \ -I$(EMBEDDER_LIBRARY_HEADER_DIR) \ + -DMENUBAR_PLUGIN_IMPL \ $(shell pkg-config --cflags gtk+-3.0 jsoncpp) LDFLAGS= -L$(EMBEDDER_LIBRARY_OUT_DIR) \ $(shell pkg-config --libs gtk+-3.0 jsoncpp) \ diff --git a/plugins/menubar/linux/include/menubar/menubar_plugin.h b/plugins/menubar/linux/include/menubar/menubar_plugin.h index 64258f1fc..97e49a22c 100644 --- a/plugins/menubar/linux/include/menubar/menubar_plugin.h +++ b/plugins/menubar/linux/include/menubar/menubar_plugin.h @@ -21,10 +21,17 @@ #include #include +#ifdef MENUBAR_PLUGIN_IMPL +#define MENUBAR_PLUGIN_EXPORT __attribute__((visibility("default"))) +#else +#define MENUBAR_PLUGIN_EXPORT +#endif + namespace plugins_menubar { // A plugin to control a native menubar. -class MenubarPlugin : public flutter_desktop_embedding::Plugin { +class MENUBAR_PLUGIN_EXPORT MenubarPlugin + : public flutter_desktop_embedding::Plugin { public: static void RegisterWithRegistrar( flutter_desktop_embedding::PluginRegistrar *registrar); From ac369db338ebbf8e592d70bd7b627fcad9b4c998 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 7 Jan 2019 13:32:10 -0800 Subject: [PATCH 2/2] Replace the obsolete exports.def Uses the export macros instead. --- library/windows/GLFW Library.vcxproj | 11 +++++----- library/windows/GLFW Library.vcxproj.filters | 5 ----- library/windows/exports.def | 22 -------------------- 3 files changed, 6 insertions(+), 32 deletions(-) delete mode 100644 library/windows/exports.def diff --git a/library/windows/GLFW Library.vcxproj b/library/windows/GLFW Library.vcxproj index 1d5530036..f0dbd4f95 100644 --- a/library/windows/GLFW Library.vcxproj +++ b/library/windows/GLFW Library.vcxproj @@ -68,12 +68,14 @@ true true MultiThreadedDebugDLL + _WINDLL;FLUTTER_DESKTOP_EMBEDDING_IMPL;%(PreprocessorDefinitions) flutter_engine.dll.lib;glfw3.lib;opengl32.lib;%(AdditionalDependencies);json_vc71_libmtd.lib - exports.def + + $(OutDir)$(TargetName)$(TargetExt) $(OutDir)$(TargetName).lib $(OutDir)$(TargetName).pdb @@ -109,12 +111,14 @@ true true MultiThreadedDLL + _WINDLL;FLUTTER_DESKTOP_EMBEDDING_IMPL;%(PreprocessorDefinitions) true true flutter_engine.dll.lib;glfw3.lib;opengl32.lib;%(AdditionalDependencies);json_vc71_libmt.lib - exports.def + + $(OutDir)$(TargetName)$(TargetExt) $(OutDir)$(TargetName).lib $(OutDir)$(TargetName).pdb @@ -154,9 +158,6 @@ - - - diff --git a/library/windows/GLFW Library.vcxproj.filters b/library/windows/GLFW Library.vcxproj.filters index 76cf6e330..c0b1920c8 100644 --- a/library/windows/GLFW Library.vcxproj.filters +++ b/library/windows/GLFW Library.vcxproj.filters @@ -40,11 +40,6 @@ Source Files - - - Source Files - - Header Files diff --git a/library/windows/exports.def b/library/windows/exports.def deleted file mode 100644 index 4ba7cf9d3..000000000 --- a/library/windows/exports.def +++ /dev/null @@ -1,22 +0,0 @@ -; Copyright 2018 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. - -LIBRARY flutter_embedder - -EXPORTS - FlutterInit - FlutterTerminate - CreateFlutterWindow - CreateFlutterWindowInSnapshotMode - FlutterWindowLoop \ No newline at end of file