blob: 2356010e118f65019297d9ea827bac9cf370bbee [file] [log] [blame]
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# GN template to generate static library for the given yacc files.
# How to use:
# [platform2/pkg/BUILD.gn]
# generate_flex_parser("foo_flex_parser") {
# out_dir = "${platform2_root}"
# sources = [
# "foo.ll",
# "bar.ll",
# ]
# }
#
# Then this generates the binding source code under ${root_gen_dir},.
# E.g. ${root_gen_dir}/${out_dir}/foo.cc, ${root_gen_dir}/${out_dir}/bar.cc etc.
#
# Parameters:
# out_dir
# The output source code and headers' path.
# sources
# The .ll / .l file paths.
#
template("generate_flex_parser") {
h_dir = "${root_gen_dir}/" + invoker.out_dir
action_foreach(target_name) {
sources = invoker.sources
script = "//common-mk/file_generator_wrapper.py"
outputs = [ "${h_dir}/{{source_name_part}}.cc" ]
args = [
"flex",
"-o",
"${h_dir}/{{source_name_part}}.cc",
"{{source}}",
]
}
}