template("gen_decision_forest") {
model = invoker.model
filename = invoker.filename
cpp_class = invoker.cpp_class
if (defined(invoker.deps)) {
extra_deps = invoker.deps
} else {
extra_deps = []
}
action("${target_name}Cpp") {
script = "//clang-tools-extra/clangd/quality/CompletionModelCodegen.py"
outputs = [
"$target_gen_dir/$filename.cpp",
"$target_gen_dir/$filename.h",
]
inputs = [
"$model/features.json",
"$model/forest.json",
]
args = [
"--model",
rebase_path(model, root_build_dir),
"--output_dir",
rebase_path(target_gen_dir, root_build_dir),
"--filename",
filename,
"--cpp_class",
cpp_class,
]
}
config("${target_name}Config") {
cflags = [ "-Wno-unused-label" ]
}
source_set(target_name) {
configs += [
"//llvm/utils/gn/build:clang_code",
":${target_name}Config",
]
deps = [ ":${target_name}Cpp" ] + extra_deps
include_dirs = [ "." ]
sources = get_target_outputs(":${target_name}Cpp")
}
}