diff --git a/.github/workflows/build-reusable.yml b/.github/workflows/build-reusable.yml index 3649ccc..cb1b20e 100644 --- a/.github/workflows/build-reusable.yml +++ b/.github/workflows/build-reusable.yml @@ -112,25 +112,8 @@ jobs: - name: Install system dependencies (macOS) if: runner.os == 'macOS' run: | - # Update brew first to ensure we get latest packages - brew update || true - - # Install libomp first and verify installation - echo "🍺 Installing libomp..." - brew install libomp - - # Verify libomp installation - HOMEBREW_PREFIX=$(brew --prefix) - echo "🔍 Verifying libomp installation at ${HOMEBREW_PREFIX}/opt/libomp" - ls -la ${HOMEBREW_PREFIX}/opt/libomp/lib/libomp.dylib || { - echo "❌ libomp.dylib not found, trying to reinstall..." - brew uninstall libomp || true - brew install libomp - } - - # Install other dependencies - echo "🍺 Installing other dependencies..." - brew install boost protobuf zeromq + # Don't install LLVM, use system clang for better compatibility + brew install libomp boost protobuf zeromq - name: Install build dependencies run: | @@ -147,22 +130,10 @@ jobs: # Use brew --prefix to automatically detect Homebrew installation path HOMEBREW_PREFIX=$(brew --prefix) echo "HOMEBREW_PREFIX=${HOMEBREW_PREFIX}" >> $GITHUB_ENV - - # Debug: Check if libomp is properly installed - echo "🔍 Checking libomp installation:" - ls -la ${HOMEBREW_PREFIX}/opt/libomp/lib/ || echo "libomp lib directory not found" - ls -la ${HOMEBREW_PREFIX}/opt/libomp/include/ || echo "libomp include directory not found" - - # Set OpenMP environment variables echo "OpenMP_ROOT=${HOMEBREW_PREFIX}/opt/libomp" >> $GITHUB_ENV - echo "OpenMP_C_FLAGS=-Xpreprocessor -fopenmp -I${HOMEBREW_PREFIX}/opt/libomp/include" >> $GITHUB_ENV - echo "OpenMP_CXX_FLAGS=-Xpreprocessor -fopenmp -I${HOMEBREW_PREFIX}/opt/libomp/include" >> $GITHUB_ENV - echo "OpenMP_C_LIB_NAMES=omp" >> $GITHUB_ENV - echo "OpenMP_CXX_LIB_NAMES=omp" >> $GITHUB_ENV - echo "OpenMP_omp_LIBRARY=${HOMEBREW_PREFIX}/opt/libomp/lib/libomp.dylib" >> $GITHUB_ENV # Set CMAKE_PREFIX_PATH to let CMake find all packages automatically - echo "CMAKE_PREFIX_PATH=${HOMEBREW_PREFIX}:${HOMEBREW_PREFIX}/opt/libomp" >> $GITHUB_ENV + echo "CMAKE_PREFIX_PATH=${HOMEBREW_PREFIX}" >> $GITHUB_ENV # Set compiler flags for OpenMP (required for both backends) echo "LDFLAGS=-L${HOMEBREW_PREFIX}/opt/libomp/lib" >> $GITHUB_ENV @@ -170,7 +141,7 @@ jobs: - name: Build packages run: | - # Build core (platform independent) on all platforms for consistency + # Build core (platform independent) cd packages/leann-core uv build cd ../.. @@ -194,22 +165,15 @@ jobs: # Use system clang for better compatibility export CC=clang export CXX=clang++ - # sgesdd_ is only available on macOS 13.3+ + # DiskANN requires macOS 13.3+ for sgesdd_ LAPACK function export MACOSX_DEPLOYMENT_TARGET=13.3 - - # Ensure OpenMP is found during build - HOMEBREW_PREFIX=$(brew --prefix) - export OpenMP_ROOT=${HOMEBREW_PREFIX}/opt/libomp - export LDFLAGS="-L${HOMEBREW_PREFIX}/opt/libomp/lib ${LDFLAGS}" - export CPPFLAGS="-I${HOMEBREW_PREFIX}/opt/libomp/include ${CPPFLAGS}" - uv build --wheel --python ${{ matrix.python }} --find-links ${GITHUB_WORKSPACE}/packages/leann-core/dist else uv build --wheel --python ${{ matrix.python }} --find-links ${GITHUB_WORKSPACE}/packages/leann-core/dist fi cd ../.. - # Build meta package (platform independent) on all platforms + # Build meta package (platform independent) cd packages/leann uv build cd ../..