Move configs out of targets in GN build files.

I'm trying to disallow this since it's confusing. It looks like it provides
scoping for the inner config, but it is actually no different than declaring
the config at the top level. For clarify, all configs and targets should be
declared at the top level.

R=jam@chromium.org

Review URL: https://codereview.chromium.org/1328443003 .
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",