From: Jonathan McDowell Date: Fri, 8 Sep 2023 13:52:56 +0000 (+0100) Subject: Add CMake checking for Berkeley DB X-Git-Tag: onak-0.6.3~26 X-Git-Url: https://the.earth.li/gitweb/?a=commitdiff_plain;h=f281cecfca0f0482461b36b09d077bb39578593d;p=onak.git Add CMake checking for Berkeley DB Rather than hard coding the fact we build in Berkeley DB support, actually check for the existence of the library and only build it if we find it. --- diff --git a/cmake/FindBDB.cmake b/cmake/FindBDB.cmake new file mode 100644 index 0000000..aa82c1a --- /dev/null +++ b/cmake/FindBDB.cmake @@ -0,0 +1,24 @@ +# No pkg-config support in Berkeley DB, so try to find it manually + +set(BDB_PREFIX "" CACHE PATH "path ") + +find_path(BDB_INCLUDE_DIR db.h + PATHS ${BDB_PREFIX}/include /usr/include /usr/local/include) + +find_library(BDB_LIBRARY NAMES db + PATHS ${BDB_PREFIX}/lib /usr/lib /usr/local/lib) + +if(BDB_INCLUDE_DIR AND BDB_LIBRARY) + get_filename_component(BDB_LIBRARY_DIR ${BDB_LIBRARY} PATH) + set(BDB_FOUND TRUE) +endif() + +if(BDB_FOUND) + if(NOT BDB_FIND_QUIETLY) + MESSAGE(STATUS "Found Berkeley DB: ${BDB_LIBRARY}") + endif() +elseif(BDB_FOUND) + if(BDB_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Berkeley DB") + endif() +endif() diff --git a/keydb/CMakeLists.txt b/keydb/CMakeLists.txt index 35911f6..3d09dc4 100644 --- a/keydb/CMakeLists.txt +++ b/keydb/CMakeLists.txt @@ -4,8 +4,11 @@ set(BACKENDS "file" "fs" "keyring" "stacked") # DB4 backend (add check for existence) -LIST(APPEND BACKENDS db4) -set(BACKEND_db4_LIBS db-5.3) +find_package(BDB) +if (BDB_FOUND) + LIST(APPEND BACKENDS db4) + set(BACKEND_db4_LIBS db) +endif() # HKP backend - needs libcurl pkg_check_modules(CURL libcurl)