Skip to content

Commit c4f6665

Browse files
committed
[Build] Clean up GUI dependency checking
- Remove internal check for QtCharts in bitcoin_qt.m4 - Properly warn when libqrencode is missing - Properly warn when QtSvg or QtConcurrent is missing - Fix qtchartview.h path to properly detect QtCharts
1 parent 0d05b53 commit c4f6665

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

build-aux/m4/bitcoin_qt.m4

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
111111
BITCOIN_QT_CHECK([
112112
TEMP_CPPFLAGS=$CPPFLAGS
113113
TEMP_CXXFLAGS=$CXXFLAGS
114-
CPPFLAGS="$QT_INCLUDES $CPPFLAGS"
114+
CPPFLAGS="$QT_INCLUDES $QT_SVG_INCLUDES $CPPFLAGS"
115115
CXXFLAGS="$PIC_FLAGS $CXXFLAGS"
116116
_BITCOIN_QT_IS_STATIC
117117
if test "x$bitcoin_cv_static_qt" = xyes; then
@@ -255,6 +255,8 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
255255
AC_SUBST(QT_INCLUDES)
256256
AC_SUBST(QT_LIBS)
257257
AC_SUBST(QT_LDFLAGS)
258+
AC_SUBST(QT_SVG_INCLUDES)
259+
AC_SUBST(QT_SVG_LIBS)
258260
AC_SUBST(QT_DBUS_INCLUDES)
259261
AC_SUBST(QT_DBUS_LIBS)
260262
AC_SUBST(QT_TEST_INCLUDES)
@@ -385,7 +387,6 @@ AC_DEFUN([_BITCOIN_QT_FIND_STATIC_PLUGINS],[
385387
PKG_CHECK_MODULES([QTGRAPHICS], [Qt5GraphicsSupport], [QT_LIBS="-lQt5GraphicsSupport $QT_LIBS"])
386388
PKG_CHECK_MODULES([QTCGL], [Qt5CglSupport], [QT_LIBS="-lQt5CglSupport $QT_LIBS"])
387389
fi
388-
@echo "QT_LIBS: $(QT_LIBS)"
389390
])
390391
else
391392
if test "x$TARGET_OS" = xwindows; then
@@ -432,7 +433,7 @@ dnl Outputs: have_qt_test and have_qt_dbus are set (if applicable) to yes|no.
432433
AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITH_PKGCONFIG],[
433434
m4_ifdef([PKG_CHECK_MODULES],[
434435
QT_LIB_PREFIX=Qt5
435-
qt5_modules="Qt5Core Qt5Gui Qt5Network Qt5Widgets Qt5Svg Qt5Concurrent"
436+
qt5_modules="Qt5Core Qt5Gui Qt5Network Qt5Widgets"
436437
BITCOIN_QT_CHECK([
437438
PKG_CHECK_MODULES([QT5], [$qt5_modules], [QT_INCLUDES="$QT5_CFLAGS"; QT_LIBS="$QT5_LIBS" have_qt=yes],[have_qt=no])
438439
@@ -441,6 +442,12 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITH_PKGCONFIG],[
441442
BITCOIN_QT_FAIL([Qt dependencies not found])
442443
fi
443444
])
445+
BITCOIN_QT_CHECK([
446+
PKG_CHECK_MODULES([QT_SVG], [${QT_LIB_PREFIX}Svg], [QT_SVG_INCLUDES="$QT_SVG_CFLAGS"; QT_LIBS="$QT_LIBS $QT_SVG_LIBS"],, BITCOIN_QT_FAIL([QtSvg not found]))
447+
])
448+
BITCOIN_QT_CHECK([
449+
PKG_CHECK_MODULES([QT_CONCURRENT], [${QT_LIB_PREFIX}Concurrent], [QT_INCLUDES="$QT_INCLUDES $QT_CONCURRENT_CFLAGS"; QT_LIBS="$QT_LIBS $QT_CONCURRENT_LIBS"],, BITCOIN_QT_FAIL([QtConcurrent not found]))
450+
])
444451
BITCOIN_QT_CHECK([
445452
PKG_CHECK_MODULES([QT_TEST], [${QT_LIB_PREFIX}Test], [QT_TEST_INCLUDES="$QT_TEST_CFLAGS"; have_qt_test=yes], [have_qt_test=no])
446453
if test "x$use_dbus" != xno; then
@@ -472,8 +479,6 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITHOUT_PKGCONFIG],[
472479
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QtPlugin],,BITCOIN_QT_FAIL(QtCore headers missing))])
473480
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QApplication],, BITCOIN_QT_FAIL(QtGui headers missing))])
474481
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QLocalSocket],, BITCOIN_QT_FAIL(QtNetwork headers missing))])
475-
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QtSvg],, BITCOIN_QT_FAIL(QtSvg headers missing))])
476-
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QtCharts],, BITCOIN_QT_FAIL(QtCharts headers missing))])
477482
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QtConcurrent],, BITCOIN_QT_FAIL(QtConcurrent headers missing))])
478483
479484
BITCOIN_QT_CHECK([
@@ -509,12 +514,19 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITHOUT_PKGCONFIG],[
509514
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Gui] ,[main],,BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Gui not found)))
510515
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Network],[main],,BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Network not found)))
511516
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Widgets],[main],,BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Widgets not found)))
512-
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Svg],[main],,BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Svg not found)))
513517
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Concurrent],[main],,BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Concurrent not found)))
514518
QT_LIBS="$LIBS"
515519
LIBS="$TEMP_LIBS"
516520
517521
BITCOIN_QT_CHECK([
522+
LIBS=
523+
if test "x$qt_lib_path" != x; then
524+
LIBS="-L$qt_lib_path"
525+
fi
526+
AC_CHECK_LIB([${QT_LIB_PREFIX}Svg], [main],, BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Svg not found))
527+
AC_CHECK_HEADER([QtSvg],, BITCOIN_QT_FAIL(lib${QT_LIB_PREFIX}Svg not found))
528+
QT_LIBS="$QT_LIBS $LIBS"
529+
QT_SVG_LIBS="$LIBS"
518530
LIBS=
519531
if test "x$qt_lib_path" != x; then
520532
LIBS="-L$qt_lib_path"

configure.ac

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ AC_ARG_ENABLE([extended-functional-tests],
140140

141141
AC_ARG_WITH([qtcharts],
142142
[AS_HELP_STRING([--with-qtcharts],
143-
[enable QTCHARTS code support (default is yes if qt is enabled and qtchartview is found)])],
143+
[enable qtcharts support (default is yes if qt is enabled and qtchartview is found)])],
144144
[use_qtcharts=$withval],
145145
[use_qtcharts=auto])
146146

@@ -1024,11 +1024,10 @@ if test x$use_pkgconfig = xyes; then
10241024
PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)])
10251025
PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto not found.)])
10261026
BITCOIN_QT_CHECK([PKG_CHECK_MODULES([PROTOBUF], [protobuf], [have_protobuf=yes], [BITCOIN_QT_FAIL(libprotobuf not found)])])
1027-
BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
1027+
BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode],,[BITCOIN_QT_FAIL(libqrencode not found)])])
10281028
if test x$use_qtcharts != xno; then
10291029
BITCOIN_QT_CHECK([PKG_CHECK_MODULES([CHARTS], [Qt5Charts],[have_qtcharts=yes], [have_qtcharts=no])])
10301030
fi
1031-
BITCOIN_QT_CHECK([PKG_CHECK_MODULES([SVG], [Qt5Svg],,[BITCOIN_QT_FAIL(qtsvg not found)])])
10321031
10331032
if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
10341033
PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
@@ -1087,14 +1086,12 @@ else
10871086
fi
10881087

10891088
BITCOIN_QT_CHECK(AC_CHECK_LIB([protobuf] ,[main],[PROTOBUF_LIBS=-lprotobuf], BITCOIN_QT_FAIL(libprotobuf not found)))
1090-
BITCOIN_QT_CHECK([AC_CHECK_LIB([Qt5Svg], [main],[SVG_LIBS=-lQt5Svg], BITCOIN_QT_FAIL(svg not found))])
1091-
BITCOIN_QT_CHECK([AC_CHECK_LIB([Qt5Charts], [main],[CHARTS_LIBS=-lQt5Charts], BITCOIN_QT_FAIL(charts not found))])
10921089

1093-
BITCOIN_QT_CHECK([AC_CHECK_LIB([qrencode], [main],[QR_LIBS=-lqrencode], [have_qrencode=no])])
1094-
BITCOIN_QT_CHECK([AC_CHECK_HEADER([qrencode.h],, have_qrencode=no)])
1090+
BITCOIN_QT_CHECK([AC_CHECK_LIB([qrencode], [main],[QR_LIBS=-lqrencode], BITCOIN_QT_FAIL(libqrencode not found))])
1091+
BITCOIN_QT_CHECK([AC_CHECK_HEADER([qrencode.h],, BITCOIN_QT_FAIL(libqrencode not found))])
10951092
if test x$use_qtcharts != xno; then
10961093
BITCOIN_QT_CHECK([AC_CHECK_LIB([Qt5Charts], [main],[CHARTS_LIBS=-lQt5Charts], [have_qtcharts=no])])
1097-
BITCOIN_QT_CHECK([AC_CHECK_HEADER([qchartview.h],, have_qtcharts=no)])
1094+
BITCOIN_QT_CHECK([AC_CHECK_HEADER([QtCharts/qchartview.h],, have_qtcharts=no)])
10981095
fi
10991096
fi
11001097

@@ -1259,11 +1256,12 @@ if test x$bitcoin_enable_qt != xno; then
12591256
AC_MSG_RESULT($bitcoin_enable_qt_dbus)
12601257

12611258
dnl enable qtcharts support
1262-
AC_MSG_CHECKING([whether to build GUI with support for qtcharts codes])
1259+
AC_MSG_CHECKING([whether to build GUI with support for qtcharts])
12631260
if test x$have_qtcharts = xno; then
12641261
if test x$use_qtcharts = xyes; then
12651262
AC_MSG_ERROR("QTCharts support requested but cannot be built. use --without-qtcharts")
12661263
fi
1264+
use_qtcharts=no
12671265
AC_MSG_RESULT(no)
12681266
else
12691267
if test x$use_qtcharts != xno; then
@@ -1462,7 +1460,7 @@ echo "Options used to compile and link:"
14621460
echo " with wallet = $enable_wallet"
14631461
echo " with gui / qt = $bitcoin_enable_qt"
14641462
if test x$bitcoin_enable_qt != xno; then
1465-
echo " with QTCHARTS = $use_qtcharts"
1463+
echo " with qtcharts = $use_qtcharts"
14661464
fi
14671465
echo " with zmq = $use_zmq"
14681466
echo " with bignum = $set_bignum"
@@ -1487,8 +1485,8 @@ echo " LDFLAGS = $PTHREAD_CFLAGS $HARDENED_LDFLAGS $GPROF_LDFLAGS $LDFLAG
14871485
echo " ARFLAGS = $ARFLAGS"
14881486
echo " PIC_FLAGS = $PIC_FLAGS"
14891487
echo " QT_PIE_FLAGS = $QT_PIE_FLAGS"
1490-
echo " SVG_LIBS = $SVG_LIBS "
1491-
echo " SVG_CFLAGS = $SVG_CFLAGS "
1488+
echo " SVG_LIBS = $QT_SVG_LIBS "
1489+
echo " SVG_CFLAGS = $QT_SVG_INCLUDES "
14921490
echo " CHARTS_LIBS = $CHARTS_LIBS "
14931491
echo " CHARTS_CFLAGS = $CHARTS_CFLAGS "
14941492
echo

0 commit comments

Comments
 (0)