blob: 65fc2440efbb25e3bc00c908e56544a806a0a89e [file]
#!/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 build the benchmark suites."""
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"))
from e2e_test_artifacts.cmake_generator import rule_generator
import e2e_test_artifacts.artifacts
TEMPLATE_DIR = pathlib.Path(__file__).parent
GENERATED_BENCHMARK_SUITES_CMAKE_TEMPLATE = string.Template(
(TEMPLATE_DIR /
"iree_generated_benchmark_suites_template.cmake").read_text())
# CMake variable name to store IREE package name.
PACKAGE_NAME_CMAKE_VARIABLE = "_PACKAGE_NAME"
ROOT_ARTIFACTS_DIR_CMAKE_VARIABLE = "_ROOT_ARTIFACTS_DIR"
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):
artifacts_root = (
e2e_test_artifacts.artifacts.generate_default_artifacts_root())
cmake_rules = rule_generator.generate_rules(
package_name=f"${{{PACKAGE_NAME_CMAKE_VARIABLE}}}",
root_path=pathlib.PurePath(f"${{{ROOT_ARTIFACTS_DIR_CMAKE_VARIABLE}}}"),
artifacts_root=artifacts_root)
cmake_file = GENERATED_BENCHMARK_SUITES_CMAKE_TEMPLATE.substitute(
__ROOT_ARTIFACTS_DIR_VARIABLE=ROOT_ARTIFACTS_DIR_CMAKE_VARIABLE,
__PACKAGE_NAME_VARIABLE=PACKAGE_NAME_CMAKE_VARIABLE,
__BENCHMARK_RULES='\n'.join(cmake_rules))
with open(args.output, "w") as output_file:
output_file.write(cmake_file)
if __name__ == "__main__":
main(parse_arguments())