|  | #!/bin/bash | 
|  |  | 
|  | # Copyright 2024 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 | 
|  |  | 
|  | # Builds test artifacts using a provided "package build". | 
|  | # | 
|  | # * The package directory to use is passed as the first argument. | 
|  | # * Package builds can be obtained from the "iree-dist-*" native packages or | 
|  | #   CMake "install" directories. | 
|  | # | 
|  | # Tests considered in-scope for this script: | 
|  | #   * `runtime/` tests | 
|  | #   * `tests/`, `tools/`, `samples/`, etc. tests from other directories that | 
|  | #     use binaries from the CMake `IREE_HOST_BIN_DIR` option | 
|  | # | 
|  | # Tests considered out-of-scope for this script: | 
|  | #   * `compiler/` tests and others using the `IREE_BUILD_COMPILER` CMake option | 
|  |  | 
|  | ############################################################################### | 
|  | # Script setup                                                                # | 
|  | ############################################################################### | 
|  |  | 
|  | set -xeuo pipefail | 
|  |  | 
|  |  | 
|  | BINARY_DIR="$1" | 
|  | BUILD_DIR="${BUILD_DIR:-build-tests}" | 
|  |  | 
|  | source build_tools/scripts/install_lit.sh | 
|  |  | 
|  | # CPU drivers and tests are enabled by default. | 
|  | export IREE_CPU_DISABLE="${IREE_CPU_DISABLE:-0}" | 
|  | # GPU drivers and tests are disabled by default. | 
|  | export IREE_VULKAN_DISABLE="${IREE_VULKAN_DISABLE:-1}" | 
|  | export IREE_METAL_DISABLE="${IREE_METAL_DISABLE:-1}" | 
|  | export IREE_CUDA_ENABLE="${IREE_CUDA_ENABLE:-0}" | 
|  | export IREE_HIP_ENABLE="${IREE_HIP_ENABLE:-0}" | 
|  | export IREE_HIP_TEST_TARGET_CHIP="${IREE_HIP_TEST_TARGET_CHIP:-}" | 
|  |  | 
|  | # Set cmake options based on disabled features. | 
|  | declare -a cmake_config_options=() | 
|  | if (( IREE_CPU_DISABLE == 1 )); then | 
|  | cmake_config_options+=("-DIREE_HAL_DRIVER_LOCAL_SYNC=OFF") | 
|  | cmake_config_options+=("-DIREE_HAL_DRIVER_LOCAL_TASK=OFF") | 
|  | fi | 
|  | if (( IREE_VULKAN_DISABLE == 1 )); then | 
|  | cmake_config_options+=("-DIREE_HAL_DRIVER_VULKAN=OFF") | 
|  | fi | 
|  | if (( IREE_METAL_DISABLE == 1 )); then | 
|  | cmake_config_options+=("-DIREE_HAL_DRIVER_METAL=OFF") | 
|  | fi | 
|  | if (( IREE_CUDA_ENABLE == 1 )); then | 
|  | cmake_config_options+=("-DIREE_HAL_DRIVER_CUDA=ON") | 
|  | fi | 
|  | if (( IREE_HIP_ENABLE == 1 )); then | 
|  | cmake_config_options+=("-DIREE_HAL_DRIVER_HIP=ON") | 
|  | fi | 
|  | if [[ -n "${IREE_HIP_TEST_TARGET_CHIP}" ]]; then | 
|  | cmake_config_options+=("-DIREE_HIP_TEST_TARGET_CHIP=${IREE_HIP_TEST_TARGET_CHIP}") | 
|  | fi | 
|  |  | 
|  | ############################################################################### | 
|  | # Build the runtime and compile 'test deps'                                   # | 
|  | ############################################################################### | 
|  |  | 
|  | echo "::group::Configure" | 
|  | cmake_args=( | 
|  | "." | 
|  | "-G Ninja" | 
|  | "-B ${BUILD_DIR?}" | 
|  | "-DCMAKE_BUILD_TYPE=RelWithDebInfo" | 
|  | "-DIREE_BUILD_PYTHON_BINDINGS=OFF" | 
|  | "-DIREE_BUILD_COMPILER=OFF" | 
|  | "-DIREE_BUILD_ALL_CHECK_TEST_MODULES=OFF" | 
|  | "-DIREE_HOST_BIN_DIR=${BINARY_DIR?}" | 
|  | "-DLLVM_EXTERNAL_LIT=${LLVM_EXTERNAL_LIT?}" | 
|  | ) | 
|  | cmake_args+=(${cmake_config_options[@]}) | 
|  | cmake ${cmake_args[@]} | 
|  | echo "::endgroup::" | 
|  |  | 
|  | echo "::group::Build runtime targets" | 
|  | cmake --build ${BUILD_DIR?} | 
|  | echo "::endgroup::" | 
|  |  | 
|  | echo "::group::Build iree-test-deps" | 
|  | cmake --build ${BUILD_DIR?} --target iree-test-deps | 
|  | echo "::endgroup::" |