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-snappy.cmake
add_dependencies (${ErlangRocksDBNIF_TARGET} snappy)
include(GNUInstallDirs)
set(SNAPPY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../deps/snappy")
set(SNAPPY_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/snappy")
set(SNAPPY_INCLUDE_DIR "${SNAPPY_ROOT_DIR}/include")
set(SNAPPY_STATIC_LIB "${SNAPPY_ROOT_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}snappy${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(SNAPPY_LIBRARY ${SNAPPY_STATIC_LIB})
include(ExternalProject)
# Build snappy with RTTI enabled to match RocksDB (which uses USE_RTTI=1)
# Snappy's CMakeLists.txt strips -frtti and adds -fno-rtti to CMAKE_CXX_FLAGS.
# We pass -frtti via CMAKE_CXX_FLAGS_RELEASE which gets appended AFTER base flags,
# so the final order is "... -fno-rtti ... -frtti" and last flag wins with gcc/clang.
if(MSVC)
set(SNAPPY_RTTI_FLAG "/GR")
else()
set(SNAPPY_RTTI_FLAG "-frtti")
endif()
ExternalProject_Add(snappy
SOURCE_DIR "${SNAPPY_SOURCE_DIR}"
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${SNAPPY_ROOT_DIR}
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=OFF
-DSNAPPY_BUILD_TESTS=OFF
-DSNAPPY_BUILD_BENCHMARKS=OFF
-DCMAKE_CXX_FLAGS_RELEASE=${SNAPPY_RTTI_FLAG}
BINARY_DIR ${SNAPPY_ROOT_DIR}
BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}"
)
set(SNAPPY_FOUND TRUE)
message(STATUS "Snappy library: ${SNAPPY_LIBRARY}")
message(STATUS "Snappy includes: ${SNAPPY_INCLUDE_DIR}")
mark_as_advanced(
SNAPPY_ROOT_DIR
SNAPPY_LIBRARY
SNAPPY_INCLUDE_DIR
)