cmake_minimum_required(VERSION 2.8.12)
project(python_cpp_example)
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)

SET(SOURCE_DIR "src/urocksdb")
include_directories(${SOURCE_DIR})
include_directories(lib/pybind11)
add_subdirectory(lib/pybind11)

SET ( WITH_TESTS OFF CACHE BOOL "BUILD ROCKSDB WITH TEST" FORCE)
SET ( WITH_SNAPPY ON CACHE BOOL "BUILD ROCKSDB WITH SNAPPY" FORCE)
SET ( WITH_ZSTD ON CACHE BOOL "BUILD ROCKSDB WITH ZSTD" FORCE)
SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
SET (USE_RTTI ON)
SET (PORTABLE ON)
SET (FORCE_AVX2 ON)
add_subdirectory(lib/rocksdb)

SET ( CMAKE_CXX_FLAGS "-std=c++11")
include_directories(lib/rocksdb)
include_directories(lib/rocksdb/include)
pybind11_add_module(urocksdb ${SOURCE_DIR}/urocksdb.cpp ${SOURCE_DIR}/db.cpp ${SOURCE_DIR}/options.cpp ${SOURCE_DIR}/slice.cpp ${SOURCE_DIR}/status.cpp ${SOURCE_DIR}/write_batch.cpp ${SOURCE_DIR}/iterator.cpp ${SOURCE_DIR}/filter_policy.cpp ${SOURCE_DIR}/merge_operator.cpp ${SOURCE_DIR}/transaction_db.cpp ${SOURCE_DIR}/snapshot.cpp ${SOURCE_DIR}/sst_file_writer.cpp src/urocksdb/compression_types.cpp)
target_link_libraries(urocksdb PRIVATE rocksdb)
