blob: 07b39bc73b4d407347a97b2ec42957f99db58858 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# Maintainer: Martchus <martchus@gmx.net>
# Contributor: ant32 <antreimer@gmail.com>
# Contributor: Filip Brcic <brcha@gna.org>
# Contributor: ohmyarch
# 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/qtdeclarative
_qt_module=qtdeclarative
pkgname=mingw-w64-qt5-declarative-static
pkgver=5.15.16
pkgrel=1
arch=('any')
pkgdesc='Classes for QML and JavaScript languages (mingw-w64)'
depends=('mingw-w64-qt5-base-static')
makedepends=('mingw-w64-gcc' 'mingw-w64-vulkan-headers' 'mingw-w64-pkg-config' 'python')
license=('GPL3' 'LGPL3' 'FDL' 'custom')
_commit=e2b38659cb79104f157e1d0099c01e545d04d0db
_basever=${pkgver%%+*}
pkgver+=+kde+r22
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-Ensure-static-plugins-are-exported.patch'
'0002-Prevent-exporting-QML-parser-symbols-on-static-build.patch'
'0003-Disable-d3d12-requiring-fxc.exe.patch')
sha256sums=('50f25c205cb82ff68946d2306cae53a0e0898df42cb204bb9daa365896e6e186'
'f29804d630e199f6ced91462a2a732f3210e73c3563f409f191d7a6731c278f5'
'acefb33b8d5d3f0adf7dd4c4698447f654b44d453ef794fb1179c887f06beb11'
'dcb061ddeb762d253cf851fa43f77ab9dd610dc109d4e342b56ba7f5b20e4f3d')
_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+=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
# strip native static libraries
find "${pkgdir}/usr/${_arch}" -name 'libQt5QmlDevTools.a' -exec strip -g {} \;
# 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
}
|