| # 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 | 
 |  | 
 | # iree_microbenchmark_suite() | 
 | # | 
 | # Generates microbenchmark suites for MLIR input modules. | 
 | # Parameters: | 
 | #   NAME: Name of target. | 
 | #   SRCS: Source files to compile into a bytecode module (list of strings). | 
 | #   FLAGS: Flags to pass to the compiler tool (list of strings). | 
 |  | 
 | function(iree_microbenchmark_suite) | 
 |   if(NOT IREE_BUILD_MICROBENCHMARKS) | 
 |     return() | 
 |   endif() | 
 |  | 
 |   cmake_parse_arguments( | 
 |     _RULE | 
 |     "" | 
 |     "NAME" | 
 |     "SRCS;FLAGS" | 
 |     ${ARGN} | 
 |   ) | 
 |  | 
 |   iree_package_name(PACKAGE_NAME) | 
 |  | 
 |   foreach(_SRC IN LISTS _RULE_SRCS) | 
 |     set(_COMPILE_TOOL "iree-compile") | 
 |     set(_TRANSLATE_SRC "${_SRC}") | 
 |     set(_MODULE_FILE_NAME "${_RULE_NAME}_${_SRC}.vmfb") | 
 |     set(_TARGET_NAME "${PACKAGE_NAME}_${_MODULE_FILE_NAME}") | 
 |     set(_ARGS "${_RULE_FLAGS}") | 
 |     get_filename_component(_TRANSLATE_SRC_PATH "${_TRANSLATE_SRC}" REALPATH) | 
 |     list(APPEND _ARGS "${_TRANSLATE_SRC_PATH}") | 
 |     list(APPEND _ARGS "-o") | 
 |     list(APPEND _ARGS "${_MODULE_FILE_NAME}") | 
 |  | 
 |     add_custom_command( | 
 |       OUTPUT | 
 |         "${_MODULE_FILE_NAME}" | 
 |       COMMAND | 
 |         ${_COMPILE_TOOL} | 
 |         ${_ARGS} | 
 |       DEPENDS | 
 |         ${_COMPILE_TOOL} | 
 |         ${_TRANSLATE_SRC} | 
 |       VERBATIM | 
 |     ) | 
 |     add_custom_target("${_TARGET_NAME}" | 
 |       DEPENDS | 
 |         "${_MODULE_FILE_NAME}" | 
 |     ) | 
 |     add_dependencies(iree-microbenchmark-suites "${_TARGET_NAME}") | 
 |   endforeach(_SRC IN LISTS _SRCS) | 
 | endfunction(iree_microbenchmark_suite) |