Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(978)

Unified Diff: tools/json_to_struct/json_to_struct.gni

Issue 393193002: Add search_engines and precache components to GN build. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/json_to_struct/json_to_struct.gni
diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni
new file mode 100644
index 0000000000000000000000000000000000000000..0ef5bd88835b998ca9a20b6163fb33aba5faaa54
--- /dev/null
+++ b/tools/json_to_struct/json_to_struct.gni
@@ -0,0 +1,62 @@
+# 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.
+
+# Converts a .json file to a C++ struct.
+#
+# Variables:
+#
+# source (required)
+# Single file name of source .json file.
+#
+# schema_file (required)
+# Single file name of the .json file that defines the schema.
+#
+# namespace (required)
+# Namespace name to put result in.
+#
+# visibility (optional)
+# Normal meaning.
+template("json_to_struct") {
+ assert(defined(invoker.source), "source required in $target_name")
+ assert(defined(invoker.schema_file), "schema_file required in $target_name")
+ assert(defined(invoker.namespace), "namespace required in $target_name")
+
+ action_name = target_name + "_action"
+ source_set_name = target_name
+
+ action(action_name) {
+ visibility = [ ":$source_set_name" ]
+ script = "//tools/json_to_struct/json_to_struct.py"
+
+ inputs = [
+ "//tools/json_to_struct/element_generator.py",
+ "//tools/json_to_struct/struct_generator.py",
+ invoker.source,
+ ]
+
+ out_dir = get_path_info(invoker.source, "gen_dir")
+ out_name = get_path_info(invoker.source, "name")
+ outputs = [
+ "$out_dir/$out_name.cc",
+ "$out_dir/$out_name.h",
+ ]
+
+ args = [
+ rebase_path(invoker.source, root_build_dir),
+ "--destbase=" + rebase_path(out_dir, root_build_dir),
+ "--namespace=" + invoker.namespace,
+ "--schema=" + rebase_path(invoker.schema_file, root_build_dir),
+ ]
+ }
+
+ source_set(source_set_name) {
+ if (defined(invoker.visibility)) {
+ visibility = invoker.visibility
+ }
+
+ sources = get_target_outputs(":$action_name")
+
+ deps = [ ":$action_name" ]
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698