summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt388
1 files changed, 220 insertions, 168 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a65afbf..b829c94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,17 +4,23 @@
cmake_minimum_required(VERSION 3.9)
# Keep the version below in sync with the one in db.h
-project(leveldb VERSION 1.22.0 LANGUAGES C CXX)
-
-# This project can use C11, but will gracefully decay down to C89.
-set(CMAKE_C_STANDARD 11)
-set(CMAKE_C_STANDARD_REQUIRED OFF)
-set(CMAKE_C_EXTENSIONS OFF)
-
-# This project requires C++11.
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_EXTENSIONS OFF)
+project(leveldb VERSION 1.23.0 LANGUAGES C CXX)
+
+# C standard can be overridden when this is used as a sub-project.
+if(NOT CMAKE_C_STANDARD)
+ # This project can use C11, but will gracefully decay down to C89.
+ set(CMAKE_C_STANDARD 11)
+ set(CMAKE_C_STANDARD_REQUIRED OFF)
+ set(CMAKE_C_EXTENSIONS OFF)
+endif(NOT CMAKE_C_STANDARD)
+
+# C++ standard can be overridden when this is used as a sub-project.
+if(NOT CMAKE_CXX_STANDARD)
+ # This project requires C++11.
+ set(CMAKE_CXX_STANDARD 11)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ set(CMAKE_CXX_EXTENSIONS OFF)
+endif(NOT CMAKE_CXX_STANDARD)
if (WIN32)
set(LEVELDB_PLATFORM_NAME LEVELDB_PLATFORM_WINDOWS)
@@ -28,9 +34,6 @@ option(LEVELDB_BUILD_TESTS "Build LevelDB's unit tests" ON)
option(LEVELDB_BUILD_BENCHMARKS "Build LevelDB's benchmarks" ON)
option(LEVELDB_INSTALL "Install LevelDB's header and library" ON)
-include(TestBigEndian)
-test_big_endian(LEVELDB_IS_BIG_ENDIAN)
-
include(CheckIncludeFile)
check_include_file("unistd.h" HAVE_UNISTD_H)
@@ -78,6 +81,10 @@ endif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag(-Wthread-safety HAVE_CLANG_THREAD_SAFETY)
+# Used by googletest.
+check_cxx_compiler_flag(-Wno-missing-field-initializers
+ LEVELDB_HAVE_NO_MISSING_FIELD_INITIALIZERS)
+
include(CheckCXXSourceCompiles)
# Test whether C++17 __has_include is available.
@@ -92,13 +99,13 @@ set(LEVELDB_PUBLIC_INCLUDE_DIR "include/leveldb")
set(LEVELDB_PORT_CONFIG_DIR "include/port")
configure_file(
- "${PROJECT_SOURCE_DIR}/port/port_config.h.in"
+ "port/port_config.h.in"
"${PROJECT_BINARY_DIR}/${LEVELDB_PORT_CONFIG_DIR}/port_config.h"
)
include_directories(
"${PROJECT_BINARY_DIR}/include"
- "${PROJECT_SOURCE_DIR}"
+ "."
)
if(BUILD_SHARED_LIBS)
@@ -106,79 +113,82 @@ if(BUILD_SHARED_LIBS)
add_compile_options(-fvisibility=hidden)
endif(BUILD_SHARED_LIBS)
+# Must be included before CMAKE_INSTALL_INCLUDEDIR is used.
+include(GNUInstallDirs)
+
add_library(leveldb "")
target_sources(leveldb
PRIVATE
"${PROJECT_BINARY_DIR}/${LEVELDB_PORT_CONFIG_DIR}/port_config.h"
- "${PROJECT_SOURCE_DIR}/db/builder.cc"
- "${PROJECT_SOURCE_DIR}/db/builder.h"
- "${PROJECT_SOURCE_DIR}/db/c.cc"
- "${PROJECT_SOURCE_DIR}/db/db_impl.cc"
- "${PROJECT_SOURCE_DIR}/db/db_impl.h"
- "${PROJECT_SOURCE_DIR}/db/db_iter.cc"
- "${PROJECT_SOURCE_DIR}/db/db_iter.h"
- "${PROJECT_SOURCE_DIR}/db/dbformat.cc"
- "${PROJECT_SOURCE_DIR}/db/dbformat.h"
- "${PROJECT_SOURCE_DIR}/db/dumpfile.cc"
- "${PROJECT_SOURCE_DIR}/db/filename.cc"
- "${PROJECT_SOURCE_DIR}/db/filename.h"
- "${PROJECT_SOURCE_DIR}/db/log_format.h"
- "${PROJECT_SOURCE_DIR}/db/log_reader.cc"
- "${PROJECT_SOURCE_DIR}/db/log_reader.h"
- "${PROJECT_SOURCE_DIR}/db/log_writer.cc"
- "${PROJECT_SOURCE_DIR}/db/log_writer.h"
- "${PROJECT_SOURCE_DIR}/db/memtable.cc"
- "${PROJECT_SOURCE_DIR}/db/memtable.h"
- "${PROJECT_SOURCE_DIR}/db/repair.cc"
- "${PROJECT_SOURCE_DIR}/db/skiplist.h"
- "${PROJECT_SOURCE_DIR}/db/snapshot.h"
- "${PROJECT_SOURCE_DIR}/db/table_cache.cc"
- "${PROJECT_SOURCE_DIR}/db/table_cache.h"
- "${PROJECT_SOURCE_DIR}/db/version_edit.cc"
- "${PROJECT_SOURCE_DIR}/db/version_edit.h"
- "${PROJECT_SOURCE_DIR}/db/version_set.cc"
- "${PROJECT_SOURCE_DIR}/db/version_set.h"
- "${PROJECT_SOURCE_DIR}/db/write_batch_internal.h"
- "${PROJECT_SOURCE_DIR}/db/write_batch.cc"
- "${PROJECT_SOURCE_DIR}/port/port_stdcxx.h"
- "${PROJECT_SOURCE_DIR}/port/port.h"
- "${PROJECT_SOURCE_DIR}/port/thread_annotations.h"
- "${PROJECT_SOURCE_DIR}/table/block_builder.cc"
- "${PROJECT_SOURCE_DIR}/table/block_builder.h"
- "${PROJECT_SOURCE_DIR}/table/block.cc"
- "${PROJECT_SOURCE_DIR}/table/block.h"
- "${PROJECT_SOURCE_DIR}/table/filter_block.cc"
- "${PROJECT_SOURCE_DIR}/table/filter_block.h"
- "${PROJECT_SOURCE_DIR}/table/format.cc"
- "${PROJECT_SOURCE_DIR}/table/format.h"
- "${PROJECT_SOURCE_DIR}/table/iterator_wrapper.h"
- "${PROJECT_SOURCE_DIR}/table/iterator.cc"
- "${PROJECT_SOURCE_DIR}/table/merger.cc"
- "${PROJECT_SOURCE_DIR}/table/merger.h"
- "${PROJECT_SOURCE_DIR}/table/table_builder.cc"
- "${PROJECT_SOURCE_DIR}/table/table.cc"
- "${PROJECT_SOURCE_DIR}/table/two_level_iterator.cc"
- "${PROJECT_SOURCE_DIR}/table/two_level_iterator.h"
- "${PROJECT_SOURCE_DIR}/util/arena.cc"
- "${PROJECT_SOURCE_DIR}/util/arena.h"
- "${PROJECT_SOURCE_DIR}/util/bloom.cc"
- "${PROJECT_SOURCE_DIR}/util/cache.cc"
- "${PROJECT_SOURCE_DIR}/util/coding.cc"
- "${PROJECT_SOURCE_DIR}/util/coding.h"
- "${PROJECT_SOURCE_DIR}/util/comparator.cc"
- "${PROJECT_SOURCE_DIR}/util/crc32c.cc"
- "${PROJECT_SOURCE_DIR}/util/crc32c.h"
- "${PROJECT_SOURCE_DIR}/util/env.cc"
- "${PROJECT_SOURCE_DIR}/util/filter_policy.cc"
- "${PROJECT_SOURCE_DIR}/util/hash.cc"
- "${PROJECT_SOURCE_DIR}/util/hash.h"
- "${PROJECT_SOURCE_DIR}/util/logging.cc"
- "${PROJECT_SOURCE_DIR}/util/logging.h"
- "${PROJECT_SOURCE_DIR}/util/mutexlock.h"
- "${PROJECT_SOURCE_DIR}/util/no_destructor.h"
- "${PROJECT_SOURCE_DIR}/util/options.cc"
- "${PROJECT_SOURCE_DIR}/util/random.h"
- "${PROJECT_SOURCE_DIR}/util/status.cc"
+ "db/builder.cc"
+ "db/builder.h"
+ "db/c.cc"
+ "db/db_impl.cc"
+ "db/db_impl.h"
+ "db/db_iter.cc"
+ "db/db_iter.h"
+ "db/dbformat.cc"
+ "db/dbformat.h"
+ "db/dumpfile.cc"
+ "db/filename.cc"
+ "db/filename.h"
+ "db/log_format.h"
+ "db/log_reader.cc"
+ "db/log_reader.h"
+ "db/log_writer.cc"
+ "db/log_writer.h"
+ "db/memtable.cc"
+ "db/memtable.h"
+ "db/repair.cc"
+ "db/skiplist.h"
+ "db/snapshot.h"
+ "db/table_cache.cc"
+ "db/table_cache.h"
+ "db/version_edit.cc"
+ "db/version_edit.h"
+ "db/version_set.cc"
+ "db/version_set.h"
+ "db/write_batch_internal.h"
+ "db/write_batch.cc"
+ "port/port_stdcxx.h"
+ "port/port.h"
+ "port/thread_annotations.h"
+ "table/block_builder.cc"
+ "table/block_builder.h"
+ "table/block.cc"
+ "table/block.h"
+ "table/filter_block.cc"
+ "table/filter_block.h"
+ "table/format.cc"
+ "table/format.h"
+ "table/iterator_wrapper.h"
+ "table/iterator.cc"
+ "table/merger.cc"
+ "table/merger.h"
+ "table/table_builder.cc"
+ "table/table.cc"
+ "table/two_level_iterator.cc"
+ "table/two_level_iterator.h"
+ "util/arena.cc"
+ "util/arena.h"
+ "util/bloom.cc"
+ "util/cache.cc"
+ "util/coding.cc"
+ "util/coding.h"
+ "util/comparator.cc"
+ "util/crc32c.cc"
+ "util/crc32c.h"
+ "util/env.cc"
+ "util/filter_policy.cc"
+ "util/hash.cc"
+ "util/hash.h"
+ "util/logging.cc"
+ "util/logging.h"
+ "util/mutexlock.h"
+ "util/no_destructor.h"
+ "util/options.cc"
+ "util/random.h"
+ "util/status.cc"
# Only CMake 3.3+ supports PUBLIC sources in targets exported by "install".
$<$<VERSION_GREATER:CMAKE_VERSION,3.2>:PUBLIC>
@@ -202,22 +212,22 @@ target_sources(leveldb
if (WIN32)
target_sources(leveldb
PRIVATE
- "${PROJECT_SOURCE_DIR}/util/env_windows.cc"
- "${PROJECT_SOURCE_DIR}/util/windows_logger.h"
+ "util/env_windows.cc"
+ "util/windows_logger.h"
)
else (WIN32)
target_sources(leveldb
PRIVATE
- "${PROJECT_SOURCE_DIR}/util/env_posix.cc"
- "${PROJECT_SOURCE_DIR}/util/posix_logger.h"
+ "util/env_posix.cc"
+ "util/posix_logger.h"
)
endif (WIN32)
# MemEnv is not part of the interface and could be pulled to a separate library.
target_sources(leveldb
PRIVATE
- "${PROJECT_SOURCE_DIR}/helpers/memenv/memenv.cc"
- "${PROJECT_SOURCE_DIR}/helpers/memenv/memenv.h"
+ "helpers/memenv/memenv.cc"
+ "helpers/memenv/memenv.h"
)
target_include_directories(leveldb
@@ -272,13 +282,84 @@ find_package(Threads REQUIRED)
target_link_libraries(leveldb Threads::Threads)
add_executable(leveldbutil
- "${PROJECT_SOURCE_DIR}/db/leveldbutil.cc"
+ "db/leveldbutil.cc"
)
target_link_libraries(leveldbutil leveldb)
if(LEVELDB_BUILD_TESTS)
enable_testing()
+ # Prevent overriding the parent project's compiler/linker settings on Windows.
+ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+ set(install_gtest OFF)
+ set(install_gmock OFF)
+ set(build_gmock ON)
+
+ # This project is tested using GoogleTest.
+ add_subdirectory("third_party/googletest")
+
+ # GoogleTest triggers a missing field initializers warning.
+ if(LEVELDB_HAVE_NO_MISSING_FIELD_INITIALIZERS)
+ set_property(TARGET gtest
+ APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
+ set_property(TARGET gmock
+ APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
+ endif(LEVELDB_HAVE_NO_MISSING_FIELD_INITIALIZERS)
+
+ add_executable(leveldb_tests "")
+ target_sources(leveldb_tests
+ PRIVATE
+ # "db/fault_injection_test.cc"
+ # "issues/issue178_test.cc"
+ # "issues/issue200_test.cc"
+ # "issues/issue320_test.cc"
+ "${PROJECT_BINARY_DIR}/${LEVELDB_PORT_CONFIG_DIR}/port_config.h"
+ # "util/env_test.cc"
+ "util/status_test.cc"
+ "util/no_destructor_test.cc"
+ "util/testutil.cc"
+ "util/testutil.h"
+ )
+ if(NOT BUILD_SHARED_LIBS)
+ target_sources(leveldb_tests
+ PRIVATE
+ "db/autocompact_test.cc"
+ "db/corruption_test.cc"
+ "db/db_test.cc"
+ "db/dbformat_test.cc"
+ "db/filename_test.cc"
+ "db/log_test.cc"
+ "db/recovery_test.cc"
+ "db/skiplist_test.cc"
+ "db/version_edit_test.cc"
+ "db/version_set_test.cc"
+ "db/write_batch_test.cc"
+ "helpers/memenv/memenv_test.cc"
+ "table/filter_block_test.cc"
+ "table/table_test.cc"
+ "util/arena_test.cc"
+ "util/bloom_test.cc"
+ "util/cache_test.cc"
+ "util/coding_test.cc"
+ "util/crc32c_test.cc"
+ "util/hash_test.cc"
+ "util/logging_test.cc"
+ )
+ endif(NOT BUILD_SHARED_LIBS)
+ target_link_libraries(leveldb_tests leveldb gmock gtest gtest_main)
+ target_compile_definitions(leveldb_tests
+ PRIVATE
+ ${LEVELDB_PLATFORM_NAME}=1
+ )
+ if (NOT HAVE_CXX17_HAS_INCLUDE)
+ target_compile_definitions(leveldb_tests
+ PRIVATE
+ LEVELDB_HAS_PORT_CONFIG_H=1
+ )
+ endif(NOT HAVE_CXX17_HAS_INCLUDE)
+
+ add_test(NAME "leveldb_tests" COMMAND "leveldb_tests")
+
function(leveldb_test test_file)
get_filename_component(test_target_name "${test_file}" NAME_WE)
@@ -286,14 +367,12 @@ if(LEVELDB_BUILD_TESTS)
target_sources("${test_target_name}"
PRIVATE
"${PROJECT_BINARY_DIR}/${LEVELDB_PORT_CONFIG_DIR}/port_config.h"
- "${PROJECT_SOURCE_DIR}/util/testharness.cc"
- "${PROJECT_SOURCE_DIR}/util/testharness.h"
- "${PROJECT_SOURCE_DIR}/util/testutil.cc"
- "${PROJECT_SOURCE_DIR}/util/testutil.h"
+ "util/testutil.cc"
+ "util/testutil.h"
"${test_file}"
)
- target_link_libraries("${test_target_name}" leveldb)
+ target_link_libraries("${test_target_name}" leveldb gmock gtest)
target_compile_definitions("${test_target_name}"
PRIVATE
${LEVELDB_PLATFORM_NAME}=1
@@ -308,54 +387,25 @@ if(LEVELDB_BUILD_TESTS)
add_test(NAME "${test_target_name}" COMMAND "${test_target_name}")
endfunction(leveldb_test)
- leveldb_test("${PROJECT_SOURCE_DIR}/db/c_test.c")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/fault_injection_test.cc")
-
- leveldb_test("${PROJECT_SOURCE_DIR}/issues/issue178_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/issues/issue200_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/issues/issue320_test.cc")
-
- leveldb_test("${PROJECT_SOURCE_DIR}/util/env_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/status_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/no_destructor_test.cc")
+ leveldb_test("db/c_test.c")
if(NOT BUILD_SHARED_LIBS)
- leveldb_test("${PROJECT_SOURCE_DIR}/db/autocompact_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/corruption_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/db_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/dbformat_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/filename_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/log_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/recovery_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/skiplist_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/version_edit_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/version_set_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/db/write_batch_test.cc")
-
- leveldb_test("${PROJECT_SOURCE_DIR}/helpers/memenv/memenv_test.cc")
-
- leveldb_test("${PROJECT_SOURCE_DIR}/table/filter_block_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/table/table_test.cc")
-
- leveldb_test("${PROJECT_SOURCE_DIR}/util/arena_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/bloom_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/cache_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/coding_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/crc32c_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/hash_test.cc")
- leveldb_test("${PROJECT_SOURCE_DIR}/util/logging_test.cc")
-
# TODO(costan): This test also uses
- # "${PROJECT_SOURCE_DIR}/util/env_{posix|windows}_test_helper.h"
+ # "util/env_{posix|windows}_test_helper.h"
if (WIN32)
- leveldb_test("${PROJECT_SOURCE_DIR}/util/env_windows_test.cc")
+ leveldb_test("util/env_windows_test.cc")
else (WIN32)
- leveldb_test("${PROJECT_SOURCE_DIR}/util/env_posix_test.cc")
+ leveldb_test("util/env_posix_test.cc")
endif (WIN32)
endif(NOT BUILD_SHARED_LIBS)
endif(LEVELDB_BUILD_TESTS)
if(LEVELDB_BUILD_BENCHMARKS)
+ # This project uses Google benchmark for benchmarking.
+ set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
+ set(BENCHMARK_ENABLE_EXCEPTIONS OFF CACHE BOOL "" FORCE)
+ add_subdirectory("third_party/benchmark")
+
function(leveldb_benchmark bench_file)
get_filename_component(bench_target_name "${bench_file}" NAME_WE)
@@ -363,16 +413,14 @@ if(LEVELDB_BUILD_BENCHMARKS)
target_sources("${bench_target_name}"
PRIVATE
"${PROJECT_BINARY_DIR}/${LEVELDB_PORT_CONFIG_DIR}/port_config.h"
- "${PROJECT_SOURCE_DIR}/util/histogram.cc"
- "${PROJECT_SOURCE_DIR}/util/histogram.h"
- "${PROJECT_SOURCE_DIR}/util/testharness.cc"
- "${PROJECT_SOURCE_DIR}/util/testharness.h"
- "${PROJECT_SOURCE_DIR}/util/testutil.cc"
- "${PROJECT_SOURCE_DIR}/util/testutil.h"
+ "util/histogram.cc"
+ "util/histogram.h"
+ "util/testutil.cc"
+ "util/testutil.h"
"${bench_file}"
)
- target_link_libraries("${bench_target_name}" leveldb)
+ target_link_libraries("${bench_target_name}" leveldb gmock gtest benchmark)
target_compile_definitions("${bench_target_name}"
PRIVATE
${LEVELDB_PLATFORM_NAME}=1
@@ -386,12 +434,12 @@ if(LEVELDB_BUILD_BENCHMARKS)
endfunction(leveldb_benchmark)
if(NOT BUILD_SHARED_LIBS)
- leveldb_benchmark("${PROJECT_SOURCE_DIR}/benchmarks/db_bench.cc")
+ leveldb_benchmark("benchmarks/db_bench.cc")
endif(NOT BUILD_SHARED_LIBS)
check_library_exists(sqlite3 sqlite3_open "" HAVE_SQLITE3)
if(HAVE_SQLITE3)
- leveldb_benchmark("${PROJECT_SOURCE_DIR}/benchmarks/db_bench_sqlite3.cc")
+ leveldb_benchmark("benchmarks/db_bench_sqlite3.cc")
target_link_libraries(db_bench_sqlite3 sqlite3)
endif(HAVE_SQLITE3)
@@ -411,13 +459,12 @@ int main() {
" HAVE_KYOTOCABINET)
set(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQURED_LIBRARIES})
if(HAVE_KYOTOCABINET)
- leveldb_benchmark("${PROJECT_SOURCE_DIR}/benchmarks/db_bench_tree_db.cc")
+ leveldb_benchmark("benchmarks/db_bench_tree_db.cc")
target_link_libraries(db_bench_tree_db kyotocabinet)
endif(HAVE_KYOTOCABINET)
endif(LEVELDB_BUILD_BENCHMARKS)
if(LEVELDB_INSTALL)
- include(GNUInstallDirs)
install(TARGETS leveldb
EXPORT leveldbTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
@@ -426,38 +473,43 @@ if(LEVELDB_INSTALL)
)
install(
FILES
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/c.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/cache.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/comparator.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/db.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/dumpfile.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/env.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/export.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/filter_policy.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/iterator.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/options.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/slice.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/status.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/table_builder.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/table.h"
- "${PROJECT_SOURCE_DIR}/${LEVELDB_PUBLIC_INCLUDE_DIR}/write_batch.h"
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/leveldb
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/c.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/cache.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/comparator.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/db.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/dumpfile.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/env.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/export.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/filter_policy.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/iterator.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/options.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/slice.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/status.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/table_builder.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/table.h"
+ "${LEVELDB_PUBLIC_INCLUDE_DIR}/write_batch.h"
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/leveldb"
)
include(CMakePackageConfigHelpers)
+ configure_package_config_file(
+ "cmake/${PROJECT_NAME}Config.cmake.in"
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
+ )
write_basic_package_version_file(
- "${PROJECT_BINARY_DIR}/leveldbConfigVersion.cmake"
- COMPATIBILITY SameMajorVersion
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
+ COMPATIBILITY SameMajorVersion
)
install(
EXPORT leveldbTargets
NAMESPACE leveldb::
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/leveldb"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
)
install(
FILES
- "${PROJECT_SOURCE_DIR}/cmake/leveldbConfig.cmake"
- "${PROJECT_BINARY_DIR}/leveldbConfigVersion.cmake"
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/leveldb"
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
)
endif(LEVELDB_INSTALL)