Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/event-pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ jobs:
- name: check format
run: make check-format
- name: unit tests
env:
SVS_BASE_URL: ${{ vars.SVS_BASE_URL }}
run: make unit_test
- name: flow tests
run: make flow_test VERBOSE=1
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/task-unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ jobs:
echo "name=$NAME" >> $GITHUB_OUTPUT

- name: unit tests
env:
SVS_BASE_URL: ${{ vars.SVS_BASE_URL }}
run: make unit_test
- name: valgrind
if: ${{ inputs.run-valgrind }}
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ endif
export SAN
endif # SAN

ifneq ($(SVS_BASE_URL),)
CMAKE_SVS += -DSVS_BASE_URL=$(SVS_BASE_URL)
endif

ROOT=.
export ROOT
#----------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -138,6 +142,7 @@ CMAKE_FLAGS += \
--no-warn-unused-cli \
$(CMAKE_SAN) \
$(CMAKE_COV) \
$(CMAKE_SVS) \
$(CMAKE_TESTS)

build:
Expand Down
17 changes: 13 additions & 4 deletions cmake/svs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -53,26 +53,35 @@ if(USE_SVS)
GLIBC_2_26_FOUND)
endif()

cmake_dependent_option(SVS_SHARED_LIB "Use SVS pre-compiled shared library" ON "USE_SVS AND GLIBC_FOUND AND SVS_LVQ_SUPPORTED" OFF)
# If SVS_BASE_URL is not set (empty string), set SVS_SHARED_LIB to OFF
if(NOT SVS_BASE_URL)
message(STATUS "SVS_BASE_URL is not set - disabling SVS_SHARED_LIB")
set(SVS_SHARED_LIB OFF)
endif()

cmake_dependent_option(SVS_SHARED_LIB "Use SVS pre-compiled shared library" ON "USE_SVS AND GLIBC_FOUND AND SVS_LVQ_SUPPORTED AND SVS_BASE_URL" OFF)
message(STATUS "SVS_SHARED_LIB is set to ${SVS_SHARED_LIB}")
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if (GLIBC_2_28_FOUND)
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.9/svs-shared-library-0.0.9-reduced-clang.tar.gz" CACHE STRING "SVS URL")
# Append the path to SVS_BASE_URL
set(SVS_URL "${SVS_BASE_URL}/svs-shared-library-0.0.9-reduced-clang.tar.gz" CACHE STRING "SVS URL")
else()
message(STATUS "GLIBC>=2.28 is required for Clang build - disabling SVS_SHARED_LIB")
set(SVS_SHARED_LIB OFF)
endif()
else()
if (GLIBC_2_28_FOUND)
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.9/svs-shared-library-0.0.9-reduced.tar.gz" CACHE STRING "SVS URL")
set(SVS_URL "${SVS_BASE_URL}/svs-shared-library-0.0.9-reduced.tar.gz" CACHE STRING "SVS URL")
elseif(GLIBC_2_26_FOUND)
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.9/svs-shared-library-0.0.9-reduced-glibc2_26.tar.gz" CACHE STRING "SVS URL")
set(SVS_URL "${SVS_BASE_URL}/svs-shared-library-0.0.9-reduced-glibc2_26.tar.gz" CACHE STRING "SVS URL")
else()
message(STATUS "GLIBC>=2.26 is required for SVS shared library - disabling SVS_SHARED_LIB")
set(SVS_SHARED_LIB OFF)
endif()
endif()

if(SVS_SHARED_LIB)
message(STATUS "SVS pre-built library enabled and will be downloaded from ${SVS_URL}")
include(FetchContent)
FetchContent_Declare(
svs
Expand Down
Loading