Index: ui/vector_icons/vector_icons.gni |
diff --git a/ui/vector_icons/vector_icons.gni b/ui/vector_icons/vector_icons.gni |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f22984d19ff32a7c8b95b85f070f9caaaaa0ce3b |
--- /dev/null |
+++ b/ui/vector_icons/vector_icons.gni |
@@ -0,0 +1,60 @@ |
+# Copyright 2017 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. |
+ |
+# Creates an action that aggregates vector icon files (.icon) into a C++ file. |
+# In addition to running the action, the outputs should be added to another |
+# target's sources for compilation. |
+# |
+# Parameters |
+# |
+# icons (required) |
+# A list of icon filenames to use as inputs. |
+# |
+# icon_directory (required) |
+# The path component of the location of the icons, relative to the current |
+# directory. For example, if the invoking BUILD file exists in //foo/bar |
+# and the icons are in //foo/bar/vector_icons/, then icon_directory should |
+# be set to "vector_icons". There must also be template files in this |
+# directory. |
+# |
+# Example |
+# |
+# See BUILD.gn in this directory (//ui/vector_icons/) for an example. |
+template("aggregate_vector_icons") { |
+ assert(defined(invoker.icons), |
+ "Need icons in $target_name listing the icon files.") |
+ assert( |
+ defined(invoker.icon_directory), |
+ "Need icon_directory in $target_name where the icons and templates live.") |
+ |
+ action(target_name) { |
+ visibility = [ ":*" ] |
+ |
+ script = "//ui/gfx/vector_icons/aggregate_vector_icons.py" |
+ |
+ output_cc = "$target_gen_dir/vector_icons.cc" |
+ output_h = "$target_gen_dir/vector_icons.h" |
+ |
+ templates = [ |
+ "vector_icons.cc.template", |
+ "vector_icons.h.template", |
+ ] |
+ inputs = rebase_path(templates + invoker.icons, ".", invoker.icon_directory) |
+ |
+ outputs = [ |
+ output_cc, |
+ output_h, |
+ ] |
+ |
+ response_file_contents = |
+ rebase_path(invoker.icons, root_build_dir, invoker.icon_directory) |
+ |
+ args = [ |
+ "--working_directory=" + rebase_path(invoker.icon_directory), |
+ "--file_list={{response_file_name}}", |
+ "--output_cc=" + rebase_path(output_cc, root_build_dir), |
+ "--output_h=" + rebase_path(output_h, root_build_dir), |
+ ] |
+ } |
+} |