|  | #!/usr/bin/env python3 | 
|  | ## Copyright 2022 The IREE Authors | 
|  | # | 
|  | # Licensed under the Apache License v2.0 with LLVM Exceptions. | 
|  | # See https://llvm.org/LICENSE.txt for license information. | 
|  | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | """Generates a CMake file to define e2e mdoel tests.""" | 
|  |  | 
|  | import string | 
|  | import sys | 
|  | import pathlib | 
|  | import argparse | 
|  |  | 
|  | # Add build_tools python dir to the search path. | 
|  | sys.path.insert(0, str(pathlib.Path(__file__).parent / ".." / "python")) | 
|  |  | 
|  | import benchmark_suites.iree.benchmark_collections | 
|  | import e2e_model_tests.cmake_generator | 
|  |  | 
|  | TEMPLATE_DIR = pathlib.Path(__file__).parent | 
|  | GENERATED_E2E_MODEL_TESTS_CMAKE_TEMPLATE = string.Template( | 
|  | (TEMPLATE_DIR / "generated_e2e_model_tests_template.cmake").read_text() | 
|  | ) | 
|  |  | 
|  |  | 
|  | def parse_arguments(): | 
|  | """Parses command-line options.""" | 
|  |  | 
|  | parser = argparse.ArgumentParser() | 
|  | parser.add_argument( | 
|  | "--output", required=True, help="Path to write the generated cmake file." | 
|  | ) | 
|  |  | 
|  | return parser.parse_args() | 
|  |  | 
|  |  | 
|  | def main(args: argparse.Namespace): | 
|  | (gen_configs, _) = benchmark_suites.iree.benchmark_collections.generate_benchmarks() | 
|  | cmake_rules = e2e_model_tests.cmake_generator.generate_rules( | 
|  | module_generation_configs=gen_configs | 
|  | ) | 
|  | output = GENERATED_E2E_MODEL_TESTS_CMAKE_TEMPLATE.substitute( | 
|  | __TEST_RULES="\n".join(cmake_rules) | 
|  | ) | 
|  | with open(args.output, "w") as output_file: | 
|  | output_file.write(output) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | main(parse_arguments()) |