#!/bin/bash
CURRENT_DIR=$(pwd)
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
PROJECT_ROOT=$( dirname $( dirname $(dirname "$SCRIPT_DIR")))
source "${PROJECT_ROOT}/examples/utils/setup.sh" || {
echo "[ERROR] Running setup.sh in ${PROJECT_ROOT}/examples/utils failed."
exit 1
}
SOURCE_DIR=$PROJECT_ROOT
BUILD_DIR=$PROJECT_ROOT/build
if ! command -v python3 >/dev/null 2>&1; then
echo "[ERROR] python3 is required but not found in PATH"
exit 1
fi
if ! command -v cmake >/dev/null 2>&1; then
echo "[ERROR] cmake is required but not found in PATH"
exit 1
fi
TORCH_PREFIX_PATH="$(python3 -c 'import torch; print(torch.utils.cmake_prefix_path)')"
echo "Using TORCH_PREFIX_PATH=${TORCH_PREFIX_PATH}"
mkdir -p $BUILD_DIR
cmake -B $BUILD_DIR -S $SOURCE_DIR \
-DCATCCOS_TORCH_EXTENSION=ON \
-DCMAKE_PREFIX_PATH="${TORCH_PREFIX_PATH}" \
-DPython3_EXECUTABLE=$(which python3)
echo "== Build target allgather_matmul =="
cmake --build $BUILD_DIR --target allgather_matmul_kernel_build catccos_torch -j