| Index: services/catalog/public/tools/catalog.gni
|
| diff --git a/services/catalog/public/tools/catalog.gni b/services/catalog/public/tools/catalog.gni
|
| index ae112b4ad4f13857d5ff4a0ad7d7c088769ee3ac..67a5774442866e9b2c07fce063e768d2d7ba6940 100644
|
| --- a/services/catalog/public/tools/catalog.gni
|
| +++ b/services/catalog/public/tools/catalog.gni
|
| @@ -138,3 +138,58 @@ template("catalog") {
|
| }
|
| }
|
| }
|
| +
|
| +# Generates a source_set target which defines a single string contstant
|
| +# containing the contents of a compiled catalog manifest.
|
| +#
|
| +# Parameters:
|
| +#
|
| +# catalog
|
| +# The catalog target whose output should be stringified.
|
| +#
|
| +# output_symbol_name
|
| +# The fully qualified symbol name of the C++ string constant to define in
|
| +# the generate source_set.
|
| +#
|
| +template("catalog_cpp_source") {
|
| + assert(defined(invoker.catalog), "catalog is required")
|
| + assert(defined(invoker.output_symbol_name), "output_symbol_name is required")
|
| +
|
| + catalog_target = invoker.catalog
|
| + catalog_target_dir = get_label_info(catalog_target, "target_gen_dir")
|
| + catalog_target_name = get_label_info(catalog_target, "name")
|
| + catalog_filename = "$catalog_target_dir/${catalog_target_name}.json"
|
| +
|
| + generator_target_name = "${target_name}__generator"
|
| + generated_filename = "${target_gen_dir}/${target_name}.cc"
|
| +
|
| + action(generator_target_name) {
|
| + testonly = defined(invoker.testonly) && invoker.testonly
|
| + script = "//services/catalog/public/tools/sourcify_manifest.py"
|
| + inputs = [
|
| + catalog_filename,
|
| + ]
|
| + outputs = [
|
| + generated_filename,
|
| + ]
|
| + args = [
|
| + "--input=" + rebase_path(catalog_filename, root_build_dir),
|
| + "--output=" + rebase_path(generated_filename, root_build_dir),
|
| + "--symbol-name=" + invoker.output_symbol_name,
|
| + ]
|
| + if (is_debug || dcheck_always_on) {
|
| + args += [ "--pretty" ]
|
| + }
|
| + deps = [
|
| + catalog_target,
|
| + ]
|
| + }
|
| +
|
| + source_set(target_name) {
|
| + testonly = defined(invoker.testonly) && invoker.testonly
|
| + sources = get_target_outputs(":$generator_target_name")
|
| + deps = [
|
| + ":$generator_target_name",
|
| + ]
|
| + }
|
| +}
|
|
|