From 2ac28292b833778173658aab5ac12fd85b5e33e9 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Fri, 26 Feb 2021 22:52:27 +0100 Subject: [PATCH] First steps for fixing build on CentOS 8 without uitools --- src/gsiqt/qt4/qt4.pro | 10 +++++++--- src/gsiqt/qt5/qt5.pro | 10 +++++++--- src/klayout.pri | 11 +++++++++-- src/klayout_main/klayout_main/klayout.cc | 5 ++++- src/klayout_main/klayout_main/klayout_main.pro | 3 +++ src/pymod/QtUiTools/QtUiTools.pro | 6 +++++- src/pymod/QtUiTools/QtUiToolsMain.cc | 4 +++- 7 files changed, 38 insertions(+), 11 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/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.cc b/src/klayout_main/klayout_main/klayout.cc index 8091c7196..976963b9d 100644 --- a/src/klayout_main/klayout_main/klayout.cc +++ b/src/klayout_main/klayout_main/klayout.cc @@ -61,7 +61,6 @@ # include "gsiQtSvgExternals.h" # include "gsiQtNetworkExternals.h" # include "gsiQtDesignerExternals.h" -# include "gsiQtUiToolsExternals.h" FORCE_LINK_GSI_QTCORE FORCE_LINK_GSI_QTGUI @@ -74,7 +73,11 @@ FORCE_LINK_GSI_QTDESIGNER FORCE_LINK_GSI_QTNETWORK FORCE_LINK_GSI_QTSQL FORCE_LINK_GSI_QTSVG + +#if defined(HAVE_QT_UITOOLS) +# include "gsiQtUiToolsExternals.h" FORCE_LINK_GSI_QTUITOOLS +#endif #else # define QT_EXTERNAL_BASE(x) diff --git a/src/klayout_main/klayout_main/klayout_main.pro b/src/klayout_main/klayout_main/klayout_main.pro index 0200f2285..4d47d2a13 100644 --- a/src/klayout_main/klayout_main/klayout_main.pro +++ b/src/klayout_main/klayout_main/klayout_main.pro @@ -26,6 +26,9 @@ DEPENDPATH += $$QTBASIC_INC equals(HAVE_QTBINDINGS, "1") { LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtXml -lklayout_QtNetwork -lklayout_QtSql -lklayout_QtDesigner -lklayout_QtUiTools + 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..4bf43b588 100644 --- a/src/pymod/QtUiTools/QtUiTools.pro +++ b/src/pymod/QtUiTools/QtUiTools.pro @@ -8,4 +8,8 @@ SOURCES = \ HEADERS += \ -LIBS += -lklayout_QtUiTools -lklayout_QtCore +LIBS += -lklayout_QtUiTools + +contains(QT_MODULES, uitools) { + 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'")