Mercurial > mxe-octave
changeset 6837:6adeb47401d6
Add qt6 usage to mxe-octave
* src/qt6-qtbase-1-fixes.patch, src/qt6-qtbase.mk,
src/qt6-qtimageformats-1-fixes.patch, src/qt6-qtimageformats.mk,
src/qt6-qtsvg.mk, src/qt6-qttools.mk, src/qt6-qttranslations.mk,
src/qt6.mk, src/qt6-qt5compat.mk: new files
* Makefile.in: add use of ENABLE_QT and add qt6 values
* configure.ac: add --enable-qt=xxx option, remove--enable-qt5
* dist-files.mk, index.html: add refs to new files
* src/blas_switch.mk, src/gnuplot.mk, src/opengl_switch.mk,
src/default-octave.mk, src/qscintilla.mk,
src/release-octave.mk, src/stable-octave.mk: add prrocessing of ENABLE_QT value
* src/qt5.mk: dont include qt6* files in dependancies
* src/gnuplot-2-qt6.patch: new patch file
* binary-dist-rules.mk: include qtversion in build of octave-launch
* installer-files/octave-firsttime.vbs, installer-files/octave-launch.c
installer-files/octave.bat, installer-files/octave.vbs
: include qt6 file paths
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Wed, 23 Aug 2023 08:48:00 -0400 |
parents | 2395cc63b8df |
children | dada62da13c0 |
files | Makefile.in binary-dist-rules.mk configure.ac dist-files.mk index.html installer-files/octave-firsttime.vbs installer-files/octave-launch.c installer-files/octave.bat installer-files/octave.vbs src/blas_switch.mk src/default-octave.mk src/gnuplot-2-qt6.patch src/gnuplot.mk src/opengl_switch.mk src/qscintilla.mk src/qt5.mk src/qt6-qt5compat.mk src/qt6-qtbase-1-fixes.patch src/qt6-qtbase.mk src/qt6-qtimageformats-1-fixes.patch src/qt6-qtimageformats.mk src/qt6-qtsvg.mk src/qt6-qttools.mk src/qt6-qttranslations.mk src/qt6.mk src/release-octave.mk src/stable-octave.mk |
diffstat | 27 files changed, 720 insertions(+), 86 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile.in Thu Aug 17 16:44:07 2023 -0400 +++ b/Makefile.in Wed Aug 23 08:48:00 2023 -0400 @@ -74,8 +74,8 @@ # create and install devel tools (default no) ENABLE_DEVEL_TOOLS := @ENABLE_DEVEL_TOOLS@ -# use qt5 instead of qt4 -ENABLE_QT5 := @ENABLE_QT5@ +# which qt +ENABLE_QT := @ENABLE_QT@ # Set to "yes" to use msys2 USE_MSYS2 := @USE_MSYS2@ @@ -447,12 +447,16 @@ MXE_WINDRES := true endif MXE_PKG_CONFIG := '$(BUILD_TOOLS_PREFIX)/bin/pkg-config' - ifeq ($(ENABLE_QT5),yes) - MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake-qt5' - else + ifeq ($(ENABLE_QT),4) MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake' endif - + ifeq ($(ENABLE_QT),5) + MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake-qt5' + endif + ifeq ($(ENABLE_QT),6) + MXE_QMAKE6 := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake-qt6' + MXE_QMAKE := '$(HOST_PREFIX)/qt6/bin/qmake' + endif MXE_MOC := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)moc' MXE_UIC := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic' MXE_LRELEASE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease'
--- a/binary-dist-rules.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/binary-dist-rules.mk Wed Aug 23 08:48:00 2023 -0400 @@ -105,14 +105,14 @@ ## FIXME: We aren't using VPATH? installer-files/octave-launch.exe: $(TOP_DIR)/installer-files/octave-launch.c installer-files/octave-launch.res | installer-files/.dirstamp - $(MXE_CC) $< -o $@ installer-files/octave-launch.res -lshlwapi -municode -DUNICODE -D_UNICODE $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS) + $(MXE_CC) $< -o $@ installer-files/octave-launch.res -lshlwapi -municode -DUNICODE -D_UNICODE -DQTVERSION=$(ENABLE_QT) $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS) .PHONY: octave-launch-firsttime octave-launch-firsttime: installer-files/octave-launch-firsttime.exe ## FIXME: We aren't using VPATH? installer-files/octave-launch-firsttime.exe: $(TOP_DIR)/installer-files/octave-launch.c installer-files/octave-launch.res | installer-files/.dirstamp - $(MXE_CC) $< -o $@ installer-files/octave-launch.res -Wl,--subsystem,windows -lshlwapi -municode -DUNICODE -D_UNICODE -DFIRST_TIME $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS) + $(MXE_CC) $< -o $@ installer-files/octave-launch.res -Wl,--subsystem,windows -lshlwapi -municode -DUNICODE -D_UNICODE -DFIRST_TIME -DQTVERSION=$(ENABLE_QT) $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS) installer-files/octave-logo.ico: $(TOP_DIR)/installer-files/octave-logo.ico | installer-files/.dirstamp cp -a $< $@
--- a/configure.ac Thu Aug 17 16:44:07 2023 -0400 +++ b/configure.ac Wed Aug 23 08:48:00 2023 -0400 @@ -360,15 +360,18 @@ esac], [ENABLE_DEVEL_TOOLS=no]) AC_SUBST(ENABLE_DEVEL_TOOLS) -AC_ARG_ENABLE([qt5], - [AS_HELP_STRING([--disable-qt5], - [Build GNU Octave using Qt 4 instead of the default Qt 5 (default: enable, i.e. use Qt5)])], +AC_ARG_ENABLE([qt], + [AS_HELP_STRING([--enable-qt=VER], + [Build GNU Octave using a spacified Qt version])], [case "$enableval" in - no) ENABLE_QT5=no ;; - yes) ENABLE_QT5=yes ;; - *) AC_MSG_ERROR([bad value "$enableval" for --enable-qt5]) ;; - esac], [ENABLE_QT5=yes]) -AC_SUBST(ENABLE_QT5) + no) ENABLE_QT=5 ;; + yes) ENABLE_QT=5 ;; + 4) ENABLE_QT=4 ;; + 5) ENABLE_QT=5 ;; + 6) ENABLE_QT=6 ;; + *) AC_MSG_ERROR([bad value "$enableval" for --enable-qt]) ;; + esac], [ENABLE_QT=5]) +AC_SUBST(ENABLE_QT) # install documentation of build dependency packages (or not to save space) AC_ARG_ENABLE([dep-docs],
--- a/dist-files.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/dist-files.mk Wed Aug 23 08:48:00 2023 -0400 @@ -150,6 +150,7 @@ glu.mk \ gmp.mk \ gnuplot-1-fixes.patch \ + gnuplot-2-qt6.patch \ gnuplot.mk \ gnutls-1-fixes.patch \ gnutls-test.c \ @@ -649,6 +650,15 @@ qttranslations.mk \ qttools-1.patch \ qttools.mk \ + qt6.mk \ + qt6-qt5compat.mk \ + qt6-qtbase-1-fixes.patch \ + qt6-qtbase.mk \ + qt6-qtimageformats-1-fixes.patch \ + qt6-qtimageformats.mk \ + qt6-qtsvg.mk \ + qt6-qttranslations.mk \ + qt6-qttools.mk \ qwt-1-fixes.patch \ qwt.mk \ qwtplot3d-1-fixes.patch \
--- a/index.html Thu Aug 17 16:44:07 2023 -0400 +++ b/index.html Wed Aug 23 08:48:00 2023 -0400 @@ -2706,6 +2706,34 @@ <td class="website"><a href="http://qt.nokia.com/">Qt5 imageformats</a></td> </tr> <tr> + <td class="package">qt6</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6</a></td> + </tr> + <tr> + <td class="package">qt6-qt5compat</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6 qt5compat</a></td> + </tr> + <tr> + <td class="package">qt6-qtbase</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6 base</a></td> + </tr> + <tr> + <td class="package">qt6-qttranslations</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6 qttranslations</a></td> + </tr> + <tr> + <td class="package">qt6-qttools</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6 tools</a></td> + </tr> + <tr> + <td class="package">qt6-qtsvg</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6 svg</a></td> + </tr> + <tr> + <td class="package">qt6-qtimageformats</td> + <td class="website"><a href="http://qt.nokia.com/">Qt6 imageformats</a></td> + </tr> + <tr> <td class="package">qwt</td> <td class="website"><a href="http://qwt.sourceforge.net/">Qwt</a></td> </tr>
--- a/installer-files/octave-firsttime.vbs Thu Aug 17 16:44:07 2023 -0400 +++ b/installer-files/octave-firsttime.vbs Wed Aug 23 08:48:00 2023 -0400 @@ -60,7 +60,10 @@ End If ' set Qt plugin directory and path -If objFSO.FolderExists(OctavePath & "\qt5\bin") Then +If objFSO.FolderExists(OctavePath & "\qt6\bin") Then + wshSystemEnv("PATH") = OctavePath & "\qt6\bin;" & wshSystemEnv("PATH") + wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt6\plugins" +ElseIf objFSO.FolderExists(OctavePath & "\qt5\bin") Then wshSystemEnv("PATH") = OctavePath & "\qt5\bin;" & wshSystemEnv("PATH") wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt5\plugins" Else
--- a/installer-files/octave-launch.c Thu Aug 17 16:44:07 2023 -0400 +++ b/installer-files/octave-launch.c Wed Aug 23 08:48:00 2023 -0400 @@ -189,11 +189,11 @@ #endif /* qt paths - * either %OCT_HOME%\qt5\plugins + * either %OCT_HOME%\qtX\plugins * or %OCT_HOME\plugins */ nSize = lstrlenW (path); - StringCchCatW (path, PATH_SZ, L"\\qt5\\plugins"); + StringCchPrintfW (&path[nSize], PATH_SZ-nSize, L"\\qt%d\\plugins", QTVERSION); SetEnvironmentVariableW (L"QT_PLUGIN_PATH", path); path[nSize] = L'\0';
--- a/installer-files/octave.bat Thu Aug 17 16:44:07 2023 -0400 +++ b/installer-files/octave.bat Wed Aug 23 08:48:00 2023 -0400 @@ -26,7 +26,7 @@ Rem Set up PATH. Make sure the octave bin dir comes first. -set PATH=%OCT_HOME%qt5\bin;%OCT_HOME%bin;%MSYSPATH%bin;%PATH% +set PATH=%OCT_HOME%bin;%MSYSPATH%bin;%PATH% Rem Set up any environment vars we may need. @@ -35,8 +35,12 @@ set GS=gs.exe Rem QT_PLUGIN_PATH must be set to avoid segfault (bug #53419). -IF EXIST "%OCT_HOME%\qt5\bin\" ( +IF EXIST "%OCT_HOME%\qt6\bin\" ( + set QT_PLUGIN_PATH=%OCT_HOME%\qt6\plugins + set PATH=%OCT_HOME%qt6\bin;%PATH% +) ELSE IF EXIST "%OCT_HOME%\qt5\bin\" ( set QT_PLUGIN_PATH=%OCT_HOME%\qt5\plugins + set PATH=%OCT_HOME%qt5\bin;%PATH% ) ELSE ( set QT_PLUGIN_PATH=%OCT_HOME%\plugins )
--- a/installer-files/octave.vbs Thu Aug 17 16:44:07 2023 -0400 +++ b/installer-files/octave.vbs Wed Aug 23 08:48:00 2023 -0400 @@ -60,7 +60,10 @@ End If ' set Qt plugin directory and path -If objFSO.FolderExists(OctavePath & "\qt5\bin") Then +If objFSO.FolderExists(OctavePath & "\qt6\bin") Then + wshSystemEnv("PATH") = OctavePath & "\qt6\bin;" & wshSystemEnv("PATH") + wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt6\plugins" +ElseIf objFSO.FolderExists(OctavePath & "\qt5\bin") Then wshSystemEnv("PATH") = OctavePath & "\qt5\bin;" & wshSystemEnv("PATH") wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt5\plugins" Else
--- a/src/blas_switch.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/blas_switch.mk Wed Aug 23 08:48:00 2023 -0400 @@ -9,11 +9,14 @@ $(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz $(PKG)_URL := https://github.com/lostbard/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz - -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_DEPS := qt +endif +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS := qt5 -else - $(PKG)_DEPS := qt +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS := qt6 endif ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) @@ -26,12 +29,19 @@ $(call GITHUB_PKG_UPDATE,lostbard,blas_switch,v) endef +$(PKG)_QMAKE_FLAGS := ifneq ($(MXE_NATIVE_BUILD),yes) ifeq ($(MXE_SYSTEM),mingw) - ifeq ($(ENABLE_QT5),yes) + ifeq ($(ENABLE_QT),4) + $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++' + endif + ifeq ($(ENABLE_QT),5) $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++' - else - $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++' + $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++11' + endif + ifeq ($(ENABLE_QT),6) + $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/qt6/mkspecs/win32-g++' + $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++17' endif endif ifeq ($(MXE_SYSTEM),msvc) @@ -44,16 +54,16 @@ cd '$(1)' && \ '$(MXE_QMAKE)' -makefile \ $($(PKG)_QMAKE_SPEC_OPTION) \ + $($(PKG)_QMAKE_FLAGS) \ QMAKE_UIC='$(MXE_UIC)' \ QMAKE_MOC='$(MXE_MOC)' \ - QMAKE_LFLAGS=$(MXE_LDFLAGS) \ - QMAKE_CXXFLAGS='-std=c++11' + QMAKE_LFLAGS=$(MXE_LDFLAGS) $(MAKE) -C '$(1)' -j '$(JOBS)' $(MAKE) -C '$(1)' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)' if [ $(MXE_WINDOWS_BUILD) = yes ]; then \ $(INSTALL) -d '$(HOST_BINDIR)'; \ - mv '$(HOST_PREFIX)/qt5/bin/blas_switch.exe' '$(HOST_BINDIR)/blas_switch.exe'; \ + mv '$(HOST_PREFIX)/qt$(ENABLE_QT)/bin/blas_switch.exe' '$(HOST_BINDIR)/blas_switch.exe'; \ fi endef
--- a/src/default-octave.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/default-octave.mk Wed Aug 23 08:48:00 2023 -0400 @@ -23,10 +23,14 @@ endif $(PKG)_DEPS := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre2 portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_DEPS += qt +endif +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS += qt5 -else - $(PKG)_DEPS += qt +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS += qt6 endif ifeq ($(USE_SYSTEM_OPENGL),no) @@ -74,17 +78,22 @@ RCC_QTVER=$(MXE_RCC) \ LRELEASE_QTVER=$(MXE_LRELEASE) -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" + $(PKG)_QTDIR := $(HOST_PREFIX) + $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" +endif +ifeq ($(ENABLE_QT),5) #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" $(PKG)_QTDIR := $(HOST_PREFIX)/qt5 $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5" -else - $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" - $(PKG)_QTDIR := $(HOST_PREFIX) - $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" endif - +ifeq ($(ENABLE_QT),6) + $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt6/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" + $(PKG)_QTDIR := $(HOST_PREFIX)/qt6 + $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt6" +endif ifneq ($(ENABLE_DOCS),yes) $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gnuplot-2-qt6.patch Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,126 @@ +diff -ur gnuplot-5.2.8.orig/config/mingw/Makefile gnuplot-5.2.8/config/mingw/Makefile +--- gnuplot-5.2.8.orig/config/mingw/Makefile 2023-08-18 15:53:34.185447448 -0400 ++++ gnuplot-5.2.8/config/mingw/Makefile 2023-08-18 16:03:31.492411188 -0400 +@@ -463,11 +463,13 @@ + endif + + ifdef QT +- QT_LIBS = -lQt5Core -lQt5Gui -lQt5Network -lQt5Svg -lQt5Widgets -lQt5PrintSupport -lqtmain ++ QT_VERSION ?= 5 ++ QT_EXTRA_LIBS ?= -lqtmain ++ QT_LIBS = -lQt$(QT_VERSION)Core -lQt$(QT_VERSION)Gui -lQt$(QT_VERSION)Network -lQt$(QT_VERSION)Svg -lQt$(QT_VERSION)Widgets -lQt$(QT_VERSION)PrintSupport $(QT_EXTRA_LIBS) + QT_CXXFLAGS = -I$(QT_DIR)/include -I$(QT_DIR)/include/Qt -I$(QT_DIR)/include/QtCore -I$(QT_DIR)/include/QtGui + QT_CXXFLAGS += -I$(QT_DIR)/include/QtWidgets -I$(QT_DIR)/include/QtNetwork +- QT_CXXFLAGS += -I$(QT_DIR)/include/QtSvg -DQTGNUPLOT_DATA_DIR=\"$(GNUPLOT_QT_DIR)\" +- QT_LDFLAGS = -L$(QT_DIR)/lib ++ QT_CXXFLAGS += -I$(QT_DIR)/include/QtSvg -DQTGNUPLOT_DATA_DIR=\"$(GNUPLOT_QT_DIR)\" $(QT_EXTRA_CXXFLAGS) ++ QT_LDFLAGS = -L$(QT_DIR)/lib $(QT_EXTRA_LDFLAGS) + # + CFLAGS += -DQTTERM -DQT_NO_OPENGL + TERMLIBS += $(QT_LIBS) +diff -ur gnuplot-5.2.8.orig/src/qtterminal/qt_term.cpp gnuplot-5.2.8/src/qtterminal/qt_term.cpp +--- gnuplot-5.2.8.orig/src/qtterminal/qt_term.cpp 2023-08-18 15:53:34.166446304 -0400 ++++ gnuplot-5.2.8/src/qtterminal/qt_term.cpp 2023-08-18 16:05:08.522243654 -0400 +@@ -76,6 +76,7 @@ + #include "qt_term.h" + #include "QtGnuplotEvent.h" + #include "QtGnuplotApplication.h" ++#include <QTextCodec> + #include "qt_conversion.cpp" + + void qt_atexit(); +diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.cpp gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.cpp +--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.cpp 2023-08-19 07:00:17.830930697 -0400 ++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.cpp 2023-08-19 07:29:58.464228586 -0400 +@@ -649,7 +649,7 @@ + { + QFontMetrics metrics(m_font); + int par1 = (metrics.ascent() + metrics.descent()); +- int par2 = metrics.width("0123456789")/10.; ++ int par2 = metrics.horizontalAdvance("0123456789")/10.; + m_eventHandler->postTermEvent(GE_fontprops, 0, 0, par1, par2, m_widget); + } + else if (type == GEDone) +@@ -803,7 +803,7 @@ + + int button = 0; + if (event->button()== Qt::LeftButton) button = 1; +- else if (event->button()== Qt::MidButton) button = 2; ++ else if (event->button()== Qt::MiddleButton) button = 2; + else if (event->button()== Qt::RightButton) button = 3; + + m_eventHandler->postTermEvent(GE_buttonpress, +@@ -892,7 +892,7 @@ + + int button = 0; + if (event->button()== Qt::LeftButton) button = 1; +- else if (event->button()== Qt::MidButton) button = 2; ++ else if (event->button()== Qt::MiddleButton) button = 2; + else if (event->button()== Qt::RightButton) button = 3; + + qint64 time = 301; /* Only used the first time in, when timer not yet running */ +diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.h gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.h +--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.h 2023-08-19 07:00:17.831930754 -0400 ++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.h 2023-08-19 07:31:27.261363017 -0400 +@@ -51,7 +51,7 @@ + + #include <QGraphicsScene> + #include <QGraphicsItemGroup> +-#include <QTime> ++#include <QElapsedTimer> + + class QtGnuplotEnhanced; + class QtGnuplotWidget; +@@ -106,7 +106,7 @@ + QPoint m_currentBoxOrigin; + QPoint m_textOffset; + double m_currentZ; +- QTime m_watches[4]; ++ QElapsedTimer m_watches[4]; + int m_currentPlotNumber; + bool m_inKeySample; + bool m_preserve_visibility; +diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotWidget.cpp gnuplot-5.2.8/src/qtterminal/QtGnuplotWidget.cpp +--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotWidget.cpp 2023-08-19 07:00:17.831930754 -0400 ++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotWidget.cpp 2023-08-19 07:16:25.518277987 -0400 +@@ -128,7 +128,7 @@ + + void QtGnuplotWidget::setViewMatrix() + { +- m_view->resetMatrix(); ++ m_view->resetTransform(); + } + + void QtGnuplotWidget::processEvent(QtGnuplotEventType type, QDataStream& in) +@@ -146,7 +146,7 @@ + QSize s; + in >> s; + m_lastSizeRequest = s; +- m_view->resetMatrix(); ++ m_view->resetTransform(); + QWidget* viewport = m_view->viewport(); + /* qDebug() << "QtGnuplotWidget::processEvent Size request" << s << size() << " / viewport" << m_view->maximumViewportSize(); + qDebug() << " widget size " << size(); +@@ -291,8 +291,8 @@ + QPrinter printer; + printer.setOutputFormat(QPrinter::PdfFormat); + printer.setOutputFileName(fileName); +- printer.setPaperSize(QSizeF(m_scene->width(), m_scene->height()), QPrinter::Point); +- printer.setPageMargins(0, 0, 0, 0, QPrinter::Point); ++ printer.setPageSize(QPageSize(QSizeF(m_scene->width(), m_scene->height()), QPageSize::Point)); ++ printer.setPageMargins(QMarginsF(0,0,0,0), QPageLayout::Unit(QPrinter::Point)); + QPainter painter(&printer); + painter.setRenderHints(renderHints()); + m_scene->render(&painter); +diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotItems.cpp gnuplot-5.2.8/src/qtterminal/QtGnuplotItems.cpp +--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotItems.cpp 2023-08-19 07:54:01.475635227 -0400 ++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotItems.cpp 2023-08-19 07:56:36.531724069 -0400 +@@ -111,7 +111,7 @@ + qreal QtGnuplotEnhancedFragment::width() const + { + QFontMetricsF metrics(m_font); +- return metrics.width(m_text); ++ return metrics.horizontalAdvance(m_text); + } + + void QtGnuplotEnhancedFragment::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
--- a/src/gnuplot.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/gnuplot.mk Wed Aug 23 08:48:00 2023 -0400 @@ -18,9 +18,15 @@ $(PKG)_EXTRAFLAGS += WXT=1 WX_CONFIG=$(MXE_TOOL_PREFIX)wx-config endif -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS += qt5 $(PKG)_EXTRAFLAGS += QT=1 QT_DIR="$(HOST_PREFIX)/qt5" QT_BIN_DIR="$(BUILD_TOOLS_PREFIX)/bin" + $(PKG)_STDVER := -std=gnu++11 +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS += qt6 + $(PKG)_EXTRAFLAGS += QT=1 QT_VERSION=6 QT_DIR="$(HOST_PREFIX)/qt6" QT_EXTRA_CXXFLAGS="-I$(HOST_INCDIR)/QtCore5Compat" QT_BIN_DIR="$(BUILD_TOOLS_PREFIX)/bin" QT_EXTRA_LIBS=-lQt6Core5Compat UIC=$(MXE_UIC) MOC=$(MXE_MOC) QMAKE=$(MXE_QMAKE) RCC=$(MXE_RCC) + $(PKG)_STDVER := -std=gnu++17 endif ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) @@ -35,16 +41,16 @@ ifeq ($(MXE_SYSTEM),mingw) define $(PKG)_BUILD - make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) -std=gnu++11' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot.exe gnuplot.exe - make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) -std=gnu++11' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=wgnuplot.exe wgnuplot.exe + make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) $($(PKG)_STDVER)' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot.exe gnuplot.exe + make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) $($(PKG)_STDVER)' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=wgnuplot.exe wgnuplot.exe $(INSTALL) -d '$(3)$(HOST_BINDIR)' $(INSTALL) -m755 '$(1)/config/mingw/gnuplot.exe' '$(3)$(HOST_BINDIR)' $(INSTALL) -m755 '$(1)/config/mingw/wgnuplot.exe' '$(3)$(HOST_BINDIR)' $(INSTALL) -m644 '$(1)/src/win/wgnuplot.mnu' '$(3)$(HOST_BINDIR)' - if [ "$(ENABLE_QT5)" == "yes" ]; then \ - make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) -std=gnu++11' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot_qt.exe gnuplot_qt.exe; \ + if [ "$(ENABLE_QT)" != "4" ]; then \ + make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) $($(PKG)_STDVER)' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot_qt.exe gnuplot_qt.exe; \ $(INSTALL) -m755 '$(1)/config/mingw/gnuplot_qt.exe' '$(3)$(HOST_BINDIR)'; \ fi
--- a/src/opengl_switch.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/opengl_switch.mk Wed Aug 23 08:48:00 2023 -0400 @@ -10,10 +10,14 @@ $(PKG)_URL := https://github.com/lostbard/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_DEPS := qt +endif +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS := qt5 -else - $(PKG)_DEPS := qt +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS := qt6 endif ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) @@ -26,12 +30,19 @@ $(call GITHUB_PKG_UPDATE,lostbard,opengl_switch,v) endef +$(PKG)_QMAKE_FLAGS := ifneq ($(MXE_NATIVE_BUILD),yes) ifeq ($(MXE_SYSTEM),mingw) - ifeq ($(ENABLE_QT5),yes) + ifeq ($(ENABLE_QT),4) + $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++' + endif + ifeq ($(ENABLE_QT),5) $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++' - else - $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++' + $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++11' + endif + ifeq ($(ENABLE_QT),6) + $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/qt6/mkspecs/win32-g++' + $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++17' endif endif ifeq ($(MXE_SYSTEM),msvc) @@ -44,16 +55,16 @@ cd '$(1)' && \ '$(MXE_QMAKE)' -makefile \ $($(PKG)_QMAKE_SPEC_OPTION) \ + $($(PKG)_QMAKE_FLAGS) \ QMAKE_UIC='$(MXE_UIC)' \ QMAKE_MOC='$(MXE_MOC)' \ - QMAKE_LFLAGS=$(MXE_LDFLAGS) \ - QMAKE_CXXFLAGS='-std=c++11' + QMAKE_LFLAGS=$(MXE_LDFLAGS) $(MAKE) -C '$(1)' -j '$(JOBS)' $(MAKE) -C '$(1)' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)' if [ $(MXE_WINDOWS_BUILD) = yes ]; then \ $(INSTALL) -d '$(HOST_BINDIR)'; \ - mv '$(HOST_PREFIX)/qt5/bin/opengl_switch.exe' '$(HOST_BINDIR)/opengl_switch.exe'; \ + mv '$(HOST_PREFIX)/qt$(ENABLE_QT)/bin/opengl_switch.exe' '$(HOST_BINDIR)/opengl_switch.exe'; \ fi endef
--- a/src/qscintilla.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/qscintilla.mk Wed Aug 23 08:48:00 2023 -0400 @@ -10,10 +10,14 @@ $(PKG)_URL := https://www.riverbankcomputing.com/static/Downloads/QScintilla/$($(PKG)_VERSION)/$($(PKG)_FILE) -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_DEPS := qt +endif +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS := qt5 -else - $(PKG)_DEPS := qt +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS := qt6 endif ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) @@ -30,10 +34,14 @@ ifneq ($(MXE_NATIVE_BUILD),yes) ifeq ($(MXE_SYSTEM),mingw) - ifeq ($(ENABLE_QT5),yes) + ifeq ($(ENABLE_QT),4) + $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++' + endif + ifeq ($(ENABLE_QT),5) $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++' - else - $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++' + endif + ifeq ($(ENABLE_QT),6) + $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/qt6/mkspecs/win32-g++' endif endif ifeq ($(MXE_SYSTEM),msvc) @@ -43,13 +51,15 @@ endif define $(PKG)_BUILD + if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \ + '$(MXE_QMAKE)' -set CROSS_COMPILE $(MXE_TOOL_PREFIX); \ + fi cd '$(1)/src' && \ - '$(MXE_QMAKE)' -makefile \ + '$(MXE_QMAKE)' -makefile \ $($(PKG)_QMAKE_SPEC_OPTION) \ QMAKE_UIC='$(MXE_UIC)' \ QMAKE_MOC='$(MXE_MOC)' \ - QMAKE_LFLAGS=$(MXE_LDFLAGS) \ - QMAKE_CXXFLAGS='-std=c++11' + QMAKE_LFLAGS=$(MXE_LDFLAGS) if [ $(MXE_SYSTEM) = msvc ]; then \ mkdir -p '$(3)' && \ @@ -64,8 +74,10 @@ if [ $(MXE_SYSTEM) = mingw ]; then \ $(INSTALL) -d '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)'; \ - if [ $(ENABLE_QT5) = yes ]; then \ + if [ "$(ENABLE_QT)" = "5" ]; then \ mv '$($(PKG)_INSTALL_ROOT)$(HOST_PREFIX)/qt5/lib/qscintilla2_qt5.dll' '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)'; \ + elif [ "$(ENABLE_QT)" = "6" ]; then \ + mv '$($(PKG)_INSTALL_ROOT)$(HOST_PREFIX)/qt6/lib/qscintilla2_qt6.dll' '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)'; \ else \ mv '$($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/qscintilla2_qt4.dll' '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)/'; \ fi; \ @@ -79,5 +91,5 @@ $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)qscintilla2$(LIBRARY_SUFFIX).dll' '$($(PKG)_INSTALL_ROOT)$(CMAKE_HOST_PREFIX)/bin/'; \ rm -f '$($(PKG)_INSTALL_ROOT)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)qscintilla2$(LIBRARY_SUFFIX).dll'; \ fi +endef -endef
--- a/src/qt5.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/qt5.mk Wed Aug 23 08:48:00 2023 -0400 @@ -5,7 +5,7 @@ $(PKG)_VERSION = $(qtbase_VERSION) $(PKG)_DEPS := $(patsubst $(TOP_DIR)/src/%.mk,%,\ $(shell grep -l 'qtbase_VERSION' \ - $(TOP_DIR)/src/qt*.mk \ + $(TOP_DIR)/src/qt[^6]*.mk \ --exclude '$(TOP_DIR)/src/qt5.mk')) $(PKG)_FILE = $(PKG)_URL =
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qt5compat.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,25 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := qt6-qt5compat +$(PKG)_IGNORE := +$(PKG)_VERSION = $(qt6-qtbase_VERSION) +$(PKG)_CHECKSUM := 7b7f0614b4ae3736a8c1b19f7be3353493170c36 +$(PKG)_SUBDIR = $(subst qtbase,qt5compat,$(qt6-qtbase_SUBDIR)) +$(PKG)_FILE = $(subst qtbase,qt5compat,$(qt6-qtbase_FILE)) +$(PKG)_URL = $(subst qtbase,qt5compat,$(qt6-qtbase_URL)) +$(PKG)_DEPS := qt6-qtbase + +define $(PKG)_UPDATE + echo $(qt6-qtbase_VERSION) +endef + +define $(PKG)_BUILD + cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' + cmake --build $(1) -j '$(JOBS)' + cmake --install $(1) + if [ $(MXE_WINDOWS_BUILD) = yes ]; then \ + $(INSTALL) -d '$(HOST_BINDIR)'; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Core5Compat.dll '$(HOST_BINDIR)'/Qt6Core5Compat.dll; \ + fi +endef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qtbase-1-fixes.patch Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,49 @@ +This file is part of MXE. See LICENSE.md for licensing information. + +Contains ad hoc patches for cross building. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore <tonyt@logyst.com> +Date: Mon, 14 Dec 2020 15:09:00 +1100 +Subject: [PATCH 1/2] optionally build docs + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1111111..2222222 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -173,7 +173,9 @@ if(NOT QT_BUILD_STANDALONE_TESTS) + qt_internal_set_up_config_optimizations_like_in_qmake() + + ## Setup documentation +- add_subdirectory(doc) ++ if(QT_BUILD_DOCS) ++ add_subdirectory(doc) ++ endif() + + ## Visit all the directories: + add_subdirectory(src) + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mark Brand <mabrand@mabrand.nl> +Date: Mon, 3 Apr 2023 13:12:47 +0200 +Subject: [PATCH 2/2] add missing oleaut32 dependency for networklistmanager + +Required for symbols VariantInit and VariantClear. + +diff --git a/src/plugins/networkinformation/networklistmanager/CMakeLists.txt b/src/plugins/networkinformation/networklistmanager/CMakeLists.txt +index 1111111..2222222 100644 +--- a/src/plugins/networkinformation/networklistmanager/CMakeLists.txt ++++ b/src/plugins/networkinformation/networklistmanager/CMakeLists.txt +@@ -14,6 +14,11 @@ qt_internal_add_plugin(QNLMNIPlugin + Qt::NetworkPrivate + ) + ++qt_internal_extend_target(QNLMNIPlugin CONDITION WIN32 ++ LIBRARIES ++ oleaut32 ++) ++ + qt_internal_extend_target(QNLMNIPlugin CONDITION WIN32 AND MSVC AND NOT CLANG + LIBRARIES + runtimeobject
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qtbase.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,135 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := qt6-qtbase +$(PKG)_IGNORE := +$(PKG)_VERSION := 6.5.2 +$(PKG)_CHECKSUM := b4c8bf859199a994c59dc3f1e77abeef61649e9c +$(PKG)_SUBDIR := qtbase-everywhere-src-$($(PKG)_VERSION) +$(PKG)_FILE := qtbase-everywhere-src-$($(PKG)_VERSION).tar.xz +$(PKG)_URL := https://download.qt.io/official_releases/qt/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE) +ifeq ($(USE_SYSTEM_FONTCONFIG),no) + $(PKG)_FONTCONFIG := fontconfig +endif +$(PKG)_DEPS := dbus double-conversion freetds freetype $($(PKG)_FONTCONFIG) icu4c jpeg libjbig libpng libproxy pcre2 postgresql sqlite zlib zstd + +$(PKG)_CMAKE_OPTS := +$(PKG)_CONFIGURE_ENV := +$(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH) + +ifeq ($(USE_SYSTEM_OPENGL),no) + $(PKG)_DEPS += mesa + $(PKG)_CMAKE_OPTS += -DFEATURE_egl=OFF +endif +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_DEPS += uuid + $(PKG)_CONFIGURE_ENV := PSQL_LIBS="-lpq -lsecur32 -lws2_32" + $(PKG)_CMAKE_OPTS += \ + -DFEATURE_sql_mysql=OFF \ + -DFEATURE_sql_odbc=ON \ + -DFEATURE_sql_psql=ON \ + -DFEATURE_sql_sqlite=ON \ + -DFEATURE_system_sqlite=ON + + ifeq ($(ENABLE_WINDOWS_64),yes) + $(PKG)_DEPS += icu4c + $(PKG)_CMAKE_OPTS += -DFEATURE_icu=ON + else + $(PKG)_CMAKE_OPTS += -DFEATURE_icu=OFF + endif +else + $(PKG)_DEPS += icu4c + $(PKG)_CMAKE_OPTS += -DFEATURE_icu=ON + $(PKG)_CMAKE_OPTS += \ + -DFEATURE_system_sqlite=ON + + ifeq ($(USE_SYSTEM_X11_LIBS),no) + $(PKG)_DEPS += xdamage xdmcp xext xfixes xi xrender xt xxf86vm x11 xcb xcb-util xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xkbcommon + endif +endif + +define $(PKG)_UPDATE + $(WGET) -q -O- http://download.qt-project.org/official_releases/qt/$(call SHORT_PKG_VERSION,$(PKG))/ | \ + $(SED) -n 's,.*href="\(6\.[0-9]\+\.[^/]*\)/".*,\1,p' | \ + grep -iv -- '-rc' | \ + sort | + tail -1 +endef + +ifeq ($(MXE_NATIVE_BUILD),no) + $(PKG)_CMAKE_OPTS += -DQT_QMAKE_DEVICE_OPTIONS=CROSS_COMPILE=$(MXE_TOOL_PREFIX) + $(PKG)_CMAKE_OPTS += -DQT_HOST_PATH='$(BUILD_TOOLS_PREFIX)/qt6' + ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_CMAKE_OPTS += -DQT_QMAKE_TARGET_MKSPEC=win32-g++ + endif +endif + +$(PKG)_CONFIGURE_ENV += \ + PKG_CONFIG="$(MXE_PKG_CONFIG)" \ + PKG_CONFIG_SYSROOT_DIR="/" \ + PKG_CONFIG_LIBDIR=$($(PKG)_PKG_CONFIG_PATH) + +define $(PKG)_BUILD + if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \ + mkdir '$(1).native'; \ + cmake -S '$(1)' -B '$(1).native' \ + -G Ninja \ + -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \ + -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)' \ + -DQT_BUILD_{TESTS,EXAMPLES,DOCS}=OFF \ + -DFEATURE_pkg_config=OFF \ + -DBUILD_WITH_PCH=OFF \ + -DFEATURE_{eventfd,glib,gui,icu,openssl,zstd,thread,pcre2,sql,xml,testlib,backtrace}=OFF; \ + cmake --build '$(1).native' -j '$(JOBS)'; \ + cmake --install '$(1).native'; \ + fi + + mkdir '$(1).build' + $($(PKG)_CONFIGURE_ENV) \ + 'cmake' -S '$(1)' -B '$(1).build' \ + -G Ninja \ + $(CMAKE_CCACHE_FLAGS) \ + -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' \ + -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ + -DQT_BUILD_EXAMPLES=OFF \ + -DQT_BUILD_TESTS=OFF \ + -DBUILD_WITH_PCH=OFF \ + -DFEATURE_accessibility=ON \ + -DFEATURE_dbus=OFF \ + -DFEATURE_fontconfig=OFF \ + -DFEATURE_system_freetype=ON \ + -DFEATURE_glib=OFF \ + -DFEATURE_system_harfbuzz=OFF \ + -DFEATURE_opengl_dynamic=ON \ + -DFEATURE_openssl=OFF \ + -DFEATURE_system_pcre2=ON \ + -DFEATURE_pkg_config=ON \ + -DFEATURE_system_zlib=ON \ + -DFEATURE_use_gold_linker_alias=OFF \ + $($(PKG)_CMAKE_OPTS) + + 'cmake' --build '$(1).build' -j '$(JOBS)' + 'cmake' --install '$(1).build' + + if [ $(MXE_WINDOWS_BUILD) = yes ]; then \ + $(INSTALL) -d '$(HOST_BINDIR)'; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Concurrent.dll '$(HOST_BINDIR)'/Qt6Concurrent.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Core.dll '$(HOST_BINDIR)'/Qt6Core.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Gui.dll '$(HOST_BINDIR)'/Qt6Gui.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Network.dll '$(HOST_BINDIR)'/Qt6Network.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6OpenGL.dll '$(HOST_BINDIR)'/Qt6OpenGL.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6OpenGLWidgets.dll '$(HOST_BINDIR)'/Qt6OpenGLWidgets.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6PrintSupport.dll '$(HOST_BINDIR)'/Qt6PrintSupport.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Sql.dll '$(HOST_BINDIR)'/Qt6Sql.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt5Test.dll '$(HOST_BINDIR)'/Qt6Test.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Widgets.dll '$(HOST_BINDIR)'/Qt6Widgets.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Xml.dll '$(HOST_BINDIR)'/Qt6Xml.dll; \ + fi + + if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \ + ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/qmake6' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qmake-qt6; \ + ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/moc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'moc; \ + ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/uic' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'uic; \ + ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/rcc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'rcc; \ + fi +endef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qtimageformats-1-fixes.patch Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,43 @@ +This file is part of MXE. See LICENSE.md for licensing information. + +Contains ad hoc patches for cross building. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mark Brand <mabrand@mabrand.nl> +Date: Sun, 13 Feb 2022 17:30:59 +0100 +Subject: [PATCH 1/2] try to fix linking to libtiff's transitive dependencies + + +diff --git a/src/imageformats/configure.cmake b/src/imageformats/configure.cmake +index 1111111..2222222 100644 +--- a/src/imageformats/configure.cmake ++++ b/src/imageformats/configure.cmake +@@ -19,6 +19,8 @@ set_property(CACHE INPUT_webp PROPERTY STRINGS undefined no qt system) + + qt_find_package(WrapJasper PROVIDED_TARGETS WrapJasper::WrapJasper MODULE_NAME imageformats QMAKE_LIB jasper) + qt_find_package(TIFF PROVIDED_TARGETS TIFF::TIFF MODULE_NAME imageformats QMAKE_LIB tiff) ++### <sigh> ++target_link_libraries(TIFF::TIFF INTERFACE -ltiff -lwebp -lsharpyuv -lzstd -llzma -ljpeg -lz) + # Threads::Threads might be brought in via a top-level CMakeLists.txt find_package dependency + # in which case if the system WebpConfig.cmake depends Threads, it shouldn't try to promote it to + # global to avoid a 'global promotion of a target in a different subdirectory' error. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mark Brand <mabrand@mabrand.nl> +Date: Thu, 6 Apr 2023 17:27:28 +0200 +Subject: [PATCH 2/2] explicit -lsharpyuv for -lwebp + + +diff --git a/cmake/FindWrapWebP.cmake b/cmake/FindWrapWebP.cmake +index 1111111..2222222 100644 +--- a/cmake/FindWrapWebP.cmake ++++ b/cmake/FindWrapWebP.cmake +@@ -51,7 +51,7 @@ mark_as_advanced(WebP_INCLUDE_DIR WebP_LIBRARY WebP_demux_INCLUDE_DIR WebP_demux + if(WrapWebP_FOUND) + set(WebP_FOUND ON) + add_library(WrapWebP::WrapWebP INTERFACE IMPORTED) +- target_link_libraries(WrapWebP::WrapWebP INTERFACE ${WebP_LIBRARY} ${WebP_demux_LIBRARY} ${WebP_mux_LIBRARY}) ++ target_link_libraries(WrapWebP::WrapWebP INTERFACE ${WebP_LIBRARY} ${WebP_demux_LIBRARY} ${WebP_mux_LIBRARY} -lsharpyuv) + target_include_directories(WrapWebP::WrapWebP + INTERFACE ${WebP_INCLUDE_DIR} ${WebP_demux_INCLUDE_DIR} ${WebP_mux_INCLUDE_DIR}) + endif()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qtimageformats.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,21 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := qt6-qtimageformats +$(PKG)_IGNORE := +$(PKG)_VERSION = $(qt6-qtbase_VERSION) +$(PKG)_CHECKSUM := dc3a5c32f2a6f3185bddae39e7799c08bf4221df +$(PKG)_SUBDIR = $(subst qtbase,qtimageformats,$(qt6-qtbase_SUBDIR)) +$(PKG)_FILE = $(subst qtbase,qtimageformats,$(qt6-qtbase_FILE)) +$(PKG)_URL = $(subst qtbase,qtimageformats,$(qt6-qtbase_URL)) +$(PKG)_DEPS := jasper libmng qt6-qtbase tiff + +define $(PKG)_UPDATE + echo $(qt6-qtbase_VERSION) +endef + +define $(PKG)_BUILD + cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' + cmake --build $(1) -j '$(JOBS)' + cmake --install $(1) +endef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qtsvg.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,26 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := qt6-qtsvg +$(PKG)_IGNORE := +$(PKG)_VERSION = $(qt6-qtbase_VERSION) +$(PKG)_CHECKSUM := 41ad618e9ba176f5d77b9043777c0bd23437422e +$(PKG)_SUBDIR = $(subst qtbase,qtsvg,$(qt6-qtbase_SUBDIR)) +$(PKG)_FILE = $(subst qtbase,qtsvg,$(qt6-qtbase_FILE)) +$(PKG)_URL = $(subst qtbase,qtsvg,$(qt6-qtbase_URL)) +$(PKG)_DEPS := qt6-qtbase + +define $(PKG)_UPDATE + echo $(qt6-qtbase_VERSION) +endef + +define $(PKG)_BUILD + cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' + cmake --build $(1) -j '$(JOBS)' + cmake --install $(1) + if [ $(MXE_WINDOWS_BUILD) = yes ]; then \ + $(INSTALL) -d '$(HOST_BINDIR)'; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Svg.dll '$(HOST_BINDIR)'/Qt6Svg.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6SvgWidgets.dll '$(HOST_BINDIR)'/Qt6SvgWidgets.dll; \ + fi +endef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qttools.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,51 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := qt6-qttools +$(PKG)_IGNORE := +$(PKG)_VERSION = $(qt6-qtbase_VERSION) +$(PKG)_CHECKSUM := 2e25b0d40c1bea00b9a1f5dcecf83472d9353190 +$(PKG)_SUBDIR = $(subst qtbase,qttools,$(qt6-qtbase_SUBDIR)) +$(PKG)_FILE = $(subst qtbase,qttools,$(qt6-qtbase_FILE)) +$(PKG)_URL = $(subst qtbase,qttools,$(qt6-qtbase_URL)) +$(PKG)_DEPS := qt6-qtbase + +define $(PKG)_UPDATE + echo $(qt6-qtbase_VERSION) +endef + +define $(PKG)_BUILD + # native tools + mkdir '$(1).native' && cd '$(1).native' && \ + '$(BUILD_TOOLS_PREFIX)/qt6/bin/qt-cmake' -S '$(1)' -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \ + -DFEATURE_linguist=ON \ + -DFEATURE_designer=OFF + + cmake --build $(1).native -j '$(JOBS)' + cmake --install '$(1).native' + + if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \ + ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lconvert' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lconvert; \ + ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lrelease' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lrelease; \ + echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator; \ + echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qcollectiongenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qcollectiongenerator; \ + fi + + mkdir '$(1).build' && cd '$(1).build' && \ + '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -S '$(1)' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' + + # not built for some reason. make dummy so install won't fail + touch '$(1).build/bin/qhelpgenerator.exe' + + cmake --build $(1).build -j '$(JOBS)' + cmake --install '$(1).build' + + if [ $(MXE_WINDOWS_BUILD) = yes ]; then \ + $(INSTALL) -d '$(HOST_BINDIR)'; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6UiTools.dll '$(HOST_BINDIR)'/Qt6UiTools.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Help.dll '$(HOST_BINDIR)'/Qt6Help.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6Designer.dll '$(HOST_BINDIR)'/Qt6Designer.dll; \ + cp '$(HOST_PREFIX)'/qt6/bin/Qt6DesignerComponents.dll '$(HOST_BINDIR)'/Qt6DesignerComponents.dll; \ + fi +endef +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6-qttranslations.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,21 @@ +# This file is part of MXE. See LICENSE.md for licensing information. + +PKG := qt6-qttranslations +$(PKG)_IGNORE := +$(PKG)_VERSION = $(qt6-qtbase_VERSION) +$(PKG)_CHECKSUM := fb301261a5277253d2e5e2bc9d7dd6059bdd1bfc +$(PKG)_SUBDIR = $(subst qtbase,qttranslations,$(qt6-qtbase_SUBDIR)) +$(PKG)_FILE = $(subst qtbase,qttranslations,$(qt6-qtbase_FILE)) +$(PKG)_URL = $(subst qtbase,qttranslations,$(qt6-qtbase_URL)) +$(PKG)_DEPS := qt6-qtbase qt6-qttools + +define $(PKG)_UPDATE + echo $(qt6-qtbase_VERSION) +endef + +define $(PKG)_BUILD + cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' -DQT_HOST_PATH='$(BUILD_TOOLS_PREFIX)/qt6' + cmake --build $(1) -j '$(JOBS)' + cmake --install $(1) +endef +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/qt6.mk Wed Aug 23 08:48:00 2023 -0400 @@ -0,0 +1,14 @@ +PKG := qt6 +$(PKG)_VERSION = $(qtbase_VERSION) +$(PKG)_DEPS := $(patsubst $(TOP_DIR)/src/%.mk,%,\ + $(shell grep -l 'qt6-qtbase_VERSION' \ + $(TOP_DIR)/src/qt6-*.mk)) +$(PKG)_FILE = +$(PKG)_URL = +$(PKG)_CHECKSUM := #No checksum + +define $(PKG)_UPDATE + echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2; + echo $($(PKG)_VERSION) +endef +
--- a/src/release-octave.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/release-octave.mk Wed Aug 23 08:48:00 2023 -0400 @@ -12,7 +12,7 @@ ## --enable-octave=release ## --enable-binary-packages ## --enable-devel-tools -## --enable-qt5 +## --enable-qt=5 ## --disable-system-opengl ## ## and one of the following @@ -44,10 +44,14 @@ endif $(PKG)_DEPS := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_DEPS += qt +endif +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS += qt5 -else - $(PKG)_DEPS += qt +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS += qt6 endif ifeq ($(USE_SYSTEM_OPENGL),no) @@ -95,17 +99,23 @@ RCC_QTVER=$(MXE_RCC) \ LRELEASE_QTVER=$(MXE_LRELEASE) -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" + $(PKG)_QTDIR := $(HOST_PREFIX) + $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" +endif +ifeq ($(ENABLE_QT),5) #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" $(PKG)_QTDIR := $(HOST_PREFIX)/qt5 $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5" -else - $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" - $(PKG)_QTDIR := $(HOST_PREFIX) - $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" endif - +ifeq ($(ENABLE_QT),6) + #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" + $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt6/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" + $(PKG)_QTDIR := $(HOST_PREFIX)/qt6 + $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt6" +endif ifneq ($(ENABLE_DOCS),yes) $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs
--- a/src/stable-octave.mk Thu Aug 17 16:44:07 2023 -0400 +++ b/src/stable-octave.mk Wed Aug 23 08:48:00 2023 -0400 @@ -23,10 +23,14 @@ endif $(PKG)_DEPS := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_DEPS += qt +endif +ifeq ($(ENABLE_QT),5) $(PKG)_DEPS += qt5 -else - $(PKG)_DEPS += qt +endif +ifeq ($(ENABLE_QT),6) + $(PKG)_DEPS += qt6 endif ifeq ($(USE_SYSTEM_OPENGL),no) @@ -74,17 +78,23 @@ RCC_QTVER=$(MXE_RCC) \ LRELEASE_QTVER=$(MXE_LRELEASE) -ifeq ($(ENABLE_QT5),yes) +ifeq ($(ENABLE_QT),4) + $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" + $(PKG)_QTDIR := $(HOST_PREFIX) + $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" +endif +ifeq ($(ENABLE_QT),5) #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" $(PKG)_QTDIR := $(HOST_PREFIX)/qt5 $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5" -else - $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" - $(PKG)_QTDIR := $(HOST_PREFIX) - $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" endif - +ifeq ($(ENABLE_QT),6) + #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" + $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt6/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" + $(PKG)_QTDIR := $(HOST_PREFIX)/qt6 + $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt6" +endif ifneq ($(ENABLE_DOCS),yes) $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs