xref: /aosp_15_r20/external/openscreen/build/config/data_headers_template.gni (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Copyright 2020 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard# found in the LICENSE file.
4*3f982cf4SFabien Sanglard
5*3f982cf4SFabien Sanglard# This template takes an input list of files, and copies their contents
6*3f982cf4SFabien Sanglard# into C++ header files as constexpr char[] raw strings with variable names
7*3f982cf4SFabien Sanglard# taken directly from the original file name.
8*3f982cf4SFabien Sanglard
9*3f982cf4SFabien Sanglard# The root directory must be defined outside of the template for use while
10*3f982cf4SFabien Sanglard# embedded.
11*3f982cf4SFabien Sanglardopenscreen_root = rebase_path("../../", "//")
12*3f982cf4SFabien Sanglard
13*3f982cf4SFabien Sanglardtemplate("data_headers") {
14*3f982cf4SFabien Sanglard  action_foreach(target_name) {
15*3f982cf4SFabien Sanglard    forward_variables_from(invoker,
16*3f982cf4SFabien Sanglard                           [
17*3f982cf4SFabien Sanglard                             "namespace",
18*3f982cf4SFabien Sanglard                             "sources",
19*3f982cf4SFabien Sanglard                             "testonly",
20*3f982cf4SFabien Sanglard                           ])
21*3f982cf4SFabien Sanglard    script = "//${openscreen_root}/tools/convert_to_data_file.py"
22*3f982cf4SFabien Sanglard    outputs = [ "{{source_gen_dir}}/{{source_name_part}}_data.h" ]
23*3f982cf4SFabien Sanglard    args = [
24*3f982cf4SFabien Sanglard      namespace,
25*3f982cf4SFabien Sanglard      "{{source}}",
26*3f982cf4SFabien Sanglard      "{{source_gen_dir}}/{{source_name_part}}_data.h",
27*3f982cf4SFabien Sanglard    ]
28*3f982cf4SFabien Sanglard  }
29*3f982cf4SFabien Sanglard}
30