aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--external/db_drivers/CMakeLists.txt34
-rw-r--r--src/blockchain_db/CMakeLists.txt13
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp7
4 files changed, 41 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 92f8381cc..2f0494396 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -178,7 +178,9 @@ include_directories(external/rapidjson)
include_directories(${LMDB_INCLUDE})
# Final setup for Berkeley DB
-include_directories(${BDB_INCLUDE})
+if (NOT STATIC)
+ include_directories(${BDB_INCLUDE})
+endif()
if(MSVC)
add_definitions("/bigobj /MP /W3 /GS- /D_CRT_SECURE_NO_WARNINGS /wd4996 /wd4345 /D_WIN32_WINNT=0x0600 /DWIN32_LEAN_AND_MEAN /DGTEST_HAS_TR1_TUPLE=0 /FIinline_c.h /D__SSE4_1__")
diff --git a/external/db_drivers/CMakeLists.txt b/external/db_drivers/CMakeLists.txt
index b6865a037..99b3a20bf 100644
--- a/external/db_drivers/CMakeLists.txt
+++ b/external/db_drivers/CMakeLists.txt
@@ -34,24 +34,26 @@ set(LMDB_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/liblmdb${ARCH_WIDTH}" CACHE STRING
set(LMDB_LIBRARY "lmdb" CACHE STRING "LMDB Library name")
-find_package(BerkeleyDB)
+if (NOT STATIC)
+ find_package(BerkeleyDB)
-if(NOT BERKELEY_DB_LIBRARIES OR STATIC)
- add_subdirectory(libdb)
- message(STATUS "BerkeleyDB not found, building from src tree")
+ if(NOT BERKELEY_DB_LIBRARIES OR STATIC)
+ add_subdirectory(libdb)
+ message(STATUS "BerkeleyDB not found, building from src tree")
- set(BDB_STATIC true CACHE BOOL "BDB Static flag")
- set(BDB_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/libdb" CACHE STRING "BDB include path")
- set(BDB_LIBRARY "db" CACHE STRING "BDB library name")
-else()
- message(STATUS "Found BerkeleyDB include (db.h) in ${BERKELEY_DB_INCLUDE_DIR}")
- if(BERKELEY_DB_LIBRARIES)
- message(STATUS "Found BerkeleyDB shared library")
- set(BDB_STATIC false CACHE BOOL "BDB Static flag")
- set(BDB_INCLUDE ${BERKELEY_DB_INCLUDE_DIR} CACHE STRING "BDB include path")
- set(BDB_LIBRARY ${BERKELEY_DB_LIBRARIES} CACHE STRING "BDB library name")
- set(BDB_LIBRARY_DIRS "" CACHE STRING "BDB Library dirs")
+ set(BDB_STATIC true CACHE BOOL "BDB Static flag")
+ set(BDB_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/libdb" CACHE STRING "BDB include path")
+ set(BDB_LIBRARY "db" CACHE STRING "BDB library name")
else()
- die("Found BerkeleyDB includes, but could not find BerkeleyDB library. Please make sure you have installed libdb and libdb-dev or the equivalent")
+ message(STATUS "Found BerkeleyDB include (db.h) in ${BERKELEY_DB_INCLUDE_DIR}")
+ if(BERKELEY_DB_LIBRARIES)
+ message(STATUS "Found BerkeleyDB shared library")
+ set(BDB_STATIC false CACHE BOOL "BDB Static flag")
+ set(BDB_INCLUDE ${BERKELEY_DB_INCLUDE_DIR} CACHE STRING "BDB include path")
+ set(BDB_LIBRARY ${BERKELEY_DB_LIBRARIES} CACHE STRING "BDB library name")
+ set(BDB_LIBRARY_DIRS "" CACHE STRING "BDB Library dirs")
+ else()
+ die("Found BerkeleyDB includes, but could not find BerkeleyDB library. Please make sure you have installed libdb and libdb-dev or the equivalent")
+ endif()
endif()
endif()
diff --git a/src/blockchain_db/CMakeLists.txt b/src/blockchain_db/CMakeLists.txt
index 70b4c876c..adbe804aa 100644
--- a/src/blockchain_db/CMakeLists.txt
+++ b/src/blockchain_db/CMakeLists.txt
@@ -29,16 +29,29 @@
set(blockchain_db_sources
blockchain_db.cpp
lmdb/db_lmdb.cpp
+ )
+
+if (NOT STATIC)
+ set(blockchain_db_sources
+ ${blockchain_db_sources}
berkeleydb/db_bdb.cpp
)
+endif()
+
set(blockchain_db_headers)
set(blockchain_db_private_headers
blockchain_db.h
lmdb/db_lmdb.h
+ )
+
+if (NOT STATIC)
+ set(blockchain_db_private_headers
+ ${blockchain_db_private_headers}
berkeleydb/db_bdb.h
)
+endif()
bitmonero_private_headers(blockchain_db
${crypto_private_headers})
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp
index 7864b55c8..38c009ca8 100644
--- a/src/cryptonote_core/cryptonote_core.cpp
+++ b/src/cryptonote_core/cryptonote_core.cpp
@@ -46,7 +46,9 @@ using namespace epee;
#include "cryptonote_core/checkpoints_create.h"
#include "blockchain_db/blockchain_db.h"
#include "blockchain_db/lmdb/db_lmdb.h"
+#ifndef STATICLIB
#include "blockchain_db/berkeleydb/db_bdb.h"
+#endif
DISABLE_VS_WARNINGS(4355)
@@ -207,7 +209,12 @@ namespace cryptonote
}
else if (db_type == "berkeley")
{
+#ifndef STATICLIB
db = new BlockchainBDB();
+#else
+ LOG_ERROR("BlockchainBDB not supported on STATIC builds");
+ return false;
+#endif
}
else
{