Page MenuHomePhabricator

D5451.diff
No OneTemporary

D5451.diff

diff --git a/cmake/modules/FindQREncode.cmake b/cmake/modules/FindQREncode.cmake
--- a/cmake/modules/FindQREncode.cmake
+++ b/cmake/modules/FindQREncode.cmake
@@ -1,27 +1,54 @@
-# Try to find libqrencode
-# QRENCODE_FOUND - system has libqrencode
-# QRENCODE_INCLUDE_DIR - the libqrencode include directory
-# QRENCODE_LIBRARY - Library needed to use libqrencode
+# Copyright (c) 2019-2020 The Bitcoin developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-if (QRENCODE_INCLUDE_DIR AND QRENCODE_LIBRARY)
- # Already in cache, be silent
- set(QRENCODE_FIND_QUIETLY TRUE)
-endif()
+#.rst
+# FindQREncode
+# -------------
+#
+# Find the QREncode library. The following
+# components are available::
+# qrencode
+#
+# This will define the following variables::
+#
+# QREncode_FOUND - system has QREncode lib
+# QREncode_INCLUDE_DIRS - the QREncode include directories
+# QREncode_LIBRARIES - Libraries needed to use QREncode
+#
+# And the following imported target::
+#
+# QREncode::qrencode
-find_path(QRENCODE_INCLUDE_DIR qrencode.h)
+include(BrewHelper)
+find_brew_prefix(BREW_HINT qrencode)
-find_library(QRENCODE_LIBRARY NAMES qrencode libqrencode)
+find_package(PkgConfig)
+pkg_check_modules(PC_QREncode QUIET libqrencode)
-message(STATUS "QREncode lib: " ${QRENCODE_LIBRARY})
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(
- QREncode DEFAULT_MSG
- QRENCODE_INCLUDE_DIR
- QRENCODE_LIBRARY
+find_path(QREncode_INCLUDE_DIR
+ NAMES qrencode.h
+ HINTS ${BREW_HINT}
+ PATHS ${PC_QREncode_INCLUDE_DIRS}
)
-mark_as_advanced(QRENCODE_INCLUDE_DIR QRENCODE_LIBRARY)
+set(QREncode_INCLUDE_DIRS "${QREncode_INCLUDE_DIR}")
+mark_as_advanced(QREncode_INCLUDE_DIR)
-set(QREncode_LIBRARIES ${QRENCODE_LIBRARY})
-set(QREncode_INCLUDE_DIRS ${QRENCODE_INCLUDE_DIR})
+# TODO: extract a version number.
+# For now qrencode does not provide an easy way to extract a version number.
+
+include(ExternalLibraryHelper)
+find_component(QREncode qrencode
+ NAMES qrencode
+ HINTS ${BREW_HINT}
+ PATHS ${PC_QREncode_LIBRARY_DIRS}
+ INCLUDE_DIRS ${QREncode_INCLUDE_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(QREncode
+ REQUIRED_VARS
+ QREncode_INCLUDE_DIR
+ HANDLE_COMPONENTS
+)
diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt
--- a/src/config/CMakeLists.txt
+++ b/src/config/CMakeLists.txt
@@ -210,7 +210,6 @@
# Try to find libqrencode
# Only used in the wallet GUI
if(ENABLE_QRCODE AND BUILD_BITCOIN_WALLET AND BUILD_BITCOIN_QT)
- find_package(QREncode REQUIRED)
set(USE_QRCODE 1 CACHE INTERNAL "QR code is enabled")
endif()
diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt
--- a/src/qt/CMakeLists.txt
+++ b/src/qt/CMakeLists.txt
@@ -305,8 +305,8 @@
target_link_libraries(bitcoin-qt-base wallet)
if(ENABLE_QRCODE)
- target_include_directories(bitcoin-qt-base PUBLIC ${QRENCODE_INCLUDE_DIR})
- target_link_libraries(bitcoin-qt-base ${QRENCODE_LIBRARY})
+ find_package(QREncode REQUIRED)
+ target_link_libraries(bitcoin-qt-base QREncode::qrencode)
endif()
endif()

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 1, 11:28 (5 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5187609
Default Alt Text
D5451.diff (3 KB)

Event Timeline