cmake_minimum_required(VERSION 3.10)
|
project(RocksDBWrapper)
|
|
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
include_directories(${CMAKE_SOURCE_DIR}/external/tser/include)
|
|
# Add the source files
|
set(SOURCES
|
RocksDBWrapper.cpp
|
)
|
|
# Find RocksDB
|
find_package(RocksDB REQUIRED)
|
|
# Create the library target
|
add_library(RocksDBWrapper STATIC ${SOURCES})
|
|
# Link the RocksDB library
|
target_link_libraries(RocksDBWrapper RocksDB::rocksdb)
|
|
# Add the executable for testing
|
add_executable(RocksDBWrapperExecutable main.cpp)
|
target_link_libraries(RocksDBWrapperExecutable RocksDBWrapper)
|
|
# Optionally add tests
|
option(BUILD_TESTS "Build tests" OFF)
|
|
if (BUILD_TESTS)
|
include(FetchContent)
|
FetchContent_Declare(
|
googletest
|
URL https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip
|
)
|
FetchContent_MakeAvailable(googletest)
|
|
enable_testing()
|
|
add_executable(RocksDBWrapperTest test_RocksDBWrapper.cpp)
|
target_link_libraries(RocksDBWrapperTest RocksDBWrapper gtest gtest_main)
|
|
add_test(NAME RocksDBWrapperTest COMMAND RocksDBWrapperTest)
|
endif()
|