diff --git a/BUILD.gn b/BUILD.gn
index 0af3417..8621775 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -28,6 +28,7 @@
 
 config("freetype_config") {
   include_dirs = [
+    "include/freetype-flutter-config",
     "include",
   ]
 
@@ -40,14 +41,6 @@
     ]
   }
 }
-
-#TODO(mikejurka): Remove once we've migrated to the freetype2 target everywhere
-group("freetype") {
-  public_deps = [
-    ":freetype2",
-  ]
-}
-
 target(default_library_type, "freetype2") {
   sources = [
     "src/autofit/autofit.c",
@@ -84,18 +77,8 @@
     # Long directory name to avoid accidentally using wrong headers.
     "FT_CONFIG_MODULES_H=<freetype-flutter-config/ftmodule.h>",
     "FT_CONFIG_OPTIONS_H=<freetype-flutter-config/ftoption.h>",
-    # Reduce visibility of symbols.
-    # "FT_PUBLIC_FUNCTION_ATTRIBUTE=",
   ]
 
-  if (default_library_type == "shared_library") {
-    defines += [
-      "FT_EXPORT(x)=extern __attribute__(( visibility( \"default\" ) )) x",
-      "FT_EXPORT_DEF(x)=extern __attribute__(( visibility( \"default\" ) )) x",
-      "FT_EXPORT_VAR(x)=extern __attribute__(( visibility( \"default\" ) )) x",
-    ]
-  }
-
   public_configs = [ ":freetype_config" ]
 
   deps = [
diff --git a/include/freetype-flutter-config/freetype/config/public-macros.h b/include/freetype-flutter-config/freetype/config/public-macros.h
new file mode 100644
index 0000000..aba90ee
--- /dev/null
+++ b/include/freetype-flutter-config/freetype/config/public-macros.h
@@ -0,0 +1,105 @@
+/****************************************************************************
+ *
+ * config/public-macros.h
+ *
+ *   Define a set of compiler macros used in public FreeType headers.
+ *
+ * Copyright (C) 2020-2022 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * This file is part of the FreeType project, and may only be used,
+ * modified, and distributed under the terms of the FreeType project
+ * license, LICENSE.TXT.  By continuing to use, modify, or distribute
+ * this file you indicate that you have read the license and
+ * understand and accept it fully.
+ *
+ */
+
+  /*
+   * The definitions in this file are used by the public FreeType headers
+   * and thus should be considered part of the public API.
+   *
+   * Other compiler-specific macro definitions that are not exposed by the
+   * FreeType API should go into
+   * `include/freetype/internal/compiler-macros.h` instead.
+   */
+#ifndef FREETYPE_CONFIG_PUBLIC_MACROS_H_
+#define FREETYPE_CONFIG_PUBLIC_MACROS_H_
+
+  /*
+   * `FT_BEGIN_HEADER` and `FT_END_HEADER` might have already been defined
+   * by `freetype/config/ftheader.h`, but we don't want to include this
+   * header here, so redefine the macros here only when needed.  Their
+   * definition is very stable, so keeping them in sync with the ones in the
+   * header should not be a maintenance issue.
+   */
+#ifndef FT_BEGIN_HEADER
+#ifdef __cplusplus
+#define FT_BEGIN_HEADER  extern "C" {
+#else
+#define FT_BEGIN_HEADER  /* empty */
+#endif
+#endif  /* FT_BEGIN_HEADER */
+
+#ifndef FT_END_HEADER
+#ifdef __cplusplus
+#define FT_END_HEADER  }
+#else
+#define FT_END_HEADER  /* empty */
+#endif
+#endif  /* FT_END_HEADER */
+
+// Do not export FreeType APIs when building Flutter.
+#define FT_PUBLIC_FUNCTION_ATTRIBUTE
+
+FT_BEGIN_HEADER
+
+  /*
+   * Define a public FreeType API function.  This ensures it is properly
+   * exported or imported at build time.  The macro parameter is the
+   * function's return type as in:
+   *
+   *   FT_EXPORT( FT_Bool )
+   *   FT_Object_Method( FT_Object  obj,
+   *                     ... );
+   *
+   * NOTE: This requires that all `FT_EXPORT` uses are inside
+   * `FT_BEGIN_HEADER ... FT_END_HEADER` blocks.  This guarantees that the
+   * functions are exported with C linkage, even when the header is included
+   * by a C++ source file.
+   */
+#define FT_EXPORT( x )  FT_PUBLIC_FUNCTION_ATTRIBUTE extern x
+
+
+  /*
+   * `FT_UNUSED` indicates that a given parameter is not used -- this is
+   * only used to get rid of unpleasant compiler warnings.
+   *
+   * Technically, this was not meant to be part of the public API, but some
+   * third-party code depends on it.
+   */
+#ifndef FT_UNUSED
+#define FT_UNUSED( arg )  ( (arg) = (arg) )
+#endif
+
+
+  /*
+   * Support for casts in both C and C++.
+   */
+#ifdef __cplusplus
+#define FT_STATIC_CAST( type, var )       static_cast<type>(var)
+#define FT_REINTERPRET_CAST( type, var )  reinterpret_cast<type>(var)
+
+#define FT_STATIC_BYTE_CAST( type, var )                         \
+          static_cast<type>( static_cast<unsigned char>( var ) )
+#else
+#define FT_STATIC_CAST( type, var )       (type)(var)
+#define FT_REINTERPRET_CAST( type, var )  (type)(var)
+
+#define FT_STATIC_BYTE_CAST( type, var )  (type)(unsigned char)(var)
+#endif
+
+
+FT_END_HEADER
+
+#endif  /* FREETYPE_CONFIG_PUBLIC_MACROS_H_ */
