-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmsys2_qt6-static.sh
executable file
·56 lines (51 loc) · 1.71 KB
/
msys2_qt6-static.sh
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
#!/bin/bash -e
PROJECT="ImageViewer"
BUILDDIR="build_msys2_qt6-static_${MSYSTEM,,?}"
SUFFIX="_qt6-static_${MSYSTEM,,?}"
APP_PATH="src/${PROJECT}"
CMD_QMAKE="${MSYSTEM_PREFIX}/qt6-static/bin/qmake.exe"
MSYSTEM_PKG_PREFIX="mingw-w64"
EXTRA_LIBS=""
if [ "${MSYSTEM}" == "UCRT64" ] ; then
MSYSTEM_PKG_PREFIX="${MSYSTEM_PKG_PREFIX}-ucrt-x86_64"
EXTRA_LIBS="-Wl,--no-as-needed -Wl,--start-group"
elif [ "${MSYSTEM}" == "MINGW64" ] ; then
MSYSTEM_PKG_PREFIX="${MSYSTEM_PKG_PREFIX}-x86_64"
EXTRA_LIBS="-Wl,--no-as-needed -Wl,--start-group"
elif [ "${MSYSTEM}" == "CLANG64" ] ; then
MSYSTEM_PKG_PREFIX="${MSYSTEM_PKG_PREFIX}-clang-x86_64"
elif [ "${MSYSTEM}" == "CLANGARM64" ] ; then
MSYSTEM_PKG_PREFIX="${MSYSTEM_PKG_PREFIX}-clang-aarch64"
else
echo "Unknown or broken MSYSTEM: ${MSYSTEM}"
exit 1
fi
pacman -S --needed --noconfirm \
base-devel \
zip \
${MSYSTEM_PKG_PREFIX}-toolchain \
${MSYSTEM_PKG_PREFIX}-qt6-static
cd "$(dirname $0)"/..
SOURCE_PATH="${PWD}"
DIST_PREFIX="${PROJECT}${SUFFIX}"
function stripAll() {
find "${DIST_PREFIX}" \( -name '*.exe' -o -name '*.dll' \) | while IFS= read -r item ; do
strip --strip-all "${item}" || strip "${item}" || true
done
}
rm -rf "${BUILDDIR}"
mkdir -p "${BUILDDIR}"
cd "${BUILDDIR}"
${CMD_QMAKE} -r CONFIG+="release" \
CONFIG+="hide_symbols" \
QTPLUGIN.imageformats="qgif qicns qico qsvg qtga qtiff qwbmp" \
QTPLUGIN.platforms="qwindows" \
CONFIG+="enable_update_checking" \
LIBS+="${EXTRA_LIBS}" \
"${SOURCE_PATH}/${PROJECT}.pro"
make -j$(getconf _NPROCESSORS_ONLN)
mkdir "${DIST_PREFIX}"
cp -a "${APP_PATH}/release/${PROJECT}.exe" "${DIST_PREFIX}/"
stripAll
zip -9r "../${DIST_PREFIX}.zip" "${DIST_PREFIX}"
cd ..