Gtk3 ui: Add libgtk3ui as a separate build component

This CL adds libgtk3ui.so to supplement libgtk2ui.so so that the
builders can build using gtk3 without having to link the chrome binary
against it (or link against any component that links against it).

The next step is to add the target libgtk3ui to gn_all.

BUG=132847
[email protected],[email protected], [email protected]
[email protected]
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2449243002
Cr-Commit-Position: refs/heads/master@{#427927}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 85d7dfd..3dac7ad1 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2237,8 +2237,11 @@
     ]
   }
   if (use_aura && !use_ozone && is_desktop_linux) {
-    deps += [ "//chrome/browser/ui/libgtk2ui" ]
-    allow_circular_includes_from += [ "//chrome/browser/ui/libgtk2ui" ]
+    if (use_gtk3) {
+      deps += [ "//chrome/browser/ui/libgtkui:libgtk3ui" ]
+    } else {
+      deps += [ "//chrome/browser/ui/libgtkui:libgtk2ui" ]
+    }
   }
   if (is_posix && !is_mac) {
     sources += [
@@ -2364,7 +2367,6 @@
       "themes/custom_theme_supplier.cc",
       "themes/custom_theme_supplier.h",
       "themes/theme_properties.cc",
-      "themes/theme_properties.h",
       "themes/theme_service.cc",
       "themes/theme_service.h",
       "themes/theme_service_factory.cc",
@@ -2373,6 +2375,7 @@
       "themes/theme_syncable_service.cc",
       "themes/theme_syncable_service.h",
     ]
+    deps += [ ":theme_properties" ]
   }
 
   if (enable_basic_printing || enable_print_preview) {
@@ -3975,6 +3978,12 @@
   }
 }
 
+source_set("theme_properties") {
+  sources = [
+    "themes/theme_properties.h",
+  ]
+}
+
 proto_library("resource_prefetch_predictor_proto") {
   sources = [
     "predictors/resource_prefetch_predictor.proto",