diff --git a/BUILD.gn b/BUILD.gn
index 4320ddf..ee627d1 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -393,6 +393,15 @@
   ]
 }
 
+config("fxge_warnings") {
+  if (is_clang) {
+    cflags = [
+      # http://code.google.com/p/pdfium/issues/detail?id=188
+      "-Wno-switch",
+    ]
+  }
+}
+
 static_library("fxcrt") {
   sources = [
     "core/include/fxcrt/fx_basic.h",
@@ -504,14 +513,6 @@
     "core/src/fxge/ge/text_int.h",
   ]
 
-  config("fxge_warnings") {
-    if (is_clang) {
-      cflags = [
-        # http://code.google.com/p/pdfium/issues/detail?id=188
-        "-Wno-switch",
-      ]
-    }
-  }
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [
     ":pdfium_config",
diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
index 3d8bc77..21d3d5d 100644
--- a/third_party/BUILD.gn
+++ b/third_party/BUILD.gn
@@ -30,17 +30,18 @@
   ]
 }
 
+config("fx_freetype_warnings") {
+  visibility = [ ":*" ]
+  if (is_clang) {
+    # open_face_PS_from_sfnt_stream() and open_face_from_buffer() in
+    # ftbase.h are unused.
+    cflags = [ "-Wno-unused-function" ]
+  }
+}
+
 # Tests may link against this even if the production library doesn't,
 # so it needs to be separate from it.
 static_library("fx_freetype") {
-  config("fx_freetype_warnings") {
-    if (is_clang) {
-      # open_face_PS_from_sfnt_stream() and open_face_from_buffer() in
-      # ftbase.h are unused.
-      cflags = [ "-Wno-unused-function" ]
-    }
-  }
-
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [
     "//build/config/compiler:no_chromium_code",
@@ -81,13 +82,15 @@
   ]
 }
 
-source_set("fx_agg") {
-  config("fx_agg_warnings") {
-    if (is_clang) {
-      # calc_butt_cap() in agg_vcgen_stroke.cpp is unused.
-      cflags = [ "-Wno-unused-function" ]
-    }
+config("fx_agg_warnings") {
+  visibility = [ ":*" ]
+  if (is_clang) {
+    # calc_butt_cap() in agg_vcgen_stroke.cpp is unused.
+    cflags = [ "-Wno-unused-function" ]
   }
+}
+
+source_set("fx_agg") {
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [
     "//build/config/compiler:no_chromium_code",
@@ -113,18 +116,20 @@
   ]
 }
 
-source_set("fx_lcms2") {
-  config("fx_lcms2_warnings") {
-    if (is_clang) {
-      cflags = [
-        # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
-        # library doesn't appear to have this problem.
-        "-Wno-missing-braces",
-        # FindPrev() in cmsplugin.c is unused.
-        "-Wno-unused-function",
-      ]
-    }
+config("fx_lcms2_warnings") {
+  visibility = [ ":*" ]
+  if (is_clang) {
+    cflags = [
+      # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
+      # library doesn't appear to have this problem.
+      "-Wno-missing-braces",
+      # FindPrev() in cmsplugin.c is unused.
+      "-Wno-unused-function",
+    ]
   }
+}
+
+source_set("fx_lcms2") {
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [
     "//build/config/compiler:no_chromium_code",
