diff options
author | Julian Andres Klode <jak@debian.org> | 2016-08-23 12:48:25 +0200 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2016-08-26 15:49:14 +0200 |
commit | 24ad9b325f2d277864e3a75931137b93dd75cd03 (patch) | |
tree | 2b824aad8624a30a958c8062e6876204bd805230 /CMake | |
parent | 8265d6c8fdc2dd835d9cf2a47af13461fa421389 (diff) | |
download | apt-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.cmake | 17 |
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) |