aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt14
1 files changed, 10 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8285b8..ad9a488 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@
cmake_minimum_required(VERSION 3.9)
# Keep the version below in sync with the one in db.h
-project(leveldb VERSION 1.23.0 LANGUAGES C CXX)
+project(leveldb VERSION 1.23.0 LANGUAGES C CXX CUDA)
# C standard can be overridden when this is used as a sub-project.
if(NOT CMAKE_C_STANDARD)
@@ -76,6 +76,8 @@ else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
endif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frtti")
+
# Test whether -Wthread-safety is available. See
# https://clang.llvm.org/docs/ThreadSafetyAnalysis.html
include(CheckCXXCompilerFlag)
@@ -116,6 +118,9 @@ endif(BUILD_SHARED_LIBS)
# Must be included before CMAKE_INSTALL_INCLUDEDIR is used.
include(GNUInstallDirs)
+set(CMAKE_CUDA_STANDARD 14)
+find_package(CUDA REQUIRED)
+
add_library(leveldb "")
target_sources(leveldb
PRIVATE
@@ -169,8 +174,8 @@ target_sources(leveldb
"table/table.cc"
"table/two_level_iterator.cc"
"table/two_level_iterator.h"
- "util/arena.cc"
- "util/arena.h"
+ "util/arena.cu"
+ "util/arena.cuh"
"util/bloom.cc"
"util/cache.cc"
"util/coding.cc"
@@ -208,6 +213,7 @@ target_sources(leveldb
"${LEVELDB_PUBLIC_INCLUDE_DIR}/table.h"
"${LEVELDB_PUBLIC_INCLUDE_DIR}/write_batch.h"
)
+set_target_properties(leveldb PROPERTIES CUDA_ARCHITECTURES "35;50;72")
if (WIN32)
target_sources(leveldb
@@ -367,7 +373,7 @@ if(LEVELDB_BUILD_TESTS)
leveldb_test("table/filter_block_test.cc")
leveldb_test("table/table_test.cc")
- leveldb_test("util/arena_test.cc")
+ leveldb_test("util/arena_test.cu")
leveldb_test("util/bloom_test.cc")
leveldb_test("util/cache_test.cc")
leveldb_test("util/coding_test.cc")