| # Copyright 2015 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. |
| |
| template("embed_file") { |
| assert(defined(invoker.variable)) |
| assert(defined(invoker.source)) |
| assert(defined(invoker.namespace)) |
| |
| variable = invoker.variable |
| generator_target_name = "__${target_name}_generator" |
| generator_outputs = [ |
| "${target_gen_dir}/${variable}.cc", |
| "${target_gen_dir}/${variable}.h", |
| ] |
| |
| action(generator_target_name) { |
| script = "//mojo/tools/embed/embed_data.py" |
| sources = [ |
| invoker.source, |
| ] |
| outputs = generator_outputs |
| args = [ |
| rebase_path(invoker.source), |
| rebase_path(target_gen_dir), |
| invoker.namespace, |
| variable, |
| ] |
| |
| if (defined(invoker.testonly)) { |
| testonly = invoker.testonly |
| } |
| if (defined(invoker.deps)) { |
| deps = invoker.deps |
| } |
| } |
| |
| config_target_name = "__${target_name}_config" |
| config(config_target_name) { |
| cflags = [ "-Wno-narrowing" ] |
| } |
| |
| source_set(target_name) { |
| sources = generator_outputs |
| |
| if (defined(invoker.testonly)) { |
| testonly = invoker.testonly |
| } |
| |
| configs += [ ":${config_target_name}" ] |
| |
| deps = [ |
| ":${generator_target_name}", |
| ] |
| } |
| } |