| # Copyright 2017 The Chromium Authors |
| # 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 |
| # |
| # sources (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 (//components/vector_icons/) for an example. |
| template("aggregate_vector_icons") { |
| assert(defined(invoker.sources), |
| "Need sources in $target_name listing the icon files.") |
| assert( |
| defined(invoker.icon_directory), |
| "Need icon_directory in $target_name where the icons and templates live.") |
| |
| public_deps = [ "//base" ] |
| |
| action(target_name) { |
| visibility = [ ":*" ] |
| |
| script = "//components/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.sources, ".", invoker.icon_directory) + |
| [ "//components/vector_icons/aggregate_vector_icons.py" ] |
| |
| outputs = [ |
| output_cc, |
| output_h, |
| ] |
| |
| response_file_contents = |
| rebase_path(invoker.sources, root_build_dir, invoker.icon_directory) |
| |
| args = [ |
| "--working_directory=" + |
| rebase_path(invoker.icon_directory, root_build_dir), |
| "--file_list={{response_file_name}}", |
| "--output_cc=" + rebase_path(output_cc, root_build_dir), |
| "--output_h=" + rebase_path(output_h, root_build_dir), |
| ] |
| } |
| } |