From dbe835e48547ef137957cd49399a057dc058bfed Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Thu, 16 Nov 2017 18:30:18 +0100 Subject: [PATCH] add cmake directives to build with Berkeley DB --- CMakeLists.txt | 1 + cmake/Modules/FindBerkeleyDB.cmake | 50 ++++++++++++++++++++++++++++++ src/CMakeLists.txt | 9 ++++++ 3 files changed, 60 insertions(+) create mode 100644 cmake/Modules/FindBerkeleyDB.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d9c15fa52..4aa4ca472 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ include(MSVC) endif (MSVC) find_package (SQLite3) +find_package (BerkeleyDB) find_package (Curses) find_package (LibXml2) find_package (ToLua REQUIRED) diff --git a/cmake/Modules/FindBerkeleyDB.cmake b/cmake/Modules/FindBerkeleyDB.cmake new file mode 100644 index 000000000..88b0621fe --- /dev/null +++ b/cmake/Modules/FindBerkeleyDB.cmake @@ -0,0 +1,50 @@ +# -*- cmake -*- + +# - Find BerkeleyDB +# Find the BerkeleyDB includes and library +# This module defines +# DB_INCLUDE_DIR, where to find db.h, etc. +# DB_LIBRARIES, the libraries needed to use BerkeleyDB. +# DB_FOUND, If false, do not try to use BerkeleyDB. +# also defined, but not for general use are +# DB_LIBRARY, where to find the BerkeleyDB library. + +FIND_PATH(DB_INCLUDE_DIR db.h + /usr/local/include/db4 + /usr/local/include + /usr/include/db4 + /usr/include + ) + +SET(DB_NAMES ${DB_NAMES} db) +FIND_LIBRARY(DB_LIBRARY + NAMES ${DB_NAMES} + PATHS /usr/lib /usr/local/lib + ) + +IF (DB_LIBRARY AND DB_INCLUDE_DIR) + SET(DB_LIBRARIES ${DB_LIBRARY}) + SET(DB_FOUND "YES") +ELSE (DB_LIBRARY AND DB_INCLUDE_DIR) + SET(DB_FOUND "NO") +ENDIF (DB_LIBRARY AND DB_INCLUDE_DIR) + + +IF (DB_FOUND) + IF (NOT DB_FIND_QUIETLY) + MESSAGE(STATUS "Found BerkeleyDB: ${DB_LIBRARIES}") + ENDIF (NOT DB_FIND_QUIETLY) +ELSE (DB_FOUND) + IF (DB_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find BerkeleyDB library") + ENDIF (DB_FIND_REQUIRED) +ENDIF (DB_FOUND) + +# Deprecated declarations. +SET (NATIVE_DB_INCLUDE_PATH ${DB_INCLUDE_DIR} ) +GET_FILENAME_COMPONENT (NATIVE_DB_LIB_PATH ${DB_LIBRARY} PATH) + +MARK_AS_ADVANCED( + DB_LIBRARY + DB_INCLUDE_DIR + ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c5b1b40b2..987c6d2be 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -265,7 +265,16 @@ add_test(server test_eressea) install(TARGETS eressea DESTINATION "bin") +if (DB_FOUND) +include_directories (${DB_INCLUDE_DIR}) +target_link_libraries(convert ${DB_LIBRARIES}) +target_link_libraries(eressea ${DB_LIBRARIES}) +target_link_libraries(test_eressea ${DB_LIBRARIES}) +add_definitions(-DUSE_DB) +endif(DB_FOUND) + if (SQLITE3_FOUND) +include_directories (${SQLITE3_INCLUDE_DIR}) target_link_libraries(eressea ${SQLITE3_LIBRARIES}) target_link_libraries(convert ${SQLITE3_LIBRARIES}) target_link_libraries(test_eressea ${SQLITE3_LIBRARIES})