]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | # Find the native Rocksdb includes and library |
2 | # This module defines | |
3 | # ROCKSDB_INCLUDE_DIR, where to find rocksdb/db.h, Set when | |
4 | # ROCKSDB_INCLUDE_DIR is found. | |
5 | # ROCKSDB_LIBRARIES, libraries to link against to use Rocksdb. | |
6 | # ROCKSDB_FOUND, If false, do not try to use Rocksdb. | |
7 | # ROCKSDB_VERSION_STRING | |
8 | # ROCKSDB_VERSION_MAJOR | |
9 | # ROCKSDB_VERSION_MINOR | |
10 | # ROCKSDB_VERSION_PATCH | |
11 | ||
12 | find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h) | |
13 | ||
14 | find_library(ROCKSDB_LIBRARIES rocksdb) | |
15 | ||
16 | if(ROCKSDB_INCLUDE_DIR AND EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h") | |
17 | foreach(ver "MAJOR" "MINOR" "PATCH") | |
18 | file(STRINGS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h" ROCKSDB_VER_${ver}_LINE | |
19 | REGEX "^#define[ \t]+ROCKSDB_${ver}[ \t]+[0-9]+$") | |
20 | string(REGEX REPLACE "^#define[ \t]+ROCKSDB_${ver}[ \t]+([0-9]+)$" | |
21 | "\\1" ROCKSDB_VERSION_${ver} "${ROCKSDB_VER_${ver}_LINE}") | |
22 | unset(${ROCKSDB_VER_${ver}_LINE}) | |
23 | endforeach() | |
24 | set(ROCKSDB_VERSION_STRING | |
25 | "${ROCKSDB_VERSION_MAJOR}.${ROCKSDB_VERSION_MINOR}.${ROCKSDB_VERSION_PATCH}") | |
26 | endif() | |
27 | ||
28 | include(FindPackageHandleStandardArgs) | |
29 | find_package_handle_standard_args(RocksDB | |
30 | REQUIRED_VARS ROCKSDB_LIBRARIES ROCKSDB_INCLUDE_DIR | |
31 | VERSION_VAR ROCKSDB_VERSION_STRING) | |
32 | ||
33 | mark_as_advanced( | |
34 | ROCKSDB_INCLUDE_DIR | |
35 | ROCKSDB_LIBRARIES) | |
36 | ||
37 | if(RocksDB_FOUND) | |
38 | if(NOT TARGET RocksDB::RocksDB) | |
39 | add_library(RocksDB::RocksDB UNKNOWN IMPORTED) | |
40 | set_target_properties(RocksDB::RocksDB PROPERTIES | |
41 | INTERFACE_INCLUDE_DIRECTORIES "${ROCKSDB_INCLUDE_DIR}" | |
42 | IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" | |
43 | IMPORTED_LOCATION "${ROCKSDB_LIBRARIES}" | |
44 | VERSION "${ROCKSDB_VERSION_STRING}") | |
45 | endif() | |
46 | endif() | |
47 |