| #!/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::" |