Fine-grained Qt module selection for Qt binding and disabling of view_25d plugin without OpenGL

This commit is contained in:
Matthias Koefferlein 2021-03-02 23:28:35 +01:00
parent 44baeea362
commit 687059525c
21 changed files with 292 additions and 82 deletions

View File

@ -27,6 +27,13 @@ IS_LINUX="no"
HAVE_QTBINDINGS=1
HAVE_QT_UITOOLS=1
HAVE_QT_NETWORK=1
HAVE_QT_SQL=1
HAVE_QT_SVG=1
HAVE_QT_PRINTSUPPORT=1
HAVE_QT_MULTIMEDIA=1
HAVE_QT_DESIGNER=1
HAVE_QT_XML=1
HAVE_64BIT_COORD=0
HAVE_QT=1
HAVE_QT5="" # not set
@ -96,6 +103,27 @@ while [ "$*" != "" ]; do
-without-qt-uitools)
HAVE_QT_UITOOLS=0
;;
-without-qt-network)
HAVE_QT_NETWORK=0
;;
-without-qt-sql)
HAVE_QT_SQL=0
;;
-without-qt-svg)
HAVE_QT_SVG=0
;;
-without-qt-printsupport)
HAVE_QT_PRINTSUPPORT=0
;;
-without-qt-multimedia)
HAVE_QT_MULTIMEDIA=0
;;
-without-qt-designer)
HAVE_QT_DESIGNER=0
;;
-without-qt-xml)
HAVE_QT_XML=0
;;
-with-64bit-coord)
HAVE_64BIT_COORD=1
;;
@ -610,6 +638,13 @@ qmake_options=(
HAVE_PYTHON="$HAVE_PYTHON"
HAVE_QTBINDINGS="$HAVE_QTBINDINGS"
HAVE_QT_UITOOLS="$HAVE_QT_UITOOLS"
HAVE_QT_NETWORK="$HAVE_QT_NETWORK"
HAVE_QT_SQL="$HAVE_QT_SQL"
HAVE_QT_SVG="$HAVE_QT_SVG"
HAVE_QT_PRINTSUPPORT="$HAVE_QT_PRINTSUPPORT"
HAVE_QT_MULTIMEDIA="$HAVE_QT_MULTIMEDIA"
HAVE_QT_DESIGNER="$HAVE_QT_DESIGNER"
HAVE_QT_XML="$HAVE_QT_XML"
HAVE_64BIT_COORD="$HAVE_64BIT_COORD"
HAVE_QT="$HAVE_QT"
HAVE_QT5="$HAVE_QT5"

View File

@ -5,17 +5,29 @@ TEMPLATE = subdirs
SUBDIRS = \
QtCore \
QtGui \
QtXml \
QtSql \
QtNetwork \
QtDesigner
QtGui
QtGui.depends += QtCore
QtNetwork.depends += QtCore
QtSql.depends += QtCore
QtDesigner.depends += QtCore
QtXml.depends += QtCore
equals(HAVE_QT_NETWORK, "1") {
SUBDIRS += QtNetwork
QtNetwork.depends += QtCore
}
equals(HAVE_QT_SQL, "1") {
SUBDIRS += QtSql
QtSql.depends += QtCore
}
equals(HAVE_QT_DESIGNER, "1") {
SUBDIRS += QtDesigner
QtDesigner.depends += QtCore
}
equals(HAVE_QT_XML, "1") {
SUBDIRS += QtXml
QtXml.depends += QtCore
}
equals(HAVE_QT_UITOOLS, "1") {
SUBDIRS += QtUiTools

View File

@ -6,26 +6,46 @@ TEMPLATE = subdirs
SUBDIRS = \
QtCore \
QtGui \
QtNetwork \
QtSql \
QtWidgets \
QtDesigner \
QtMultimedia \
QtPrintSupport \
QtSvg \
QtXmlPatterns \
QtXml
QtWidgets
QtGui.depends += QtCore
QtNetwork.depends += QtCore
QtSql.depends += QtCore
QtWidgets.depends += QtGui
QtDesigner.depends += QtCore
QtMultimedia.depends += QtCore QtWidgets QtNetwork
QtPrintSupport.depends += QtCore QtWidgets
QtSvg.depends += QtCore QtWidgets
QtXmlPatterns.depends += QtCore
QtXml.depends += QtCore
equals(HAVE_QT_NETWORK, "1") {
SUBDIRS += QtNetwork
QtNetwork.depends += QtCore
}
equals(HAVE_QT_SQL, "1") {
SUBDIRS += QtSql
QtSql.depends += QtCore
}
equals(HAVE_QT_SVG, "1") {
SUBDIRS += QtSvg
QtSvg.depends += QtCore QtWidgets
}
equals(HAVE_QT_PRINTSUPPORT, "1") {
SUBDIRS += QtPrintSupport
QtPrintSupport.depends += QtCore QtWidgets
}
equals(HAVE_QT_MULTIMEDIA, "1") {
SUBDIRS += QtMultimedia
QtMultimedia.depends += QtCore QtWidgets QtNetwork
}
equals(HAVE_QT_DESIGNER, "1") {
SUBDIRS += QtDesigner
QtDesigner.depends += QtCore
}
equals(HAVE_QT_XML, "1") {
SUBDIRS += QtXml QtXmlPatterns
QtXmlPatterns.depends += QtCore
QtXml.depends += QtCore
}
equals(HAVE_QT_UITOOLS, "1") {
SUBDIRS += QtUiTools

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_DESIGNER)
# define FORCE_LINK_GSI_QTDESIGNER
#elif QT_VERSION >= 0x050000
# include "../qt5/QtDesigner/gsiQtExternals.h"
#else
# include "../qt4/QtDesigner/gsiQtExternals.h"

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_MULTIMEDIA)
# define FORCE_LINK_GSI_QTMULTIMEDIA
#elif QT_VERSION >= 0x050000
# include "../qt5/QtMultimedia/gsiQtExternals.h"
#else
// no present in Qt4

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_NETWORK)
# define FORCE_LINK_GSI_QTNETWORK
#elif QT_VERSION >= 0x050000
# include "../qt5/QtNetwork/gsiQtExternals.h"
#else
# include "../qt4/QtNetwork/gsiQtExternals.h"

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_PRINTSUPPORT)
# define FORCE_LINK_GSI_QTPRINTSUPPORT
#elif QT_VERSION >= 0x050000
# include "../qt5/QtPrintSupport/gsiQtExternals.h"
#else
// no present in Qt4

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_SQL)
# define FORCE_LINK_GSI_QTSQL
#elif QT_VERSION >= 0x050000
# include "../qt5/QtSql/gsiQtExternals.h"
#else
# include "../qt4/QtSql/gsiQtExternals.h"

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_SVG)
# define FORCE_LINK_GSI_QTSVG
#elif QT_VERSION >= 0x050000
# include "../qt5/QtSvg/gsiQtExternals.h"
#else
// no present in Qt4

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_XML)
# define FORCE_LINK_GSI_QTXML
#elif QT_VERSION >= 0x050000
# include "../qt5/QtXml/gsiQtExternals.h"
#else
# include "../qt4/QtXml/gsiQtExternals.h"

View File

@ -20,7 +20,9 @@
*/
#if QT_VERSION >= 0x050000
#if !defined(HAVE_QT_XML)
# define FORCE_LINK_GSI_QTXMLPATTERNS
#elif QT_VERSION >= 0x050000
# include "../qt5/QtXmlPatterns/gsiQtExternals.h"
#else
// Not present in Qt4

View File

@ -17,5 +17,19 @@ SOURCES += \
gsiQtHelper.cc
HEADERS += \
gsiDeclQtAllTypeTraits.h \
gsiQt.h \
gsiQtBasicCommon.h \
gsiQtBasicCommon.h \ \
gsiQtCoreExternals.h \
gsiQtDesignerExternals.h \
gsiQtGuiExternals.h \
gsiQtHelper.h \
gsiQtMultimediaExternals.h \
gsiQtNetworkExternals.h \
gsiQtPrintSupportExternals.h \
gsiQtSqlExternals.h \
gsiQtSvgExternals.h \
gsiQtUiToolsExternals.h \
gsiQtWidgetsExternals.h \
gsiQtXmlExternals.h \
gsiQtXmlPatternsExternals.h

View File

@ -169,27 +169,81 @@ equals(HAVE_QT, "0") {
} else {
DEFINES += HAVE_QT
QT += core network xml sql
QT += core xml network
equals(HAVE_QTBINDINGS, "1") {
# sql isn't needed by the base application
!equals(HAVE_QT_SQL, "0") {
QT += sql
}
}
equals(HAVE_QT5, "1") {
QT += designer printsupport widgets
QT += widgets gui printsupport
equals(HAVE_QTBINDINGS, "1") {
QT += multimedia multimediawidgets xmlpatterns svg gui
}
equals(HAVE_QT_UITOOLS, "1") {
QT += uitools
!equals(HAVE_QT_DESIGNER, "0") {
# designer isn't needed by the base application
QT += designer
}
!equals(HAVE_QT_MULTIMEDIA, "0") {
# multimedia isn't needed by the base application
QT += multimedia multimediawidgets
}
!equals(HAVE_QT_XML, "0") {
# xmlpatterns isn't needed by the base application
QT += xmlpatterns
}
!equals(HAVE_QT_SVG, "0") {
# svg isn't needed by the base application
QT += svg
}
!equals(HAVE_QT_UITOOLS, "0") {
# uitools isn't needed by the base application
QT += uitools
}
}
} else {
CONFIG += designer
equals(HAVE_QT_UITOOLS, "1") {
CONFIG += uitools
equals(HAVE_QTBINDINGS, "1") {
!equals(HAVE_QT_DESIGNER, "0") {
# designer isn't needed by the base application
CONFIG += designer
}
!equals(HAVE_QT_UITOOLS, "0") {
# uitools isn't needed by the base application
CONFIG += uitools
}
}
}
equals(HAVE_QT_UITOOLS, "1") {
!equals(HAVE_QT_UITOOLS, "0") {
DEFINES += HAVE_QT_UITOOLS
}
!equals(HAVE_QT_NETWORK, "0") {
DEFINES += HAVE_QT_NETWORK
}
!equals(HAVE_QT_SQL, "0") {
DEFINES += HAVE_QT_SQL
}
!equals(HAVE_QT_SVG, "0") {
DEFINES += HAVE_QT_SVG
}
!equals(HAVE_QT_PRINTSUPPORT, "0") {
DEFINES += HAVE_QT_PRINTSUPPORT
}
!equals(HAVE_QT_MULTIMEDIA, "0") {
DEFINES += HAVE_QT_MULTIMEDIA
}
!equals(HAVE_QT_DESIGNER, "0") {
DEFINES += HAVE_QT_DESIGNER
}
!equals(HAVE_QT_XML, "0") {
DEFINES += HAVE_QT_XML
}
}
VERSION_STRING = $$KLAYOUT_VERSION

View File

@ -26,11 +26,42 @@ INCLUDEPATH += $$QTBASIC_INC
DEPENDPATH += $$QTBASIC_INC
equals(HAVE_QTBINDINGS, "1") {
LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtXml -lklayout_QtNetwork -lklayout_QtSql -lklayout_QtDesigner
equals(HAVE_QT_UITOOLS, "1") {
LIBS += -lklayout_qtbasic -lklayout_QtGui
!equals(HAVE_QT_XML, "0") {
LIBS += -lklayout_QtXml
}
!equals(HAVE_QT_NETWORK, "0") {
LIBS += -lklayout_QtNetwork
}
!equals(HAVE_QT_SQL, "0") {
LIBS += -lklayout_QtSql
}
!equals(HAVE_QT_DESIGNER, "0") {
LIBS += -lklayout_QtDesigner
}
!equals(HAVE_QT_UITOOLS, "0") {
LIBS += -lklayout_QtUiTools
}
equals(HAVE_QT5, "1") {
LIBS += -lklayout_QtMultimedia -lklayout_QtPrintSupport -lklayout_QtSvg -lklayout_QtWidgets -lklayout_QtXmlPatterns
LIBS += -lklayout_QtWidgets
!equals(HAVE_QT_MULTIMEDIA, "0") {
LIBS += -lklayout_QtMultimedia
}
!equals(HAVE_QT_PRINTSUPPORT, "0") {
LIBS += -lklayout_QtPrintSupport
}
!equals(HAVE_QT_SVG, "0") {
LIBS += -lklayout_QtSvg
}
!equals(HAVE_QT_XML, "0") {
LIBS += -lklayout_QtXmlPatterns
}
}
}

View File

@ -97,7 +97,7 @@ Class<lay::HelpDialog> decl_HelpDialog (QT_EXTERNAL_BASE (QDialog) "lay", "HelpD
LAYBASIC_PUBLIC Class<lay::BrowserSource> &laybasicdecl_BrowserSource ();
Class<lay::HelpSource> decl_HelpSource (laybasicdecl_BrowserSource (), "lay", "HelpSource",
#if defined(HAVE_QTBINDINGS)
#if defined(HAVE_QTBINDINGS) && defined(HAVE_QT_XML)
gsi::method ("get_dom", &lay::HelpSource::get_dom, "@brief For internal use") +
#endif
gsi::method ("urls", &lay::HelpSource::urls, "@brief Reserved for internal use") +

View File

@ -203,7 +203,10 @@ INCLUDEPATH += $$QTBASIC_INC
DEPENDPATH += $$QTBASIC_INC
equals(HAVE_QTBINDINGS, "1") {
LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtXml -lklayout_QtCore
LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtCore
!equals(HAVE_QT_XML, "0") {
LIBS += -lklayout_QtXml
}
equals(HAVE_QT5, "1") {
LIBS += -lklayout_QtWidgets
}

View File

@ -8,9 +8,6 @@ SOURCES = \
HEADERS += \
equals(HAVE_QT_UITOOLS, "1") {
LIBS += -lklayout_QtUiTools
}
LIBS += -lklayout_QtUiTools
LIBS += -lklayout_QtCore

View File

@ -26,10 +26,8 @@
#include "../../gsiqt/qtbasic/gsiQtCoreExternals.h"
FORCE_LINK_GSI_QTCORE
#if defined(HAVE_QT_UITOOLS)
# include "../../gsiqt/qtbasic/gsiQtUiToolsExternals.h"
FORCE_LINK_GSI_QTUITOOLS
#endif
DEFINE_PYMOD(QtUiTools, "QtUiTools", "KLayout/Qt module 'QtUiTools'")

View File

@ -14,34 +14,49 @@ SUBDIRS = \
equals(HAVE_QTBINDINGS, "1") {
SUBDIRS += \
QtCore \
QtGui
equals(HAVE_QT5, "1") {
SUBDIRS += \
QtCore \
QtGui \
QtNetwork \
QtSql \
QtWidgets \
QtDesigner \
QtMultimedia \
QtPrintSupport \
QtSvg \
QtXmlPatterns \
QtXml
SUBDIRS += QtWidgets
} else {
!equals(HAVE_QT_MULTIMEDIA, "0") {
SUBDIRS += QtMultimedia
}
SUBDIRS += \
QtCore \
QtGui \
QtXml \
QtSql \
QtNetwork \
QtDesigner
!equals(HAVE_QT_PRINTSUPPORT, "0") {
SUBDIRS += QtPrintSupport
}
!equals(HAVE_QT_SVG, "0") {
SUBDIRS += QtSvg
}
!equals(HAVE_QT_XML, "0") {
SUBDIRS += QtXmlPatterns
}
}
equals(HAVE_QT_UITOOLS, "1") {
!equals(HAVE_QT_XML, "0") {
SUBDIRS += QtXml
}
!equals(HAVE_QT_SQL, "0") {
SUBDIRS += QtSql
}
!equals(HAVE_QT_NETWORK, "0") {
SUBDIRS += QtNetwork
}
!equals(HAVE_QT_DESIGNER, "0") {
SUBDIRS += QtDesigner
}
!equals(HAVE_QT_UITOOLS, "0") {
SUBDIRS += QtUiTools
}

View File

@ -94,24 +94,37 @@ PYMODTEST (import_lay, "import_lay.py")
PYMODTEST (import_QtCore, "import_QtCore.py")
PYMODTEST (import_QtGui, "import_QtGui.py")
#if defined(HAVE_QT_XML)
PYMODTEST (import_QtXml, "import_QtXml.py")
#endif
#if defined(HAVE_QT_SQL)
PYMODTEST (import_QtSql, "import_QtSql.py")
#endif
#if defined(HAVE_QT_NETWORK)
PYMODTEST (import_QtNetwork, "import_QtNetwork.py")
#endif
#if defined(HAVE_QT_DESIGNER)
PYMODTEST (import_QtDesigner, "import_QtDesigner.py")
#endif
#if defined(HAVE_QT_UITOOLS)
PYMODTEST (import_QtUiTools, "import_QtUiTools.py")
#endif
#if QT_VERSION >= 0x50000
PYMODTEST (import_QtWidgets, "import_QtWidgets.py")
#if defined(HAVE_QT_MULTIMEDIA)
PYMODTEST (import_QtMultimedia, "import_QtMultimedia.py")
#endif
#if defined(HAVE_QT_PRINTSUPPORT)
PYMODTEST (import_QtPrintSupport, "import_QtPrintSupport.py")
#endif
#if defined(HAVE_QT_SVG)
PYMODTEST (import_QtSvg, "import_QtSvg.py")
#endif
#if defined(HAVE_QT_XML)
PYMODTEST (import_QtXmlPatterns, "import_QtXmlPatterns.py")
#endif
#endif

View File

@ -34,7 +34,9 @@ LIBS += -lklayout_gsi_test
DEPENDPATH += $$QTBASIC_INC
equals(HAVE_QTBINDINGS, "1") {
LIBS += -lklayout_QtXml
!equals(HAVE_QT_XML, "0") {
LIBS += -lklayout_QtXml
}
equals(HAVE_QT5, "1") {
LIBS += -lklayout_QtWidgets
}