From 9350b33bcbd06384caadcdbfdc29358c6de44330 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Fri, 26 Feb 2021 23:59:23 +0100 Subject: [PATCH] Squashed commit of the following: commit 2a8a2d228db65f7734e17e323bb28e2b3b6ec9dd Author: Matthias Koefferlein Date: Fri Feb 26 23:54:08 2021 +0100 One more fix. commit 8c4d76505ccc3071dab2e65827afe0005a9d660f Author: Matthias Koefferlein Date: Fri Feb 26 23:03:07 2021 +0100 More patches for uitools-less build for CentOS 8 commit 2ac28292b833778173658aab5ac12fd85b5e33e9 Author: Matthias Koefferlein Date: Fri Feb 26 22:52:27 2021 +0100 First steps for fixing build on CentOS 8 without uitools --- src/gsiqt/qt4/qt4.pro | 10 +++++++--- src/gsiqt/qt5/qt5.pro | 10 +++++++--- src/gsiqt/qtbasic/gsiQtUiToolsExternals.h | 4 +++- src/klayout.pri | 11 +++++++++-- src/klayout_main/klayout_main/klayout_main.pro | 5 ++++- src/pymod/QtUiTools/QtUiTools.pro | 7 ++++++- src/pymod/QtUiTools/QtUiToolsMain.cc | 4 +++- src/pymod/unit_tests/pymod_tests.cc | 5 +++++ 8 files changed, 44 insertions(+), 12 deletions(-) diff --git a/src/gsiqt/qt4/qt4.pro b/src/gsiqt/qt4/qt4.pro index 31fab2d54..5a420947b 100644 --- a/src/gsiqt/qt4/qt4.pro +++ b/src/gsiqt/qt4/qt4.pro @@ -7,12 +7,16 @@ SUBDIRS = \ QtXml \ QtSql \ QtNetwork \ - QtDesigner \ - QtUiTools + QtDesigner QtGui.depends += QtCore QtNetwork.depends += QtCore QtSql.depends += QtCore QtDesigner.depends += QtCore QtXml.depends += QtCore -QtUiTools.depends += QtCore + +contains(QT_MODULES, uitools) { + # Not all distributions have uitools + SUBDIRS += QtUiTools + QtUiTools.depends += QtCore +} diff --git a/src/gsiqt/qt5/qt5.pro b/src/gsiqt/qt5/qt5.pro index 7b882b8bc..cadc57021 100644 --- a/src/gsiqt/qt5/qt5.pro +++ b/src/gsiqt/qt5/qt5.pro @@ -12,8 +12,7 @@ SUBDIRS = \ QtPrintSupport \ QtSvg \ QtXmlPatterns \ - QtXml \ - QtUiTools + QtXml QtGui.depends += QtCore QtNetwork.depends += QtCore @@ -25,4 +24,9 @@ QtPrintSupport.depends += QtCore QtWidgets QtSvg.depends += QtCore QtWidgets QtXmlPatterns.depends += QtCore QtXml.depends += QtCore -QtUiTools.depends += QtCore + +contains(QT_MODULES, uitools) { + # Not all distributions have uitools + SUBDIRS += QtUiTools + QtUiTools.depends += QtCore +} diff --git a/src/gsiqt/qtbasic/gsiQtUiToolsExternals.h b/src/gsiqt/qtbasic/gsiQtUiToolsExternals.h index 341ff42d5..49462cbed 100644 --- a/src/gsiqt/qtbasic/gsiQtUiToolsExternals.h +++ b/src/gsiqt/qtbasic/gsiQtUiToolsExternals.h @@ -20,7 +20,9 @@ */ -#if QT_VERSION >= 0x050000 +#if !defined(HAVE_QT_UITOOLS) +# defined FORCE_LINK_GSI_QTUITOOLS +#elif QT_VERSION >= 0x050000 # include "../qt5/QtUiTools/gsiQtExternals.h" #else # include "../qt4/QtUiTools/gsiQtExternals.h" diff --git a/src/klayout.pri b/src/klayout.pri index cffd8ab63..506c8003d 100644 --- a/src/klayout.pri +++ b/src/klayout.pri @@ -163,15 +163,22 @@ equals(HAVE_QT, "0") { QT += core network xml sql equals(HAVE_QT5, "1") { - QT += designer printsupport widgets uitools + QT += designer printsupport widgets + contains(QT_MODULES, "uitools") { + # not all distributions have uitools + QT += uitools + } equals(HAVE_QTBINDINGS, "1") { QT += multimedia multimediawidgets xmlpatterns svg gui } } else { - # questionable: use uitools instead? CONFIG += designer uitools } + contains(QT_MODULES, "uitools") { + DEFINES += HAVE_QT_UITOOLS + } + } VERSION_STRING = $$KLAYOUT_VERSION diff --git a/src/klayout_main/klayout_main/klayout_main.pro b/src/klayout_main/klayout_main/klayout_main.pro index 0200f2285..3b2de1643 100644 --- a/src/klayout_main/klayout_main/klayout_main.pro +++ b/src/klayout_main/klayout_main/klayout_main.pro @@ -25,7 +25,10 @@ INCLUDEPATH += $$QTBASIC_INC DEPENDPATH += $$QTBASIC_INC equals(HAVE_QTBINDINGS, "1") { - LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtXml -lklayout_QtNetwork -lklayout_QtSql -lklayout_QtDesigner -lklayout_QtUiTools + LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtXml -lklayout_QtNetwork -lklayout_QtSql -lklayout_QtDesigner + contains(QT_MODULES, uitools) { + LIBS += -lklayout_QtUiTools + } equals(HAVE_QT5, "1") { LIBS += -lklayout_QtMultimedia -lklayout_QtPrintSupport -lklayout_QtSvg -lklayout_QtWidgets -lklayout_QtXmlPatterns } diff --git a/src/pymod/QtUiTools/QtUiTools.pro b/src/pymod/QtUiTools/QtUiTools.pro index 616b04042..200791fd3 100644 --- a/src/pymod/QtUiTools/QtUiTools.pro +++ b/src/pymod/QtUiTools/QtUiTools.pro @@ -8,4 +8,9 @@ SOURCES = \ HEADERS += \ -LIBS += -lklayout_QtUiTools -lklayout_QtCore +contains(QT_MODULES, uitools) { + LIBS += -lklayout_QtUiTools +} + +LIBS += -lklayout_QtCore + diff --git a/src/pymod/QtUiTools/QtUiToolsMain.cc b/src/pymod/QtUiTools/QtUiToolsMain.cc index 49d8fbc34..d70d419d4 100644 --- a/src/pymod/QtUiTools/QtUiToolsMain.cc +++ b/src/pymod/QtUiTools/QtUiToolsMain.cc @@ -26,8 +26,10 @@ #include "../../gsiqt/qtbasic/gsiQtCoreExternals.h" FORCE_LINK_GSI_QTCORE -#include "../../gsiqt/qtbasic/gsiQtUiToolsExternals.h" +#if defined(HAVE_QT_UITOOLS) +# include "../../gsiqt/qtbasic/gsiQtUiToolsExternals.h" FORCE_LINK_GSI_QTUITOOLS +#endif DEFINE_PYMOD(QtUiTools, "QtUiTools", "KLayout/Qt module 'QtUiTools'") diff --git a/src/pymod/unit_tests/pymod_tests.cc b/src/pymod/unit_tests/pymod_tests.cc index 16de70c82..9812fa666 100644 --- a/src/pymod/unit_tests/pymod_tests.cc +++ b/src/pymod/unit_tests/pymod_tests.cc @@ -98,8 +98,13 @@ PYMODTEST (import_QtXml, "import_QtXml.py") PYMODTEST (import_QtSql, "import_QtSql.py") PYMODTEST (import_QtNetwork, "import_QtNetwork.py") PYMODTEST (import_QtDesigner, "import_QtDesigner.py") + +#if defined(HAVE_QT_UITOOLS) + PYMODTEST (import_QtUiTools, "import_QtUiTools.py") +#endif + #if QT_VERSION >= 0x50000 PYMODTEST (import_QtWidgets, "import_QtWidgets.py")