aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD362
1 files changed, 124 insertions, 238 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 753e021fb1c5..aee7f59d54d6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,141 +9,106 @@
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository.
-# All patches are managed at https://github.com/Martchus/qtbase
+# 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.
-# Helper functions for the split builds
-isDefault() {
- [[ $pkgname = 'mingw-w64-qt5-base' ]] || [[ $pkgname = 'mingw-w64-qt5-base-static' ]]
-}
-isStatic() {
- [ "${pkgname##*-}" = 'static' ]
-}
-isOpenGL() {
- # Currently use native OpenGL by default
- isDefault || \
- [[ $pkgname = 'mingw-w64-qt5-base-opengl' ]] || [[ $pkgname = 'mingw-w64-qt5-base-opengl-static' ]]
-}
-isANGLE() {
- [[ $pkgname = 'mingw-w64-qt5-base-angle' ]] || [[ $pkgname = 'mingw-w64-qt5-base-angle-static' ]] || \
- [[ $pkgname = 'mingw-w64-qt5-base-dynamic' ]] || [[ $pkgname = 'mingw-w64-qt5-base-dynamic-static' ]]
- # Treat dynamic version like ANGLE version, correct?
-}
-isDynamic() {
- [[ $pkgname = 'mingw-w64-qt5-base-dynamic' ]] || [[ $pkgname = 'mingw-w64-qt5-base-dynamic-static' ]]
-}
-isNoOpenGL() {
- [[ $pkgname = 'mingw-w64-qt5-base-noopengl' ]] || [[ $pkgname = 'mingw-w64-qt5-base-noopengl-static' ]]
-}
+# All patches are managed at https://github.com/Martchus/qtbase
+_qt_module=qtbase
pkgname=mingw-w64-qt5-base
-pkgver=5.12.1
+pkgver=5.15.13+kde+r138
pkgrel=1
-pkgdesc='A cross-platform application and UI framework (mingw-w64)'
-# The static variant doesn't contain any executables which need to be executed on the build machine
-isStatic && arch=('any') || arch=('i686' 'x86_64')
+_basever=${pkgver%%+*}
+_commit=b9906b5233a80cab372c95ac4dd68b25bdca0646
+pkgdesc='A cross-platform application and UI framework, native OpenGL backend (mingw-w64)'
+arch=('i686' 'x86_64')
url='https://www.qt.io/'
license=('GPL3' 'LGPL3' 'FDL' 'custom')
depends=('mingw-w64-crt' 'mingw-w64-zlib' 'mingw-w64-libjpeg-turbo' 'mingw-w64-sqlite'
'mingw-w64-libpng' 'mingw-w64-openssl' 'mingw-w64-dbus' 'mingw-w64-harfbuzz'
'mingw-w64-pcre2')
+optdepends=('mingw-w64-mesa: use LLVMpipe software rasterizer for Qt Quick'
+ 'mingw-w64-postgresql: PostgreSQL support'
+ 'mingw-w64-mariadb-connector-c: MySQL support')
+makedepends=('mingw-w64-gcc' 'mingw-w64-postgresql' 'mingw-w64-mariadb-connector-c'
+ 'mingw-w64-vulkan-headers' 'mingw-w64-pkg-config' 'mingw-w64-environment' 'git')
groups=('mingw-w64-qt5')
-optdepends=('mingw-w64-postgresql: PostgreSQL support' 'mingw-w64-mariadb-connector-c: MySQL support')
-makedepends=('mingw-w64-gcc' 'mingw-w64-postgresql' 'mingw-w64-mariadb-connector-c' 'mingw-w64-pkg-config')
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
-_pkgfqn="qtbase-everywhere-src-${pkgver}"
-source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${pkgver}/submodules/${_pkgfqn}.tar.xz"
+_pkgfqn=${_qt_module}
+source=(git+https://invent.kde.org/qt/qt/$_pkgfqn#commit=$_commit
'0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch'
'0002-Ensure-GLdouble-is-defined-when-using-dynamic-OpenGL.patch'
- '0003-Use-external-ANGLE-library.patch'
- '0004-Fix-too-many-sections-assemler-error-in-OpenGL-facto.patch'
- '0005-Make-sure-.pc-files-are-installed-correctly.patch'
- '0006-Don-t-add-resource-files-to-LIBS-parameter.patch'
- '0007-Prevent-debug-library-names-in-pkg-config-files.patch'
- '0008-Fix-linking-against-shared-static-libpng.patch'
- '0009-Fix-linking-against-static-D-Bus.patch'
- '0010-Don-t-try-to-use-debug-version-of-D-Bus-library.patch'
- '0011-Fix-linking-against-static-freetype2.patch'
- '0012-Fix-linking-against-static-harfbuzz.patch'
- '0013-Fix-linking-against-static-pcre.patch'
- '0014-Fix-linking-against-shared-static-MariaDB.patch'
- '0015-Fix-linking-against-shared-static-PostgreSQL.patch'
- '0016-Rename-qtmain-to-qt5main.patch'
- '0017-Build-dynamic-host-libraries.patch'
- '0018-Enable-rpath-for-build-tools.patch'
- '0019-Use-system-zlib-for-build-tools.patch'
- '0020-Use-.dll.a-as-import-lib-extension.patch'
- '0021-Merge-shared-and-static-library-trees.patch'
- '0022-Pull-dependencies-of-static-libraries-in-CMake-modul.patch'
- '0023-Allow-usage-of-static-version-with-CMake.patch'
- '0024-Adjust-linker-flags-for-static-build-with-cmake-ming.patch'
- '0025-Use-correct-pkg-config-static-flag.patch'
- '0026-Fix-macro-invoking-moc-rcc-and-uic.patch'
- '0027-Ignore-errors-about-missing-feature-static.patch'
- '0028-Enable-and-fix-use-of-iconv.patch'
- '0029-Ignore-failing-pkg-config-test.patch'
- '0030-Prevent-qmake-from-messing-static-lib-dependencies.patch'
- '0031-Hardcode-linker-flags-for-platform-plugins.patch'
- '0032-Fix-linking-against-static-plugins-with-qmake.patch'
- '0033-Disable-hardware-randomizer-for-32-bit.patch'
- '0034-Prevent-static-build-to-prefer-dynamic-libraries.patch')
-sha256sums=('533078ce02678988576e224cb3844979907950cf83e0fda3364bc1d5701c9049'
- '4e1dbb878b77dbba96a9564ecbded6dbd74482b52e1cf4becaa1ce741c8cf489'
- 'f54815ff2fede9dbdc0ade572305ff684940714ca65e76d25f5b15cd0cb0a3da'
- 'c60e6cef5d0c95b6d034ade75fde3cf150e1570f5ca62d6b32d942abcb937f86'
- '0a82cde28edae5abb8d624cea407db515c1d52e8963f07aa8430c1d1f810e54a'
- '39059ed786851c1cdf416c4d0a9a5b042edda83bddd03b5bfcbcae1eaf8f7694'
- '4ef83cf4d211c446a5715cfa422f130492ae18bfb5cb42db9ff6516ed7fb29f1'
- '48ee96ffc01d5ab7c648f4aae6cee286992e4eb406e48718058092206f8ad2eb'
- '58f27f2359b3571aac44a3770a705692eed9e6fd24b6e6bf730e7aad5ee4a030'
- 'cf6154d83655efbf30281c4f83d29feb252fd104849f8e2ad495da688e581314'
- 'edf080092f4d158d2e42cedd50f80b3b5715ae47f740b16fa43132f1dc68cf9d'
- '1c3c46c26809e59e91732d2ff082a445dac4986294f400277272c2337d8c21f3'
- '3ee7b4f4ed6ea86794a5d119c7000033d0f61208150e37f35428e52611f7ae3f'
- '1d18e225c4bda89fe024a47834a8b79d9c8e4d1ba884d7dc6b07a93bf0307a85'
- '2affe7ac03016cfd536f63d61c0f5bd42932fc3823b7f2dbabca9c2db5a53ae6'
- 'd0a2e33d20c4d6063f7546fbc84d2f6a5a96955f998ba7af4320bc005fa2a722'
- '9941e9c883496bb3409a12ef3f73b6f3d76e106061381deb74380eafb1ac472f'
- 'f336402daf227aa529080ab31612a205c936438ecbfab3627252164d8903c1b1'
- '8cf716c22bf0fface6e3c015cd4d621425e3b20771b15ab03eeeeb59db248756'
- '95f9847a1fe05ad78ae4a682208894d995becc0ca4f3463d39781e8a52543017'
- '132fc790cfa528063fe95c3bc104826cb82105cd24e05ed77593115212987dc3'
- '8ace42d2ec1b7a05a6bacf93f899775906c407f349efbbd2533b942fb474f200'
- '8849864de4abf2dd70ffe2fe70aabb608c296eccdc41e6f4061645bd39f63c50'
- '60ca9adfe6ae46d6dc7b4874c3202b46bc57f6649a45fb5301e4e4b63e70aa5e'
- '47f83f04256afe1bd8701c31673e00e445b65840b5fe2bd132a98c8f292aa9c4'
- '305b30fad80fba756bd3ad6c34c95030fc3927d52a3dc9b90d2705b390831734'
- '91f37e9098e78881c1953c85e592e108be27dae08a83278f4a9885cb296a6871'
- '9ca5f2175d8679b7312d8cb718ddc648e161a6aae631b5d4c9e528594a020d1a'
- '3a5619542cb549ba7cc2bf1f9b77d524e5f9aa78d1e8dea6cd75c4f09b6aabc9'
- 'e30cf84af1ff7764cb0e0644a7bfbde920f463af9c24aab53abef9cf3410ceb3'
- 'fdd36ed82c5a8df7a0157b4ce9a3be16ec4c2b98cdf071a2be662603045da652'
- '55b42d68ca7981ef777a7f081f840b1b80ada8c0dc9508092ec9fba151a88dfd'
- '06f98f6ce25da7010e7398111ee7b79f380b79a7ab125eba3ef6d051af92cf8a'
- '5a097dc80dc07aa755e77c50a469c3c08bf5b562ad9b116dbbf891a072e7bdc2'
- '66047e08db2282d69563b3081b847fa7c041c3c387ab00ca72ff481b91124925')
+ '0003-Fix-too-many-sections-assemler-error-in-OpenGL-facto.patch'
+ '0004-Make-sure-.pc-files-are-installed-correctly.patch'
+ '0005-Don-t-add-resource-files-to-LIBS-parameter.patch'
+ '0006-Prevent-debug-library-names-in-pkg-config-files.patch'
+ '0007-Fix-linking-against-shared-static-libpng.patch'
+ '0008-Fix-linking-against-static-D-Bus.patch'
+ '0009-Don-t-try-to-use-debug-version-of-D-Bus-library.patch'
+ '0010-Fix-linking-against-static-freetype2.patch'
+ '0011-Fix-linking-against-static-harfbuzz.patch'
+ '0012-Fix-linking-against-static-pcre.patch'
+ '0013-Fix-linking-against-shared-static-MariaDB.patch'
+ '0014-Fix-linking-against-shared-static-PostgreSQL.patch'
+ '0015-Rename-qtmain-to-qt5main.patch'
+ '0016-Enable-rpath-for-build-tools.patch'
+ '0017-Use-system-zlib-for-build-tools.patch'
+ '0018-Merge-shared-and-static-library-trees.patch'
+ '0019-Use-.dll.a-as-import-lib-extension.patch'
+ '0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch'
+ '0021-Allow-usage-of-static-version-with-CMake.patch'
+ '0022-Adjust-linker-flags-for-static-build-with-cmake-ming.patch'
+ '0023-Use-correct-pkg-config-static-flag.patch'
+ '0024-Fix-macro-invoking-moc-rcc-and-uic.patch'
+ '0025-Ignore-errors-about-missing-feature-static.patch'
+ '0026-Enable-and-fix-use-of-iconv.patch'
+ '0027-Ignore-failing-pkg-config-test.patch'
+ '0028-Prevent-qmake-from-messing-static-lib-dependencies.patch'
+ '0029-Hardcode-linker-flags-for-platform-plugins.patch'
+ '0030-Fix-linking-against-static-plugins-with-qmake.patch'
+ '0031-Prevent-Cannot-find-feature-windows_vulkan_sdk.patch'
+ '0032-Fix-crashes-in-rasterization-code-using-setjmp.patch')
+sha256sums=('06e49a14145574834d4d04f73e6baf662ee5e72e78973e1d7d0fe614472a80a4'
+ '11c2b54df2b5ea031c2103366d0b27d0786c3420b29cca391cc0015fd35264d7'
+ '2b00e98c8c8acb1a453191be77a2f7a9188e030480864e58ac39b517bb63ffb5'
+ '5131dff4db6f63e36ea364ce59b2fdb047fbb6d55e6543316054f6ebcd76711b'
+ '3147a21ccad3026a06d8b622db96949d51f32b6a1d25c8aae5fe5a95c3e95625'
+ '4bd74cc1d78da412faac71b5357fd86fea3f1781d0b554f8f7fd3684c833e8ce'
+ 'e566e5cdd5bc077c35054be1465148acd5ee209e609690c670b78df88cc9295b'
+ '7fe1dc6c1251c16c4236924cb5a03ac55d1dca051bd9d99fbf7b35f91454fda3'
+ 'c054851c46036710ff6f025a48d4b5b2d6e5d5d54c74b73c2cb81b00bdfa029a'
+ 'a2702d6ca3f696ca3c77b00df7bb512f5f3430fce109048c62c97d294758efd8'
+ '395339c3dde4115283db948899980e536a355422190bc90850efdc3438c527d8'
+ 'c386790a879e68b9d00bfe9f14afa67d8a374de57bdea164a5252499ec34cbcb'
+ '576177950e99f62d05bee487dd5ae1b731fe4acf438553c74e7c48631dd8789b'
+ '02bc0ce27d7835829d4e84580fb0a0b864b36b14331a166dba88f1942a6414a3'
+ '736de6cd28c8efb1729f926c1fa42c963c7f1d3a9e4b56b098906b570473320f'
+ '294f3ab13a546a1bfeae472cf7342e2bce6c058a6867d19038ba1c194fb33b8d'
+ '8f202adf905ebce78dd2942d17c0d935f0de7014ffa75840310edc0bd790ff03'
+ '129b4667c5e3cfe68040cbae2fce487e2d016bcbe2380a5ba410b225279f71b9'
+ 'fbd8cd4680e10074f90bf79d9d08ad787b483cf7c21250d1db1c8a5c829a1d83'
+ '05a29084b9bc3324beefb9ae6d00ea68c3b3c51a0b4595c024300949c906d7fd'
+ '7843f5be44b9b367cb81c143c6d670e6a5be40510848c09a1448d921c3437639'
+ '7002db8f819bf34cafda04dc4d288fef58aec9e409230dc68fcb542cb48f09bb'
+ '57607c662e6d68f2ca856617c8d7cfaa05ba8332ea70b67ab628a8f0cf2ca032'
+ '5910c4567348101d0a87197b2e52e59673467247ca4ffc89cba5701d98373435'
+ '0181986547b7c70bf2bc8de31198240f99a92e4cfdb1db81c7b99b849c416c1f'
+ '9e692f956dffa5c936a2911d8418746b19197962111b4f0f45b33972ed3890f2'
+ '1d5e09034c9c903653d10c3983e4dcb710ebe8f08694e5e55199a3e4acb8f629'
+ '5379cea6fd54a16e7f67b617bf3582c08f8934ae8d699e85ad21f20dcf192424'
+ '82d1db9d4536350fe2549c400487018a8477a15da83a568240a013a6d82dfe92'
+ '01413344603a8e99f7b0280e7f297de4ea415e0c5011b1dac116eaf25082220b'
+ '4f88801a586c35515fd982f8e465fb4546ef38765c6a2abe1e8ca69e3700d799'
+ 'b4dad74bbe2731aaa8711408fe509344e7e6049def897389f7e2a86423f3377e'
+ '17f251d456713c920c6581659c54b9c372e1a329081b2ed9d9826e9e0ddd317a')
_architectures='i686-w64-mingw32 x86_64-w64-mingw32'
-isStatic && depends+=(${pkgname%-static})
-if isANGLE; then
- if isDynamic; then
- makedepends+=('mingw-w64-angleproject')
- optdepends+=('mingw-w64-angleproject: use ANGLE instead of native OpenGL')
- else
- depends+=('mingw-w64-angleproject')
- fi
-fi
-if ! isDefault; then
- if isStatic; then
- provides+=('mingw-w64-qt5-base-static')
- conflicts+=('mingw-w64-qt5-base-static' 'mingw-w64-qt5-base-angle-static' 'mingw-w64-qt5-base-noopengl-static'
- 'mingw-w64-qt5-base-dynamic-static' 'mingw-w64-qt5-base-openql-static')
- else
- provides+=('mingw-w64-qt5-base')
- conflicts+=('mingw-w64-qt5-base' 'mingw-w64-qt5-base-angle' 'mingw-w64-qt5-base-noopengl'
- 'mingw-w64-qt5-base-dynamic' 'mingw-w64-qt5-base-openql')
- fi
-fi
+pkgver() {
+ cd $_pkgfqn
+ echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$_commit`
+}
prepare() {
cd "${srcdir}/${_pkgfqn}"
@@ -154,22 +119,17 @@ prepare() {
patch -p1 -i "$patch"
done
- # make sure the Qt 5 build system uses our external ANGLE library
- rm -rf src/3rdparty/angle include/QtANGLE/{EGL,GLES2,GLES3,KHR}
+ # clear buildflags ('!buildflags' only effects build() but not prepare())
+ unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH
- # as well as our external PCRE library and zlib
- rm -rf src/3rdparty/{pcre,zlib}
-
- # build qmake using mingw-w64 {C,LD}FLAGS
- # This also sets default {C,CXX,LD}FLAGS for projects built using qmake
- CPPFLAGS="${MINGW_CPPFLAGS:--D_FORTIFY_SOURCE=2}"
- CFLAGS="${MINGW_CFLAGS:-$CPPFLAGS -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4}"
- CXXFLAGS="${MINGW_CXXFLAGS:-$CPPFLAGS -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4}"
- LDFLAGS="${MINGW_LDFLAGS:--Wl,-O1,--sort-common,--as-needed}"
+ # build qmake using mingw-w64 {C,CXX,LD}FLAGS
+ # * This also sets default {C,CXX,LD}FLAGS for projects built using qmake.
+ source mingw-env
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*=\).*$|\1 ${CFLAGS}|" \
-e "s|^\(QMAKE_CXXFLAGS_RELEASE.*=\).*$|\1 ${CXXFLAGS}|" \
-e "s|^\(QMAKE_LFLAGS_RELEASE.*=\).*$|\1 ${LDFLAGS}|" \
- mkspecs/common/gcc-base.conf
+ mkspecs/common/gcc-base.conf \
+ mkspecs/common/g++-win32.conf
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*=\).*$|\1|" \
mkspecs/common/g++-unix.conf
}
@@ -177,15 +137,6 @@ prepare() {
build() {
cd "${srcdir}/${_pkgfqn}"
- # do not set any flags here, flags are configured via mkspec
- # (Setting flags here is not appropriate as it does not allow to
- # distinguish between flags for native compiler and cross compiler.
- # See prepare() function.)
- unset CFLAGS
- unset CXXFLAGS
- unset LDFLAGS
- unset PKG_CONFIG_PATH
-
for _arch in ${_architectures}; do
# define general configure arguments
local qt_configure_args="\
@@ -245,51 +196,30 @@ build() {
|| qt_configure_args+=' -release'
# configure usage of ANGLE/OpenGL
- if isOpenGL; then
- msg2 'Using native OpenGL backend'
- qt_configure_args+=' -opengl desktop'
- elif isNoOpenGL; then
- msg2 'Building without OpenGL support'
- qt_configure_args+=' -no-opengl'
- elif isANGLE; then
- if isDynamic; then
- msg2 'Using dynamic OpenGL backend'
- qt_configure_args+=' -opengl dynamic'
- else
- msg2 'Using ANGLE as OpenGL backend'
- qt_configure_args+=' -angle'
- fi
- # enable declarations of GLES functions
- qt_configure_args+=' -DGL_GLEXT_PROTOTYPES'
- fi
+ msg2 'Using native OpenGL backend'
+ qt_configure_args+=' -opengl desktop'
# add include directory of MariaDB
qt_configure_args+=" -I/usr/${_arch}/include/mariadb"
+ # add include directory for Vulkan
+ export VULKAN_SDK=/usr/${_arch}
+
msg2 'Configure and build qmake'
mkdir -p ../build-${_arch} && pushd ../build-${_arch}
- if isStatic; then
- qt_configure_args+=' -static'
+ qt_configure_args+=' -shared'
- # configure static version to use linked OpenSSL
- qt_configure_args+=' -openssl-linked'
- export OPENSSL_LIBS="/usr/${_arch}/lib/libssl.a /usr/${_arch}/lib/libcrypto.a -lws2_32 -lgdi32 -lcrypt32 -ldnsapi -liphlpapi"
+ # configure shared version to load OpenSSL dynamically
+ qt_configure_args+=' -openssl-runtime'
- else
- qt_configure_args+=' -shared'
+ qt_configure_args+=' -device-option CROSS_COMPILE_CUSTOM_CONFIG=actually_a_shared_build'
- # configure shared version to load OpenSSL dynamically
- qt_configure_args+=' -openssl-runtime'
-
- qt_configure_args+=' -device-option CROSS_COMPILE_CUSTOM_CONFIG=actually_a_shared_build'
-
- # override LD_LIBRARY_PATH so libraries for native build tools like libQt5Bootstrap.so are found
- export LD_LIBRARY_PATH="$PWD/lib"
- export LDFLAGS="-L$PWD/lib"
- fi
+ # override LD_LIBRARY_PATH so libraries for native build tools like libQt5Bootstrap.so are found
+ #export LD_LIBRARY_PATH="$PWD/lib"
+ #export LDFLAGS="-L$PWD/lib"
msg2 'Build qmake and configure' && ../${_pkgfqn}/configure $qt_configure_args
- msg2 'Build Qt libraries' && make
+ msg2 'Build Qt libraries' && make -j$(nproc)
popd
done
@@ -298,7 +228,7 @@ build() {
package() {
for _arch in ${_architectures}; do
cd "$srcdir/${_pkgfqn}"
- make install -C ../build-${_arch} INSTALL_ROOT="${pkgdir}"
+ make install -j$(nproc) -C ../build-${_arch} INSTALL_ROOT="${pkgdir}"
# use prl files from build directory since installed prl files seem to have incorrect QMAKE_PRL_LIBS_FOR_CMAKE
pushd "$srcdir/build-${_arch}/lib"
@@ -308,67 +238,21 @@ package() {
find -iname '*.prl' -exec cp --target-directory "${pkgdir}/usr/${_arch}/lib/qt/plugins" --parents {} +
popd
- if isStatic; then
- # The static release contains only the static libs itself but relies on the
- # shared release for Qt5Bootstrap library and tools (qmake, uic, ...).
-
- # drop Qt5Bootstrap and libraries which are only provided as static lib
- # and hence already present in shared build (such as Qt5OpenGLExtensions)
- rm -f \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}qt5main* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5AccessibilitySupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5DeviceDiscoverySupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5EdidSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5EventDispatcherSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5FbSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5FontDatabaseSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5PlatformCompositorSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5ThemeSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5OpenGLExtensions* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5PlatformSupport* \
- "${pkgdir}/usr/${_arch}/lib/"{lib,}Qt5WindowsUIAutomationSupport* \
- "${pkgdir}/usr/${_arch}/lib/"libQt5Bootstrap* \
-
- # ensure config files don't conflict with shared version
- pushd "${pkgdir}/usr/${_arch}/lib/cmake"
- for cmake_dir in $(find . ! -path . -type d ! -name 'Static*'); do
- mkdir -p "./Static${cmake_dir:2}";
- mv "${cmake_dir}/"* "./Static${cmake_dir:2}";
- rm -r "${cmake_dir}"
- done
- rm -r "./StaticQt5OpenGLExtensions"
- popd
- rm "${pkgdir}/usr/${_arch}/lib/pkgconfig/StaticQt5OpenGLExtensions.pc"
-
- # create links to static plugins in lib directory
- pushd "${pkgdir}/usr/${_arch}/lib/" && ln -s "./qt/plugins/"*/*.a . && popd
-
- # keep a couple pri files not found in base
- mv "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules/qt_plugin_"*.pri "${pkgdir}/usr/${_arch}"
-
- # fix bad library order for static CMake builds caused by Qt5Gui.static.prl
- sed -i -e "s|-lfreetype;|-lfreetype;-lharfbuzz;-lfreetype;-lbz2;|" \
- -e "s| -lz;| |" \
- "${pkgdir}/usr/${_arch}/lib/Qt5Gui.static.prl"
+ # remove DLLs from libdir (DLLs are installed in both bindir and libdir, one copy is sufficient)
+ find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \;
- # delete duplicate files that are in the base package
- rm -fR "${pkgdir}/usr/${_arch}/"{include,share}
- rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs}
+ # install missing libQt5BootstrapDBus.a manually
+ cp --target-directory "${pkgdir}/usr/${_arch}/lib" "$srcdir/build-${_arch}/lib/libQt5BootstrapDBus.a"
- # move pri files back
- mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules"
- mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules"
+ # create symlinks for tools
+ mkdir -p "${pkgdir}/usr/bin"
+ for tool in qmake moc rcc uic qdbuscpp2xml qdbusxml2cpp qdoc syncqt.pl; do
+ ln -s "../${_arch}/lib/qt/bin/${tool}" "${pkgdir}/usr/bin/${_arch}-${tool}-qt5"
+ done
- else # shared version
- # remove DLLs from libdir (DLLs are installed in both bindir and libdir, one copy is sufficient)
- find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \;
-
- # create symlinks for tools
- mkdir -p "${pkgdir}/usr/bin"
- for tool in qmake moc rcc uic qdbuscpp2xml qdbusxml2cpp qdoc syncqt.pl; do
- ln -s "../${_arch}/lib/qt/bin/${tool}" "${pkgdir}/usr/bin/${_arch}-${tool}-qt5"
- done
- fi
+ # create qt.conf containing plugin path, see https://github.com/Martchus/PKGBUILDs/issues/109
+ echo "[Paths]
+Plugins = /usr/${_arch}/lib/qt/plugins" > "${pkgdir}/usr/${_arch}/bin/qt.conf"
# 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' {} \;
@@ -383,19 +267,21 @@ package() {
done
fi
+ # remove '.static.prl' files
+ find "${pkgdir}/usr/${_arch}" -name '.static.prl' -delete
+
# 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%/*}/build-${_arch}/lib:/usr/${_arch}/lib:g" {} \;
# strip binaries, remove unuseful files
- if ! isStatic; then
- strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*[!.pl]
- strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/libQt5Bootstrap"{,DBus}.so.${pkgver}
- fi
- if isStatic || [[ $NO_EXECUTABLES ]]; then
+ strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"*[!.pl]
+ strip --strip-debug "${pkgdir}/usr/${_arch}/lib/libQt5Bootstrap"*.a
+ if [[ $NO_EXECUTABLES ]]; then
find "${pkgdir}/usr/${_arch}" -name '*.exe' -delete
else
find "${pkgdir}/usr/${_arch}" -name '*.exe' -exec ${_arch}-strip --strip-all {} \;
fi
+
find "${pkgdir}/usr/${_arch}" \( -name '*.bat' -o -name '*.def' -o -name '*.exp' \) -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 {} \;