diff options
author | Craig Scott <craig.scott@qt.io> | 2021-01-14 15:01:28 +1100 |
---|---|---|
committer | Craig Scott <craig.scott@qt.io> | 2021-01-18 15:42:52 +1100 |
commit | b59f77aab461302f51a9a4d395349fbb4b072b55 (patch) | |
tree | 253b6b7a43f7eacf681d6d65e486b723a47f0e8d /cmake | |
parent | f283f0621607ab8d19b5ca53b31158b41456a6df (diff) |
FindLibb2: Don't rely solely on pkg-config
Task-number: QTBUG-86283
Change-Id: Ie455d7cfc6e6f9ae8297f8bc0daf2816ccce91b6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/FindLibb2.cmake | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/cmake/FindLibb2.cmake b/cmake/FindLibb2.cmake index 18b6e4df04..0e4a7f2a95 100644 --- a/cmake/FindLibb2.cmake +++ b/cmake/FindLibb2.cmake @@ -1,7 +1,37 @@ +# Blake2 contains a reference implementation, libb2 is a more efficient +# implementation of a subset of Blake2 functions and should be preferred. +# This Find module only searches for libb2 for that reason. + +if(TARGET Libb2::Libb2) + set(Libb2_FOUND TRUE) + return() +endif() + find_package(PkgConfig QUIET) -pkg_check_modules(Libb2 libb2 IMPORTED_TARGET) +if(PkgConfig_FOUND) + pkg_check_modules(Libb2 libb2 IMPORTED_TARGET) + + if (TARGET PkgConfig::Libb2) + add_library(Libb2::Libb2 INTERFACE IMPORTED) + target_link_libraries(Libb2::Libb2 INTERFACE PkgConfig::Libb2) + set(Libb2_FOUND TRUE) + endif() +else() + find_path(LIBB2_INCLUDE_DIR NAMES blake2.h) + find_library(LIBB2_LIBRARY NAMES b2) + + if(LIBB2_LIBRARY AND LIBB2_INCLUDE_DIR) + add_library(Libb2::Libb2 UNKNOWN IMPORTED) + set_target_properties(Libb2::Libb2 PROPERTIES + IMPORTED_LOCATION ${LIBB2_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${LIBB2_INCLUDE_DIR} + ) + endif() -if (NOT TARGET PkgConfig::Libb2) - set(Libb2_FOUND 0) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Libb2 REQUIRED_VARS + LIBB2_LIBRARY + LIBB2_INCLUDE_DIR + ) endif() |