Skip to content

Commit 3212a4e

Browse files
committed
build: fetch Lumina from release package
1 parent ff446f9 commit 3212a4e

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
@@ -306,13 +306,6 @@ if(PAIMON_ENABLE_LANCE)
306306
DESTINATION ${CMAKE_INSTALL_LIBDIR})
307307
endif()
308308
309-
if(PAIMON_ENABLE_LUMINA)
310-
add_subdirectory(third_party/lumina EXCLUDE_FROM_ALL)
311-
link_directories(third_party/lumina/lib)
312-
install(FILES ${PROJECT_SOURCE_DIR}/third_party/lumina/lib/liblumina.so
313-
DESTINATION ${CMAKE_INSTALL_LIBDIR})
314-
endif()
315-
316309
# ---- tantivy-fulltext Rust FFI via Corrosion-rs --------------------------------
317310
# See docs/dev/tantivy_fts_migration_plan.md Stage 1.
318311
#
@@ -360,10 +353,6 @@ if(PAIMON_ENABLE_LANCE)
360353
include_directories("${CMAKE_SOURCE_DIR}/third_party/lance")
361354
endif()
362355
363-
if(PAIMON_ENABLE_LUMINA)
364-
include_directories("${CMAKE_SOURCE_DIR}/third_party/lumina/include")
365-
endif()
366-
367356
include_directories(SYSTEM ${ARROW_INCLUDE_DIR})
368357
include_directories(SYSTEM ${TBB_INCLUDE_DIR})
369358

cmake_modules/ThirdpartyToolchain.cmake

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

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

11931203
endmacro()
11941204

1205+
macro(build_lumina)
1206+
message(STATUS "Installing Lumina from precompiled package")
1207+
1208+
set(LUMINA_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/lumina_ep-install")
1209+
set(LUMINA_INCLUDE_DIR "${LUMINA_PREFIX}/include")
1210+
set(LUMINA_LIB_DIR "${LUMINA_PREFIX}/lib")
1211+
set(LUMINA_DYNAMIC_LIB "${LUMINA_LIB_DIR}/liblumina.so")
1212+
1213+
externalproject_add(lumina_ep
1214+
URL ${LUMINA_SOURCE_URL}
1215+
URL_HASH "SHA256=${PAIMON_LUMINA_BUILD_SHA256_CHECKSUM}"
1216+
${THIRDPARTY_LOG_OPTIONS}
1217+
CONFIGURE_COMMAND ""
1218+
BUILD_COMMAND ""
1219+
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
1220+
<SOURCE_DIR>/artifacts/cpp/linux-x86_64/install-root/usr/local/include
1221+
${LUMINA_INCLUDE_DIR}
1222+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
1223+
<SOURCE_DIR>/artifacts/cpp/linux-x86_64/install-root/usr/local/lib/liblumina.so
1224+
${LUMINA_DYNAMIC_LIB}
1225+
BUILD_BYPRODUCTS "${LUMINA_DYNAMIC_LIB}")
1226+
1227+
file(MAKE_DIRECTORY "${LUMINA_INCLUDE_DIR}")
1228+
file(MAKE_DIRECTORY "${LUMINA_LIB_DIR}")
1229+
1230+
add_library(lumina::interface SHARED IMPORTED GLOBAL)
1231+
set_target_properties(lumina::interface
1232+
PROPERTIES IMPORTED_LOCATION "${LUMINA_DYNAMIC_LIB}"
1233+
IMPORTED_NO_SONAME TRUE
1234+
INTERFACE_INCLUDE_DIRECTORIES
1235+
"${LUMINA_INCLUDE_DIR}")
1236+
add_dependencies(lumina::interface lumina_ep)
1237+
1238+
install(FILES "${LUMINA_DYNAMIC_LIB}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
1239+
endmacro()
1240+
11951241
macro(build_jindosdk_nextarch)
11961242
message(STATUS "Building jindosdk-nextarch from local source")
11971243

@@ -1888,6 +1934,9 @@ if(PAIMON_ENABLE_JINDO)
18881934
build_jindosdk_c()
18891935
build_jindosdk_nextarch()
18901936
endif()
1937+
if(PAIMON_ENABLE_LUMINA)
1938+
build_lumina()
1939+
endif()
18911940
if(PAIMON_ENABLE_LUCENE)
18921941
build_boost()
18931942
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)