summaryrefslogtreecommitdiff
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
parent8265d6c8fdc2dd835d9cf2a47af13461fa421389 (diff)
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
-rw-r--r--CMake/FindBerkeleyDB.cmake17
-rw-r--r--ftparchive/CMakeLists.txt1
2 files changed, 15 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)
diff --git a/ftparchive/CMakeLists.txt b/ftparchive/CMakeLists.txt
index 1e1dc36ca..799fd7335 100644
--- a/ftparchive/CMakeLists.txt
+++ b/ftparchive/CMakeLists.txt
@@ -1,3 +1,4 @@
+include_directories(${BERKELEY_DB_INCLUDE_DIRS})
# Create the executable tasks
file(GLOB_RECURSE source "*.cc")
add_executable(apt-ftparchive ${source})