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()