diff --git a/.github/workflows/build-cibuildwheel.yml b/.github/workflows/build-cibuildwheel.yml index d5d44d3..5ab4210 100644 --- a/.github/workflows/build-cibuildwheel.yml +++ b/.github/workflows/build-cibuildwheel.yml @@ -122,11 +122,11 @@ jobs: # Linux-specific environment variables CIBW_ENVIRONMENT_LINUX: | CMAKE_BUILD_PARALLEL_LEVEL=8 + CMAKE_PREFIX_PATH=$VIRTUAL_ENV Python_FIND_VIRTUALENV=ONLY Python3_FIND_VIRTUALENV=ONLY Python_FIND_STRATEGY=LOCATION Python3_FIND_STRATEGY=LOCATION - CMAKE_PREFIX_PATH=$VIRTUAL_ENV Python_EXECUTABLE=$VIRTUAL_ENV/bin/python Python3_EXECUTABLE=$VIRTUAL_ENV/bin/python diff --git a/packages/leann-backend-hnsw/CMakeLists.txt b/packages/leann-backend-hnsw/CMakeLists.txt index befd2b9..940fa9e 100644 --- a/packages/leann-backend-hnsw/CMakeLists.txt +++ b/packages/leann-backend-hnsw/CMakeLists.txt @@ -30,8 +30,34 @@ if(DEFINED SKBUILD) # scikit-build-core provides Python information endif() +# Find Python - scikit-build-core should provide this +find_package(Python REQUIRED COMPONENTS Interpreter Development.Module NumPy) + +# Print Python information for debugging +message(STATUS "Python_FOUND: ${Python_FOUND}") +message(STATUS "Python_VERSION: ${Python_VERSION}") +message(STATUS "Python_EXECUTABLE: ${Python_EXECUTABLE}") +message(STATUS "Python_INCLUDE_DIRS: ${Python_INCLUDE_DIRS}") +message(STATUS "Python_NumPy_INCLUDE_DIRS: ${Python_NumPy_INCLUDE_DIRS}") + +# Pass Python information to faiss through cache variables +set(Python_EXECUTABLE ${Python_EXECUTABLE} CACHE FILEPATH "Python executable" FORCE) +set(Python_INCLUDE_DIRS ${Python_INCLUDE_DIRS} CACHE PATH "Python include dirs" FORCE) +set(Python_NumPy_INCLUDE_DIRS ${Python_NumPy_INCLUDE_DIRS} CACHE PATH "NumPy include dirs" FORCE) +set(Python_VERSION ${Python_VERSION} CACHE STRING "Python version" FORCE) +set(Python_FOUND ${Python_FOUND} CACHE BOOL "Python found" FORCE) + +# Also set Python3 variables for compatibility +set(Python3_EXECUTABLE ${Python_EXECUTABLE} CACHE FILEPATH "Python3 executable" FORCE) +set(Python3_INCLUDE_DIRS ${Python_INCLUDE_DIRS} CACHE PATH "Python3 include dirs" FORCE) +set(Python3_NumPy_INCLUDE_DIRS ${Python_NumPy_INCLUDE_DIRS} CACHE PATH "NumPy include dirs" FORCE) +set(Python3_VERSION ${Python_VERSION} CACHE STRING "Python3 version" FORCE) +set(Python3_FOUND ${Python_FOUND} CACHE BOOL "Python3 found" FORCE) +set(Python3_Development_FOUND TRUE CACHE BOOL "Python3 development found" FORCE) +set(Python3_NumPy_FOUND TRUE CACHE BOOL "Python3 NumPy found" FORCE) + # Faiss configuration - streamlined build -set(FAISS_ENABLE_PYTHON OFF CACHE BOOL "" FORCE) +set(FAISS_ENABLE_PYTHON ON CACHE BOOL "" FORCE) set(FAISS_ENABLE_GPU OFF CACHE BOOL "" FORCE) set(FAISS_ENABLE_EXTRAS OFF CACHE BOOL "" FORCE) set(BUILD_TESTING OFF CACHE BOOL "" FORCE)