* Update patch for static freetype2 in qt5 for brotli library renaming * Update patches for Qt 5 SQL drivers to include crypt32 * This library is required by OpenSSL's crypto library. Not sure why there were no linker errors before.
138 lines
5.6 KiB
Bash
Executable File
138 lines
5.6 KiB
Bash
Executable File
# Maintainer: Martchus <martchus@gmx.net>
|
|
# Contributor: ant32 <antreimer@gmail.com>
|
|
# Contributor: Filip Brcic <brcha@gna.org>
|
|
|
|
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
|
|
# you also find the URL of a binary repository.
|
|
|
|
# This file is created from PKGBUILD.sh.ep contained by the mentioned repository.
|
|
# Do not edit it manually! See README.md in the repository's root directory
|
|
# for more information.
|
|
|
|
# All patches are managed at https://github.com/Martchus/qttools
|
|
|
|
# For QQuickWidgetPlugin, add mingw-w64-qt5-declarative to dependencies (already present by default)
|
|
# For QWebViewPlugin, add mingw-w64-qt5-webkit to dependencies (mingw-w64-qt5-webkit is no longer updated)
|
|
# For QAxWidgetPlugin, add mingw-w64-qt5-activeqt to dependencies
|
|
|
|
# Note that static MySQL and PostgreSQL plugins are disabled because mariadb-connector-c and posgresql come with their own pthread
|
|
# implementation which has conflicting symbols with the pthread library Qt uses leading to errors like:
|
|
# /usr/lib/gcc/i686-w64-mingw32/8.2.0/../../../../i686-w64-mingw32/bin/ld: /usr/i686-w64-mingw32/lib/libpthread.a(libwinpthread_la-mutex.o):
|
|
# in function `pthread_mutex_lock': /build/mingw-w64-winpthreads/src/mingw-w64-v6.0.0/mingw-w64-libraries/winpthreads/src/mutex.c:187:
|
|
# multiple definition of `pthread_mutex_lock'; /usr/i686-w64-mingw32/lib/libpq.a(pthread-win32.o):(.text+0x70): first defined here
|
|
|
|
_qt_module=qttools
|
|
pkgname=mingw-w64-qt5-tools-static
|
|
pkgver=5.15.12
|
|
pkgrel=1
|
|
arch=('any')
|
|
pkgdesc="A cross-platform application and UI framework (Development Tools, QtHelp; mingw-w64)"
|
|
depends=('mingw-w64-qt5-declarative-static')
|
|
makedepends=('mingw-w64-gcc' 'mingw-w64-pkg-config' 'mingw-w64-postgresql' 'mingw-w64-mariadb-connector-c' 'mingw-w64-vulkan-headers')
|
|
license=('GPL3' 'LGPL3' 'FDL' 'custom')
|
|
_commit=bd0ceb7de5d0c918ae596150e95b069dca8b9150
|
|
_basever=${pkgver%%+*}
|
|
pkgver+=+kde+r4
|
|
makedepends+=('git')
|
|
options=('!strip' '!buildflags' 'staticlibs')
|
|
groups=('mingw-w64-qt5')
|
|
url='https://www.qt.io/'
|
|
_pkgfqn=${_qt_module}
|
|
source=(git+https://invent.kde.org/qt/qt/$_pkgfqn#commit=$_commit
|
|
'0001-Fix-linguist-macro.patch')
|
|
sha256sums=('SKIP'
|
|
'd4500aad5ae74b538e307812861391da0df69d74bfff8e18f4a1fb15aaa3c73b')
|
|
|
|
_architectures='i686-w64-mingw32 x86_64-w64-mingw32'
|
|
|
|
depends+=(${pkgname%-static}) # the static version relies on the shared version for build tools and headers
|
|
_configurations+=('CONFIG+=no_smart_library_merge CONFIG+=no_smart_library_merge QTPLUGIN.sqldrivers=qsqlite QTPLUGIN.sqldrivers+=qsqlodbc CONFIG+=static')
|
|
|
|
pkgver() {
|
|
cd $_pkgfqn
|
|
echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$_commit`
|
|
}
|
|
|
|
prepare() {
|
|
cd "${srcdir}/${_pkgfqn}"
|
|
|
|
# apply patches; further descriptions can be found in patch files itself
|
|
for patch in "$srcdir/"*.patch; do
|
|
patch -p1 -i "$patch"
|
|
done
|
|
}
|
|
|
|
build() {
|
|
cd "${srcdir}/${_pkgfqn}"
|
|
|
|
for _arch in ${_architectures}; do
|
|
for _config in "${_configurations[@]}"; do
|
|
msg2 "Building ${_config##*=} version for ${_arch}"
|
|
mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=}
|
|
${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} ${_additional_qmake_args}
|
|
make
|
|
popd
|
|
done
|
|
done
|
|
}
|
|
|
|
package() {
|
|
cd "${srcdir}/${_pkgfqn}"
|
|
|
|
for _arch in ${_architectures}; do
|
|
for _config in "${_configurations[@]}"; do
|
|
pushd build-${_arch}-${_config##*=}
|
|
|
|
make INSTALL_ROOT="$pkgdir" install
|
|
|
|
# use prl files from build directory since installed prl files seem to have incorrect QMAKE_PRL_LIBS_FOR_CMAKE
|
|
if [[ -d 'lib' ]]; then
|
|
pushd 'lib'
|
|
find -iname '*.static.prl' -exec cp --target-directory "${pkgdir}/usr/${_arch}/lib" --parents {} +
|
|
popd
|
|
fi
|
|
if [[ -d 'plugins' ]]; then
|
|
pushd 'plugins'
|
|
find -iname '*.static.prl' -exec cp --target-directory "${pkgdir}/usr/${_arch}/lib/qt/plugins" --parents {} +
|
|
popd
|
|
fi
|
|
|
|
# replace library path in *.prl files so it points to the installed location and not the build directory
|
|
find "${pkgdir}/usr/${_arch}/lib" \( -type f -name '*.prl' -o -name '*.pc' \) -exec sed -i -e "s:$PWD/lib:/usr/$_arch/lib:g" {} \;
|
|
|
|
# remove prl files for debug version
|
|
if ! [[ $MINGW_W64_QT_DEBUG_BUILD ]]; then
|
|
for file in $(find "${pkgdir}/usr/${_arch}" -name '*d.prl' -o -name '*d.static.prl'); do
|
|
[ -f "${file%d*}${file##*d}" ] && rm "${file}";
|
|
done
|
|
fi
|
|
|
|
# remove '.static.prl' files
|
|
find "${pkgdir}/usr/${_arch}" -name '.static.prl' -delete
|
|
|
|
# delete duplicate files that are in the shared package
|
|
find "${pkgdir}/usr/${_arch}" -name '*.exe' -delete
|
|
for shared_path in "${pkgdir}/usr/${_arch}/"{include,share} "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs}; do
|
|
[[ -d $shared_path ]] && rm -fR "$shared_path"
|
|
done
|
|
for file in $(find "$pkgdir/usr/$_arch/lib"); do
|
|
[[ -f "${file##$pkgdir}" ]] && rm "$file"
|
|
done
|
|
|
|
find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name '*.dll' -delete
|
|
find "${pkgdir}/usr/${_arch}" -name '*.dll' -exec ${_arch}-strip --strip-unneeded {} \;
|
|
find "${pkgdir}/usr/${_arch}" \( -name '*.a' -not -name 'libQt5QmlDevTools.a' -not -name 'libQt5Bootstrap.a' \) -exec ${_arch}-strip -g {} \;
|
|
[[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \
|
|
find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \;
|
|
find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \;
|
|
|
|
popd
|
|
done
|
|
|
|
# drop QMAKE_PRL_BUILD_DIR because reference the build dir
|
|
find "${pkgdir}/usr/${_arch}/lib" -type f -name '*.prl' -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
|
|
done
|
|
|
|
}
|
|
|