Add more GN deps to the build.

These deps are some of those required to compile chrome/browser (so mostly those containing resources and protobufs that have generated headers). chrome/browser still has some dependencies left.

Add third_party libs libaddressinput and dom_distiller_js.

Add components dom_distiller and policy.

Separate the generate_library_loader into a separate .gni file.

Rename components_strings to just strings.

R=ajwong@chromium.org

Review URL: https://codereview.chromium.org/362583002

Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 797b25046f036852b50520205064094bd9798c99
diff --git a/generate_library_loader.gni b/generate_library_loader.gni
new file mode 100644
index 0000000..5246aef
--- /dev/null
+++ b/generate_library_loader.gni
@@ -0,0 +1,54 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This template makes a stub for a Linux system library that dynamically loads
+# it at runtime.
+
+# name: Name to use for the value of the --name arg.
+# output_h/output_cc: Names for the generated header/cc file with no dir.
+# header: header file to process. Example: "<foo/bar.h>"
+# functions: List of strings for functions to process.
+# config: (optional) Label of the config generated by pkgconfig.
+# bundled_header: (optional)
+template("generate_library_loader") {
+  output_h = "$root_gen_dir/library_loaders/" + invoker.output_h
+  output_cc = "$root_gen_dir/library_loaders/" + invoker.output_cc
+
+  action_visibility = ":$target_name"
+  action("${target_name}_loader") {
+    visibility = action_visibility
+
+    script = "//tools/generate_library_loader/generate_library_loader.py"
+    if (defined(invoker.visibility)) {
+      visibility = invoker.visibility
+    }
+
+    outputs = [ output_h, output_cc ]
+
+    args = [
+      "--name", invoker.name,
+      "--output-h", rebase_path(output_h),
+      "--output-cc", rebase_path(output_cc),
+      "--header", invoker.header,
+      # Note GYP build exposes a per-target variable to control this, which, if
+      # manually set to true, will disable dlopen(). Its not clear this is
+      # needed, so here we just leave off. If this can be done globally, we can
+      # expose one switch for this value, otherwise we need to add a template
+      # param for this.
+      "--link-directly=0",
+    ]
+    if (defined(invoker.bundled_header)) {
+      args += [ "--bundled-header", invoker.bundled_header ]
+    }
+    args += invoker.functions
+  }
+
+  source_set(target_name) {
+    if (defined(invoker.config)) {
+      direct_dependent_configs = [ invoker.config ]
+    }
+    sources = [ output_h, output_cc ]
+    deps = [ ":${target_name}_loader" ]
+  }
+}