# Copyright 2020 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 takes an input list of files, and copies their contents
# into C++ header files as constexpr char[] raw strings with variable names
# taken directly from the original file name.

template("data_headers") {
  action_foreach(target_name) {
    forward_variables_from(invoker,
                           [
                             "namespace",
                             "sources",
                             "testonly",
                           ])
    script = "../../tools/convert_to_data_file.py"
    outputs = [ "{{source_gen_dir}}/{{source_name_part}}_data.h" ]
    args = [
      namespace,
      "{{source}}",
      "{{source_gen_dir}}/{{source_name_part}}_data.h",
    ]
  }
}
