@@ -35,12 +35,13 @@ option(DINGO_BUILD_STATIC "Link libraries statically to generate the dingodb bin
3535option (ENABLE_FAILPOINT "Enable failpoint" OFF )
3636option (WITH_DISKANN "Build with diskann index" OFF )
3737option (WITH_MKL "Build with intel mkl" OFF )
38- option (BOOST_SEARCH_PATH "" )
38+ option (BOOST_SEARCH_PATH "" OFF )
3939option (BUILD_GOOGLE_SANITIZE "Enable google sanitize" OFF )
4040option (BRPC_ENABLE_CPU_PROFILER "Enable brpc cpu profiler" OFF )
4141option (XDPROCKS_PATH "Enable xdprocks raw engine" )
4242option (VECTORIZATION_INSTRUCTION_SET "vectorization instruction set" )
4343option (WITH_LIBURING "Build with liburing" ON )
44+ option (DISKANN_DEPEND_ON_SYSTEM "diskann require system dependencies for boost and aio " OFF )
4445
4546message (STATUS CMAKE_BUILD_TYPE =${CMAKE_BUILD_TYPE} )
4647message (STATUS THIRD_PARTY_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE} )
@@ -286,7 +287,11 @@ include(ftxui)
286287include (hnswlib)
287288include (bdb)
288289include (tantivy-search)
289- include (libaio)
290+ if (WITH_DISKANN)
291+ if (NOT DISKANN_DEPEND_ON_SYSTEM)
292+ include (libaio)
293+ endif ()
294+ endif ()
290295
291296set (MESSAGE_SOURCE_DIR ${CMAKE_SOURCE_DIR} /dingo-store-proto/proto)
292297set (MESSAGE_DIR ${CMAKE_CURRENT_BINARY_DIR} /proto)
@@ -364,8 +369,13 @@ set(DYNAMIC_LIB
364369 ${TANTIVY_SEARCH_LIBRARIES}
365370 ${FTXUI_COMPONENT_LIBRARY}
366371 ${FTXUI_DOM_LIBRARY}
367- ${FTXUI_SCREEN_LIBRARY}
368- ${LIBAIO_LIBRARIES} )
372+ ${FTXUI_SCREEN_LIBRARY} )
373+
374+ if (WITH_DISKANN)
375+ if (NOT DISKANN_DEPEND_ON_SYSTEM)
376+ set (DYNAMIC_LIB ${DYNAMIC_LIB} ${LIBAIO_LIBRARIES} )
377+ endif ()
378+ endif ()
369379
370380if (ENABLE_XDPROCKS)
371381 set (DYNAMIC_LIB ${DYNAMIC_LIB} "${XDPROCKS_PATH} /lib/libxdprocks.a" "${XDPROCKS_PATH} /lib/libstorelib.a"
@@ -452,7 +462,13 @@ include_directories(${FAISS_INCLUDE_DIR})
452462set (VECTOR_LIB ${FAISS_LIBRARIES} ${OPENMP_LIBRARY} )
453463
454464if (WITH_DISKANN)
455- add_definitions (-DENABLE_DISKANN_MODULE=ON )
465+ add_definitions (-DENABLE_DISKANN_MODULE=1)
466+ if (DISKANN_DEPEND_ON_SYSTEM)
467+ add_definitions (-DDISKANN_DEPEND_ON_SYSTEM=1)
468+ else ()
469+ add_definitions (-DDISKANN_DEPEND_ON_SYSTEM=0)
470+ endif ()
471+
456472 if (NOT WITH_MKL)
457473 message (FATAL_ERROR "The WITH_MKL is not ON, please install enable WITH_MKL to build diskann." )
458474 endif ()
@@ -462,15 +478,34 @@ if(WITH_DISKANN)
462478 find_package (MKL CONFIG REQUIRED)
463479
464480 if (NOT BOOST_SEARCH_PATH)
481+ # cmake_policy(SET CMP0167 OLD)
465482 find_package (Boost REQUIRED COMPONENTS program_options)
483+ if (Boost_FOUND)
484+ set (BOOST_SUMMARY "" )
485+ string (APPEND BOOST_SUMMARY "Boost version: ${Boost_VERSION} " )
486+ string (APPEND BOOST_SUMMARY "Boost include dirs: ${Boost_INCLUDE_DIRS} " )
487+ string (APPEND BOOST_SUMMARY "Boost libraries: ${Boost_LIBRARIES} " )
488+
489+ message (STATUS "${BOOST_SUMMARY} " )
490+ add_definitions (-DBOOST_SUMMARY="${BOOST_SUMMARY} " )
491+ else ()
492+ message (FATAL_ERROR "Boost not found!" )
493+ endif ()
466494 else ()
467495 message (STATUS "BOOST_SEARCH_PATH=${BOOST_SEARCH_PATH} , use user-defined boost version" )
468496 endif ()
469497
470498 include (diskann)
471499 include_directories (${DISKANN_INCLUDE_DIR} )
472500 set (DEPEND_LIBS ${DEPEND_LIBS} diskann)
473- set (VECTOR_LIB ${VECTOR_LIB} ${DISKANN_LIBRARIES} ${LIBAIO_LIBRARIES} )
501+ if (DISKANN_DEPEND_ON_SYSTEM)
502+ set (VECTOR_LIB ${VECTOR_LIB} ${DISKANN_LIBRARIES} aio)
503+ message (STATUS "libaio use system" )
504+ else ()
505+ set (VECTOR_LIB ${VECTOR_LIB} ${DISKANN_LIBRARIES} ${LIBAIO_LIBRARIES} )
506+ message (STATUS "libaio use third-party" )
507+ endif ()
508+
474509endif ()
475510
476511if (LINK_TCMALLOC)
@@ -671,6 +706,15 @@ add_definitions(-DGIT_COMMIT_TIME="${GIT_COMMIT_TIME}")
671706add_definitions (-DDINGO_BUILD_TYPE="${CMAKE_BUILD_TYPE} " )
672707add_definitions (-DDINGO_CONTRIB_BUILD_TYPE="${THIRD_PARTY_BUILD_TYPE} " )
673708
709+ if (WITH_DISKANN)
710+ execute_process (
711+ COMMAND make -C ${CMAKE_SOURCE_DIR} /contrib/libaio clean
712+ OUTPUT_VARIABLE output
713+ ERROR_VARIABLE error
714+ RESULT_VARIABLE result
715+ OUTPUT_STRIP_TRAILING_WHITESPACE)
716+ endif ()
717+
674718if (ENABLE_FAILPOINT)
675719 message (STATUS "Enable failpoint" )
676720 add_definitions (-DENABLE_FAILPOINT="ON" )
0 commit comments