Skip to content

Commit debf91d

Browse files
authored
build: fetch Lumina from release package (#434)
1 parent c0c627b commit debf91d

62 files changed

Lines changed: 57 additions & 4750 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -313,13 +313,6 @@ if(PAIMON_ENABLE_LANCE)
313313
DESTINATION ${CMAKE_INSTALL_LIBDIR})
314314
endif()
315315
316-
if(PAIMON_ENABLE_LUMINA)
317-
add_subdirectory(third_party/lumina EXCLUDE_FROM_ALL)
318-
link_directories(third_party/lumina/lib)
319-
install(FILES ${PROJECT_SOURCE_DIR}/third_party/lumina/lib/liblumina.so
320-
DESTINATION ${CMAKE_INSTALL_LIBDIR})
321-
endif()
322-
323316
# ---- tantivy-fulltext Rust FFI via Corrosion-rs --------------------------------
324317
# See docs/dev/tantivy_fts_migration_plan.md Stage 1.
325318
#
@@ -367,10 +360,6 @@ if(PAIMON_ENABLE_LANCE)
367360
include_directories("${CMAKE_SOURCE_DIR}/third_party/lance")
368361
endif()
369362
370-
if(PAIMON_ENABLE_LUMINA)
371-
include_directories("${CMAKE_SOURCE_DIR}/third_party/lumina/include")
372-
endif()
373-
374363
include_directories(SYSTEM ${ARROW_INCLUDE_DIR})
375364
include_directories(SYSTEM ${TBB_INCLUDE_DIR})
376365

cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,16 @@ else()
295295
endif()
296296
endif()
297297

298+
if(DEFINED ENV{PAIMON_LUMINA_URL})
299+
set(LUMINA_SOURCE_URL "$ENV{PAIMON_LUMINA_URL}")
300+
elseif(EXISTS "${THIRDPARTY_DIR}/${PAIMON_LUMINA_PKG_NAME}")
301+
set_urls(LUMINA_SOURCE_URL "${THIRDPARTY_DIR}/${PAIMON_LUMINA_PKG_NAME}")
302+
else()
303+
set_urls(LUMINA_SOURCE_URL
304+
"https://paimon-cpp.oss-cn-beijing.aliyuncs.com/thirdparty/lumina/lumina_release-${PAIMON_LUMINA_BUILD_VERSION}.tar.gz"
305+
)
306+
endif()
307+
298308
if(APPLE)
299309
set(JINDOSDK_C_DYNAMIC_LIB_NAME "jindosdk_c.${PAIMON_JINDOSDK_C_BUILD_VERSION}")
300310
set(JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME}.dylib")
@@ -1180,6 +1190,42 @@ macro(build_jindosdk_c)
11801190

11811191
endmacro()
11821192

1193+
macro(build_lumina)
1194+
message(STATUS "Installing Lumina from precompiled package")
1195+
1196+
set(LUMINA_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/lumina_ep-install")
1197+
set(LUMINA_INCLUDE_DIR "${LUMINA_PREFIX}/include")
1198+
set(LUMINA_LIB_DIR "${LUMINA_PREFIX}/lib")
1199+
set(LUMINA_DYNAMIC_LIB "${LUMINA_LIB_DIR}/liblumina.so")
1200+
1201+
externalproject_add(lumina_ep
1202+
URL ${LUMINA_SOURCE_URL}
1203+
URL_HASH "SHA256=${PAIMON_LUMINA_BUILD_SHA256_CHECKSUM}"
1204+
${THIRDPARTY_LOG_OPTIONS}
1205+
CONFIGURE_COMMAND ""
1206+
BUILD_COMMAND ""
1207+
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
1208+
<SOURCE_DIR>/artifacts/cpp/linux-x86_64/install-root/usr/local/include
1209+
${LUMINA_INCLUDE_DIR}
1210+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
1211+
<SOURCE_DIR>/artifacts/cpp/linux-x86_64/install-root/usr/local/lib/liblumina.so
1212+
${LUMINA_DYNAMIC_LIB}
1213+
BUILD_BYPRODUCTS "${LUMINA_DYNAMIC_LIB}")
1214+
1215+
file(MAKE_DIRECTORY "${LUMINA_INCLUDE_DIR}")
1216+
file(MAKE_DIRECTORY "${LUMINA_LIB_DIR}")
1217+
1218+
add_library(lumina::interface SHARED IMPORTED GLOBAL)
1219+
set_target_properties(lumina::interface
1220+
PROPERTIES IMPORTED_LOCATION "${LUMINA_DYNAMIC_LIB}"
1221+
IMPORTED_NO_SONAME TRUE
1222+
INTERFACE_INCLUDE_DIRECTORIES
1223+
"${LUMINA_INCLUDE_DIR}")
1224+
add_dependencies(lumina::interface lumina_ep)
1225+
1226+
install(FILES "${LUMINA_DYNAMIC_LIB}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
1227+
endmacro()
1228+
11831229
macro(build_jindosdk_nextarch)
11841230
message(STATUS "Building jindosdk-nextarch from local source")
11851231

@@ -1828,6 +1874,9 @@ if(PAIMON_ENABLE_JINDO)
18281874
build_jindosdk_c()
18291875
build_jindosdk_nextarch()
18301876
endif()
1877+
if(PAIMON_ENABLE_LUMINA)
1878+
build_lumina()
1879+
endif()
18311880
if(PAIMON_ENABLE_LUCENE)
18321881
build_boost()
18331882
build_lucene()

docs/source/user_guide/global_index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,4 @@ Vector Index (Lumina)
8989

9090
An approximate nearest neighbor (ANN) index powered by Lumina for vector similarity search.
9191
Supports high-dimensional vector search with configurable distance metrics and encoding strategies.
92-
For more configurations, please refer to the third_party/lumina/reference directory.
92+
For more configurations, refer to the ``docs/reference`` directory in the Lumina release package.

src/paimon/global_index/lumina/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ if(PAIMON_ENABLE_LUMINA)
2020
${PAIMON_LUMINA_INDEX}
2121
DEPENDENCIES
2222
paimon_shared
23+
lumina::interface
2324
STATIC_LINK_LIBS
2425
arrow
2526
glog

src/paimon/global_index/lumina/lumina_global_index.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
namespace paimon::lumina {
3535
/// @note When enabling the lumina global index in `paimon-cpp`, all configuration parameters
3636
/// specific to Lumina **must be prefixed with `lumina.`**.
37-
/// More options refer to OptionsReference.md in third_party/lumina.
37+
/// See `docs/reference/OptionsReference.md` in the Lumina release package for more options.
3838
///
3939
/// Example configurations:
4040
///

third_party/lumina/CMakeLists.txt

Lines changed: 0 additions & 24 deletions
This file was deleted.

third_party/lumina/LICENSE.txt

Lines changed: 0 additions & 202 deletions
This file was deleted.

third_party/lumina/NOTICE.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

third_party/lumina/README.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

third_party/lumina/VERSION

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)