88 lines
2.5 KiB
Bash
Executable File
88 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Manual build and test script for local testing
|
|
|
|
PACKAGE=${1:-"all"} # Default to all packages
|
|
|
|
echo "Building package: $PACKAGE"
|
|
|
|
# Ensure we're in a virtual environment
|
|
if [ -z "$VIRTUAL_ENV" ]; then
|
|
echo "Error: Please activate a virtual environment first"
|
|
echo "Run: source .venv/bin/activate (or .venv/bin/activate.fish for fish shell)"
|
|
exit 1
|
|
fi
|
|
|
|
# Install build tools
|
|
uv pip install build twine delocate auditwheel scikit-build-core cmake pybind11 numpy
|
|
|
|
build_package() {
|
|
local package_dir=$1
|
|
local package_name=$(basename $package_dir)
|
|
|
|
echo "Building $package_name..."
|
|
cd $package_dir
|
|
|
|
# Clean previous builds
|
|
rm -rf dist/ build/ _skbuild/
|
|
|
|
# Build directly with pip wheel (avoids sdist issues)
|
|
pip wheel . --no-deps -w dist
|
|
|
|
# Repair wheel for binary packages
|
|
if [[ "$package_name" != "leann-core" ]] && [[ "$package_name" != "leann" ]]; then
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# For macOS
|
|
for wheel in dist/*.whl; do
|
|
if [[ -f "$wheel" ]]; then
|
|
delocate-wheel -w dist_repaired -v "$wheel"
|
|
fi
|
|
done
|
|
if [[ -d dist_repaired ]]; then
|
|
rm -rf dist/*.whl
|
|
mv dist_repaired/*.whl dist/
|
|
rmdir dist_repaired
|
|
fi
|
|
else
|
|
# For Linux
|
|
for wheel in dist/*.whl; do
|
|
if [[ -f "$wheel" ]]; then
|
|
auditwheel repair "$wheel" -w dist_repaired
|
|
fi
|
|
done
|
|
if [[ -d dist_repaired ]]; then
|
|
rm -rf dist/*.whl
|
|
mv dist_repaired/*.whl dist/
|
|
rmdir dist_repaired
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echo "Built wheels in $package_dir/dist/"
|
|
ls -la dist/
|
|
cd - > /dev/null
|
|
}
|
|
|
|
# Build specific package or all
|
|
if [ "$PACKAGE" == "diskann" ]; then
|
|
build_package "packages/leann-backend-diskann"
|
|
elif [ "$PACKAGE" == "hnsw" ]; then
|
|
build_package "packages/leann-backend-hnsw"
|
|
elif [ "$PACKAGE" == "core" ]; then
|
|
build_package "packages/leann-core"
|
|
elif [ "$PACKAGE" == "meta" ]; then
|
|
build_package "packages/leann"
|
|
elif [ "$PACKAGE" == "all" ]; then
|
|
build_package "packages/leann-core"
|
|
build_package "packages/leann-backend-hnsw"
|
|
build_package "packages/leann-backend-diskann"
|
|
build_package "packages/leann"
|
|
else
|
|
echo "Unknown package: $PACKAGE"
|
|
echo "Usage: $0 [diskann|hnsw|core|meta|all]"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "\nBuild complete! Test with:"
|
|
echo "uv pip install packages/*/dist/*.whl"
|