1template("gen_decision_forest") { 2 model = invoker.model 3 filename = invoker.filename 4 cpp_class = invoker.cpp_class 5 if (defined(invoker.deps)) { 6 extra_deps = invoker.deps 7 } else { 8 extra_deps = [] 9 } 10 11 action("${target_name}Cpp") { 12 script = "//clang-tools-extra/clangd/quality/CompletionModelCodegen.py" 13 outputs = [ 14 "$target_gen_dir/$filename.cpp", 15 "$target_gen_dir/$filename.h", 16 ] 17 inputs = [ 18 "$model/features.json", 19 "$model/forest.json", 20 ] 21 args = [ 22 "--model", 23 rebase_path(model, root_build_dir), 24 "--output_dir", 25 rebase_path(target_gen_dir, root_build_dir), 26 "--filename", 27 filename, 28 "--cpp_class", 29 cpp_class, 30 ] 31 } 32 33 config("${target_name}Config") { 34 cflags = [ "-Wno-unused-label" ] 35 } 36 37 source_set(target_name) { 38 configs += [ 39 "//llvm/utils/gn/build:clang_code", 40 ":${target_name}Config", 41 ] 42 deps = [ ":${target_name}Cpp" ] + extra_deps 43 include_dirs = [ "." ] 44 sources = get_target_outputs(":${target_name}Cpp") 45 } 46} 47