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

Unified Diff: ui/vector_icons/vector_icons.gni

Issue 2678913002: Add gn template for vector icon actions. (Closed)
Patch Set: docs Created 3 years, 10 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
« no previous file with comments | « components/toolbar/BUILD.gn ('k') | ui/views/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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),
+ ]
+ }
+}
« no previous file with comments | « components/toolbar/BUILD.gn ('k') | ui/views/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698