blob: 9477eec56b2ad731e1deb93da9491649554b98d4 [file] [log] [blame]
#!/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::"