Mercurial > hg > syntilista
view build-win32.sh @ 261:f6a99b984b8e
Clean up build script a bit.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 24 Dec 2019 05:38:12 +0200 |
parents | f65e0de45c2b |
children | 8c6fb6ee6f9e |
line wrap: on
line source
#!/bin/sh INSTALL_USB="/mnt/sdb1" INSTALL_WINE="$HOME/.wine/drive_c/Syntilista/" TMPFILE="unix2dos.tmp" BUILDPATH="win32/" QT5_PREFIX="/misc/packages/qt5-src" QT5_BASE="${QT5_PREFIX}/qtbase" MINGWPATH="$(dirname $(i686-w64-mingw32-g++ -print-prog-name=cc1))" MINGWLIBS="/usr/i686-w64-mingw32/lib/" fatal() { echo "ERROR: $1" exit 1 } do_cp() { cp -f "$1" "$2" || fatal "Could not copy file '$1' to '$2'." } do_mkdir() { mkdir -p "$1" || fatal "Could not create directory '$1'." } do_cpinstall() { # $1 src base path # $2 dst base path # $3 common sub path # $4 filename do_mkdir "$2/$3" do_cp "$1/$3/$4" "$2/$3/$4" } do_install() { TARGET="$1" if test -d "$TARGET"; then rm -fr "$TARGET" elif test -e "$TARGET"; then fatal "Target '$TARGET' exists but is not a directory!" fi mkdir -p "$TARGET" || fatal "Could not create target directory '$TARGET'." echo "Installing to '${TARGET}' ..." do_cpinstall "${QT5_BASE}/plugins/" "$TARGET" "platforms" "qwindows.dll" do_cpinstall "${QT5_BASE}/plugins/" "$TARGET" "sqldrivers" "qsqlite.dll" do_cpinstall "${QT5_BASE}/plugins/" "$TARGET" "printsupport" "windowsprintersupport.dll" for i in Core Gui Sql Widgets PrintSupport Network; do do_cp "${QT5_BASE}/lib/Qt5${i}.dll" "$TARGET" done for i in libstdc++-6 libgcc_s_sjlj-1; do do_cp "${MINGWPATH}/${i}.dll" "$TARGET" strip "${TARGET}/${i}.dll" done for i in zlib1.dll; do do_cp "${MINGWLIBS}/${i}" "$TARGET" done do_cp "$BUILDPATH/Syntilista.exe" "$TARGET" unix2dos -n "COPYING.html" "$TMPFILE" || fatal "Could not unix2dos." do_cp "$TMPFILE" "$TARGET/COPYING.txt" rm -f "$TMPFILE" return 0 } ### Create cross-building makefiles make -f Makefile.cross-mingw QT5_PREFIX="$QT5_PREFIX" BINPATH="$BUILDPATH" ### Install to targets if test -d "$INSTALL_USB" && mount|grep -q "$INSTALL_USB"; then do_install "$INSTALL_USB/Syntilista" else echo "INFO: '$INSTALL_USB' is not mounted. Not installing." fi do_install "$INSTALL_WINE"