diff --git a/cmake/modules/FindBerkeleyDB.cmake b/cmake/modules/FindBerkeleyDB.cmake --- a/cmake/modules/FindBerkeleyDB.cmake +++ b/cmake/modules/FindBerkeleyDB.cmake @@ -5,17 +5,44 @@ # BDBXX_INCLUDE_DIR - the Berkeley DB include directory for C++ # BDBXX_LIBRARY - Library needed to use Berkeley DB C++ API -find_path(BDB_INCLUDE_DIR NAMES db.h) -find_library(BDB_LIBRARY NAMES db libdb) +if (NOT DEFINED BDB_ROOT_DIR) + set(BDB_ROOT_DIR $ENV{BDB_ROOT_DIR}) +endif() -find_path(BDBXX_INCLUDE_DIR NAMES db_cxx.h) -find_library(BDBXX_LIBRARY NAMES db_cxx libdb_cxx) +find_path(BDB_INCLUDE_DIR + NAMES + db.h + PATHS + "${BDB_ROOT_DIR}/include/" +) +find_library(BDB_LIBRARY + NAMES + db libdb + PATHS + "${BDB_ROOT_DIR}/lib/" +) + +find_path(BDBXX_INCLUDE_DIR + NAMES + db_cxx.h + PATHS + "${BDB_ROOT_DIR}/include/" +) +find_library(BDBXX_LIBRARY + NAMES + db_cxx libdb_cxx + PATHS + "${BDB_ROOT_DIR}/lib/") MESSAGE(STATUS "BerkeleyDB libs: " ${BDB_LIBRARY} " " ${BDBXX_LIBRARY}) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(BerkeleyDB DEFAULT_MSG BDB_INCLUDE_DIR BDB_LIBRARY BDBXX_INCLUDE_DIR BDBXX_LIBRARY) - +find_package_handle_standard_args(BerkeleyDB + REQUIRED_VARS + BDB_INCLUDE_DIR BDB_LIBRARY BDBXX_INCLUDE_DIR BDBXX_LIBRARY + FAIL_MESSAGE + "Could NOT find BerkeleyDB, try to set the path to BerkeleyDB root folder in the system variable BDB_ROOT_DIR" +) mark_as_advanced(BDB_INCLUDE_DIR BDB_LIBRARY BDBXX_INCLUDE_DIR BDBXX_LIBRARY) set(BerkeleyDB_LIBRARIES ${BDB_LIBRARY} ${BDBXX_LIBRARY})