cmake_minimum_required(VERSION 3.20) project(cleveldb CUDA) set(CMAKE_CUDA_STANDARD 14) include(GNUInstallDirs) add_library(cleveldb "") target_sources( cleveldb PUBLIC "utils/testutil.cuh" "utils/testutil.cpp" "headers/arena.cuh" "headers/arena.cu" "utils/random.h" "headers/skiplist.cuh" ) enable_testing() set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) set(install_gtest OFF) set(install_gmock OFF) set(build_gmock ON) add_subdirectory("thirdparty/googletest") function(cleveldb_test test_file) get_filename_component(test_target_name "${test_file}" NAME_WE) add_executable("${test_target_name}" "") target_sources(arena_test PRIVATE "${test_file}") target_link_libraries("${test_target_name}" cleveldb gtest) add_test(NAME "${test_target_name}" COMMAND "${test_target_name}") endfunction(cleveldb_test) add_executable(clevelmain main.cu cleveldb) set_target_properties(clevelmain PROPERTIES CUDA_SEPARABLE_COMPILATION ON) cleveldb_test(tests/arena_test.cu)