# Copyright 2023 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/python.gni") # Generates a C++ header file that contains a list of values under a specific # variant or enum. The list can be used for ensuring that values in C++ are in # sync with the histogram file. The header file provides a function to check if # a value in is the list. # # Parameters: # input_xml_file: Input file that contains the allow list. This should be a # .xml file under path //tools/metrics/histograms/ or its subfolders. # # namespace: # C++ namespace in which the generated code should be scoped. # # tag: # XML tag that contains the values. Should be either "variant" or "enum". # # allow_list_name: # Name of the variant or enum list in the histogram file. # # output_file: # Name of the generated file to be used for checking if a value exists in the list. # template("generate_allowlist_from_histograms_file") { action_with_pydeps(target_name) { output_file = "$target_gen_dir/" + invoker.output_file script = "//tools/metrics/histograms/generate_allowlist_from_histograms_file.py" outputs = [ output_file ] sources = [ invoker.input_xml_file ] args = [ "--allow_list_name=" + invoker.allow_list_name, "--namespace=" + invoker.namespace, "--tag=" + invoker.tag, "--output_dir=" + rebase_path(root_gen_dir, root_build_dir), "--file=" + rebase_path(output_file, root_gen_dir), "--input=" + rebase_path(invoker.input_xml_file, root_build_dir), ] } }