diff options
-rw-r--r-- | cmake/FindLibb2.cmake | 36 | ||||
-rw-r--r-- | src/corelib/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/corelib/configure.cmake | 2 | ||||
-rw-r--r-- | src/corelib/configure.json | 3 | ||||
-rw-r--r-- | util/cmake/helper.py | 2 |
5 files changed, 38 insertions, 7 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() diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index dde69339f0..355ba42ee6 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -756,7 +756,7 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_doubleconversion AND NOT QT_ qt_internal_extend_target(Core CONDITION QT_FEATURE_system_libb2 LIBRARIES - PkgConfig::Libb2 + Libb2::Libb2 ) qt_internal_extend_target(Core CONDITION QT_FEATURE_easingcurve diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index 095b12ea96..1c585f5b3c 100644 --- a/src/corelib/configure.cmake +++ b/src/corelib/configure.cmake @@ -22,7 +22,7 @@ if(QT_FEATURE_dlopen) endif() qt_find_package(Libsystemd PROVIDED_TARGETS PkgConfig::Libsystemd MODULE_NAME core QMAKE_LIB journald) qt_find_package(WrapAtomic PROVIDED_TARGETS WrapAtomic::WrapAtomic MODULE_NAME core QMAKE_LIB libatomic) -qt_find_package(Libb2 PROVIDED_TARGETS PkgConfig::Libb2 MODULE_NAME core QMAKE_LIB libb2) +qt_find_package(Libb2 PROVIDED_TARGETS Libb2::Libb2 MODULE_NAME core QMAKE_LIB libb2) qt_find_package(WrapRt PROVIDED_TARGETS WrapRt::WrapRt MODULE_NAME core QMAKE_LIB librt) qt_find_package(LTTngUST PROVIDED_TARGETS LTTng::UST MODULE_NAME core QMAKE_LIB lttng-ust) qt_add_qmake_lib_dependency(lttng-ust libdl) diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 5e0bd51ec9..9c8615cf74 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -119,7 +119,8 @@ }, "headers": "blake2.h", "sources": [ - { "type": "pkgConfig", "args": "libb2" } + { "type": "pkgConfig", "args": "libb2" }, + "-lb2" ] }, "librt": { diff --git a/util/cmake/helper.py b/util/cmake/helper.py index f7de8e75cb..23bc39982c 100644 --- a/util/cmake/helper.py +++ b/util/cmake/helper.py @@ -440,7 +440,7 @@ _library_map = [ LibraryMapping("journald", "Libsystemd", "PkgConfig::Libsystemd"), LibraryMapping("jpeg", "JPEG", "JPEG::JPEG"), # see also libjpeg LibraryMapping("libatomic", "WrapAtomic", "WrapAtomic::WrapAtomic"), - LibraryMapping("libb2", "Libb2", "PkgConfig::Libb2"), + LibraryMapping("libb2", "Libb2", "Libb2::Libb2"), LibraryMapping("libclang", "WrapLibClang", "WrapLibClang::WrapLibClang"), LibraryMapping("libdl", None, "${CMAKE_DL_LIBS}"), LibraryMapping("libinput", "Libinput", "Libinput::Libinput"), |