Packages
rocksdb
2.2.0
3.1.1
3.1.0
3.0.0
2.6.2
2.6.1
retired
2.6.0
retired
2.5.0
2.4.1
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.1
1.1.0
1.0.0
0.26.2
0.26.1
0.26.0
0.25.0
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.0
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
RocksDB for Erlang
Current section
Files
Jump to
Current section
Files
c_src/CMake/build-rocksdb.cmake
# Get absolute path to rocksdb sources (PROJECT_SOURCE_DIR is c_src)
get_filename_component(ROCKSDB_ROOT_DIR "${PROJECT_SOURCE_DIR}/../deps/rocksdb" ABSOLUTE)
message(STATUS "RocksDB source directory: ${ROCKSDB_ROOT_DIR}")
set(rocksdb_CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON)
if (WITH_CCACHE AND CCACHE_FOUND)
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_CXX_COMPILER=ccache)
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_CXX_COMPILER_ARG1=${CMAKE_CXX_COMPILER})
else()
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
endif()
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_AR=${CMAKE_AR})
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
list(APPEND rocksdb_CMAKE_ARGS -DFAIL_ON_WARNINGS=OFF)
list(APPEND rocksdb_CMAKE_ARGS -DPORTABLE=ON)
list(APPEND rocksdb_CMAKE_ARGS -DUSE_RTTI=1)
list(APPEND rocksdb_CMAKE_ARGS -DWITH_TOOLS=OFF)
list(APPEND rocksdb_CMAKE_ARGS -DWITH_TESTS=OFF)
list(APPEND rocksdb_CMAKE_ARGS -DWITH_GFLAGS=OFF)
list(APPEND rocksdb_CMAKE_ARGS -DWITH_JEMALLOC=OFF)
list(APPEND rocksdb_CMAKE_ARGS -DWITH_TBB=${TBB_FOUND})
list(APPEND rocksdb_CMAKE_ARGS -DWITH_SNAPPY=${SNAPPY_FOUND})
list(APPEND rocksdb_CMAKE_ARGS -DWITH_LZ4=${LZ4_FOUND})
list(APPEND rocksdb_CMAKE_ARGS -DWITH_ZLIB=${ZLIB_FOUND})
list(APPEND rocksdb_CMAKE_ARGS -DWITH_BZ2=${BZIP2_FOUND})
list(APPEND rocksdb_CMAKE_ARGS -DWITH_ZSTD=${ZSTD_FOUND})
if(MSVC)
list(APPEND rocksdb_CMAKE_ARGS -DWITHOUT_THIRDPARTY_INC=ON)
endif()
if(WITH_BUNDLE_SNAPPY)
list(APPEND rocksdb_CMAKE_ARGS -Dsnappy_ROOT_DIR=${SNAPPY_ROOT_DIR})
endif()
if(WITH_BUNDLE_LZ4)
list(APPEND rocksdb_CMAKE_ARGS -Dlz4_ROOT_DIR=${LZ4_ROOT_DIR})
endif()
message(STATUS "cmake args ${rocksdb_CMAKE_ARGS}")
include(ExternalProject)
if(MSVC)
set(BUILD_CMD ${CMAKE_COMMAND} --build . --config Release --target rocksdb -- -m)
else()
set(BUILD_CMD $(MAKE) rocksdb)
endif()
ExternalProject_Add(rocksdb
SOURCE_DIR "${ROCKSDB_ROOT_DIR}"
DOWNLOAD_COMMAND ""
CMAKE_ARGS ${rocksdb_CMAKE_ARGS}
BUILD_COMMAND ${BUILD_CMD}
INSTALL_COMMAND ""
)
ExternalProject_Get_Property(rocksdb BINARY_DIR)
add_dependencies(${ErlangRocksDBNIF_TARGET} rocksdb)
if(WITH_BUNDLE_SNAPPY)
ExternalProject_Add_StepDependencies(rocksdb build snappy)
endif()
if(WITH_BUNDLE_LZ4)
ExternalProject_Add_StepDependencies(rocksdb build lz4)
endif()
if(MSVC)
set(ROCKSDB_LIBRARIES
${BINARY_DIR}/Release/rocksdb${CMAKE_STATIC_LIBRARY_SUFFIX})
else()
set(ROCKSDB_LIBRARIES
${BINARY_DIR}/librocksdb${CMAKE_STATIC_LIBRARY_SUFFIX})
endif()
set(ROCKSDB_FOUND TRUE)
set(ROCKSDB_INCLUDE_DIRS
${ROCKSDB_ROOT_DIR}/include)
message(STATUS "Found RocksDB library: ${ROCKSDB_LIBRARIES}")
message(STATUS "Found RocksDB includes: ${ROCKSDB_INCLUDE_DIRS}")
mark_as_advanced(
ROCKSDB_ROOT_DIR
ROCKSDB_LIBRARIES
ROCKSDB_INCLUDE_DIRS
)