mxe/plugins/examples/qt5-freeze
Tony Theodore ab5d9a7185 qttools: read test from current directory and freeze example 5.7 plugin
see: https://github.com/mxe/mxe/issues/1901#issuecomment-333551106
2017-10-10 23:46:31 +11:00
..
qttools-test qttools: read test from current directory and freeze example 5.7 plugin 2017-10-10 23:46:31 +11:00
README.md qttools: read test from current directory and freeze example 5.7 plugin 2017-10-10 23:46:31 +11:00
qt3d.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qt5.mk qt5: read deps from files in current directory 2017-09-30 17:12:28 +10:00
qtactiveqt-1.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtactiveqt.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtbase-1-fixes.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtbase.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtcanvas3d.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtcharts.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtconnectivity.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtdatavis3d.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtdeclarative-render2d.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtdeclarative.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtgamepad.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtgraphicaleffects.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtimageformats-1.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtimageformats.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtlocation.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtmultimedia.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtpurchasing.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtquickcontrols.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtquickcontrols2.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtscript.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtscxml.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtsensors.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtserialbus.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtserialport.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtsvg.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qttools-1.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qttools.mk qttools: read test from current directory and freeze example 5.7 plugin 2017-10-10 23:46:31 +11:00
qttranslations.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtvirtualkeyboard.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwebchannel.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwebkit-1-fixes.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwebkit.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwebsockets.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwebview.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwinextras-1.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtwinextras.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtxmlpatterns-1.patch add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00
qtxmlpatterns.mk add qt5 freeze example plugin (e.g. winxp support) 2017-07-19 15:58:24 +10:00

README.md

Freezing Qt5 version

This plugin demonstrates freezing a version of Qt5 in a local plugin, possibly for Win XP support (see #1827, #1734). It's possible to simply stay on a git checkout, but then other toolchain features are also frozen.

N.B. This is unsupported and exists solely as an example of how one might maintain a local version.

Overview

Basic outline is to checkout a version, copy the makefile and patches, and lock the patches to the ones in this directory instead of core MXE src:

export PLUGIN_DIR=plugins/examples/qt5-freeze
rm -rf $PLUGIN_DIR
mkdir -p $PLUGIN_DIR

# parent of Qt 5.8 update
git checkout a0f9e61

# find all Qt5 modules and copy
export QT5_PKGS=`grep -l qtbase_VERSION src/*.mk | sed -n 's,src/\(.*\)\.mk.*,\1,p' | tr '\n' ','`
export QT5_PKGS=${QT5_PKGS}qtbase
cp `eval echo src/{$QT5_PKGS}.mk` $PLUGIN_DIR
cp `eval echo src/{$QT5_PKGS}-*.patch` $PLUGIN_DIR

# copy other relevant sources
cp -R src/qttools-test $PLUGIN_DIR

# set $(PKG)_PATCHES to only look for patches in the current directory
# on macos, use `gsed` instead of `sed`
find $PLUGIN_DIR -name "qt[^5]*.mk" -exec sed -i '9i$(PKG)_PATCHES  := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/$(PKG)-[0-9]*.patch)))' {} \;
git checkout master

Now you'll have all the right versions, just some minor changes since mysql doesn't support XP (see #1394). In a real local scenario, the package should also be removed from $(PKG)_DEPS and qtbase.mk modified. MXE_PLUGIN_DIRS can also be added to settings.mk

make qt5 MXE_PLUGIN_DIRS=$PLUGIN_DIR qtbase_CONFIGURE_OPTS='-no-sql-mysql'