mirror of
https://github.com/typesense/typesense.git
synced 2025-05-16 03:12:32 +08:00
32 lines
1.3 KiB
CMake
32 lines
1.3 KiB
CMake
# Download and build RocksDB
|
|
|
|
set(ROCKSDB_VERSION 5.9.2)
|
|
set(ROCKSDB_NAME rocksdb-${ROCKSDB_VERSION})
|
|
set(ROCKSDB_TAR_PATH ${DEP_ROOT_DIR}/${ROCKSDB_NAME}.tar.gz)
|
|
|
|
if(NOT EXISTS ${ROCKSDB_TAR_PATH})
|
|
message(STATUS "Downloading ${ROCKSDB_NAME}...")
|
|
file(DOWNLOAD https://github.com/facebook/rocksdb/archive/v${ROCKSDB_VERSION}.tar.gz ${ROCKSDB_TAR_PATH})
|
|
endif()
|
|
|
|
if(NOT EXISTS ${DEP_ROOT_DIR}/${ROCKSDB_NAME})
|
|
message(STATUS "Extracting ${ROCKSDB_NAME}...")
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${ROCKSDB_TAR_PATH} WORKING_DIRECTORY ${DEP_ROOT_DIR}/)
|
|
endif()
|
|
|
|
# Use patched build detect platform script to control what libraries RocksDB links against
|
|
file(COPY ${CMAKE_SOURCE_DIR}/cmake/patches/build_detect_platform DESTINATION
|
|
${DEP_ROOT_DIR}/${ROCKSDB_NAME}/build_tools)
|
|
|
|
if(NOT EXISTS ${DEP_ROOT_DIR}/${ROCKSDB_NAME}/librocksdb.a)
|
|
message("Building ${ROCKSDB_NAME} locally...")
|
|
set(ENV{PORTABLE} 1)
|
|
set(ENV{DEBUG_LEVEL} 0)
|
|
set(ENV{USE_RTTI} 1)
|
|
execute_process(COMMAND make "clean" WORKING_DIRECTORY ${DEP_ROOT_DIR}/${ROCKSDB_NAME}/)
|
|
execute_process(COMMAND make "static_lib" WORKING_DIRECTORY ${DEP_ROOT_DIR}/${ROCKSDB_NAME}/
|
|
RESULT_VARIABLE ROCKSDB_BUILD)
|
|
if(NOT ROCKSDB_BUILD EQUAL 0)
|
|
message(FATAL_ERROR "${ROCKSDB_NAME} build failed!")
|
|
endif()
|
|
endif() |