summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2016-08-23 12:48:25 +0200
committerJulian Andres Klode <jak@debian.org>2016-08-26 15:49:14 +0200
commit24ad9b325f2d277864e3a75931137b93dd75cd03 (patch)
tree2b824aad8624a30a958c8062e6876204bd805230 /CMake
parent8265d6c8fdc2dd835d9cf2a47af13461fa421389 (diff)
downloadapt-24ad9b325f2d277864e3a75931137b93dd75cd03.tar.gz
CMake: Handle Berkeley DB on FreeBSD
The BSD systems still ship their own db.h with a historical BSD implementation, which is preferred by CMake, as it searches its default path first. We thus have to disable the DEFAULT_PATH for the search, unfortunately. We also need to pass the correct include directory to the target. Furthermore, on FreeBSD the library is called db-<VERSION>, so let's add db-5 to the list of allowed names. Gbp-Dch: ignore
Diffstat (limited to 'CMake')
-rw-r--r--CMake/FindBerkeleyDB.cmake17
1 files changed, 14 insertions, 3 deletions
diff --git a/CMake/FindBerkeleyDB.cmake b/CMake/FindBerkeleyDB.cmake
index 44cfd3ddb..34bc3b0d1 100644
--- a/CMake/FindBerkeleyDB.cmake
+++ b/CMake/FindBerkeleyDB.cmake
@@ -33,14 +33,25 @@
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# We need NO_DEFAULT_PATH here, otherwise CMake helpfully picks up the wrong
+# db.h on BSD systems instead of the Berkeley DB one.
find_path(BERKELEY_DB_INCLUDE_DIRS db.h
- /usr/include/db5
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR}/db5
/usr/local/include/db5
- /usr/include/db4
+ /usr/include/db5
+
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR}/db4
/usr/local/include/db4
+ /usr/include/db4
+
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR}
+ /usr/local/include
+ /usr/include
+
+ NO_DEFAULT_PATH
)
-find_library(BERKELEY_DB_LIBRARIES NAMES db )
+find_library(BERKELEY_DB_LIBRARIES NAMES db db-5)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Berkeley "Could not find Berkeley DB >= 4.1" BERKELEY_DB_INCLUDE_DIRS BERKELEY_DB_LIBRARIES)