Automatically generate the DLL dependencies of the MSYS2 UQM build for installation and uninstallation

This commit is contained in:
Michael Martin
2020-06-07 20:49:46 -07:00
parent 422b10ac4f
commit d795e55fc4
3 changed files with 41 additions and 14 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
# Autogenerated by proppkgs.sh # Autogenerated by procpkgs.sh
# #
!define PKG_CONTENT_FILE "uqm-0.8.0-content.uqm" !define PKG_CONTENT_FILE "uqm-0.8.0-content.uqm"
!define PKG_CONTENT_MD5SUM "6cbc9d51fa63e07c0f4d1d061136d816" !define PKG_CONTENT_MD5SUM "6cbc9d51fa63e07c0f4d1d061136d816"
+36 -1
View File
@@ -9,8 +9,14 @@
# #
# The awk, md5sum, and wc utilities must be installed, but MSYS2 # The awk, md5sum, and wc utilities must be installed, but MSYS2
# should generally already have those in your path. # should generally already have those in your path.
#
# The ntldd utility must also be installed and generally will NOT be
# installed by default. "pacboy sync ntldd" in a MinGW environment should
# install the correct version.
NSH_FILE="packages.nsh" NSH_FILE="packages.nsh"
INST_FILE="dlls.nsi"
UNINST_FILE="un$INST_FILE"
PKG_VERSION="0.8.0" PKG_VERSION="0.8.0"
CONTENT_PKG="uqm-$PKG_VERSION-content.uqm" CONTENT_PKG="uqm-$PKG_VERSION-content.uqm"
@@ -20,6 +26,8 @@ REMIX1_PKG="uqm-remix-disc1.uqm"
REMIX2_PKG="uqm-remix-disc2.uqm" REMIX2_PKG="uqm-remix-disc2.uqm"
REMIX3_PKG="uqm-remix-disc3.uqm" REMIX3_PKG="uqm-remix-disc3.uqm"
REMIX4_PKG="uqm-remix-disc4.uqm" REMIX4_PKG="uqm-remix-disc4.uqm"
UQM_EXE="uqm.exe"
KEYJAM_EXE="keyjam.exe"
check_pkg() { check_pkg() {
if [ ! -f "$1" ]; then if [ ! -f "$1" ]; then
@@ -47,8 +55,9 @@ check_pkg $REMIX1_PKG
check_pkg $REMIX2_PKG check_pkg $REMIX2_PKG
check_pkg $REMIX3_PKG check_pkg $REMIX3_PKG
check_pkg $REMIX4_PKG check_pkg $REMIX4_PKG
check_pkg $UQM_EXE
echo "# Autogenerated by proppkgs.sh" > $NSH_FILE echo "# Autogenerated by procpkgs.sh" > $NSH_FILE
echo "#" >> $NSH_FILE echo "#" >> $NSH_FILE
process_pkg $CONTENT_PKG PKG_CONTENT process_pkg $CONTENT_PKG PKG_CONTENT
process_pkg $MUSIC_PKG PKG_3DOMUSIC process_pkg $MUSIC_PKG PKG_3DOMUSIC
@@ -59,3 +68,29 @@ process_pkg $REMIX3_PKG PKG_REMIX3
process_pkg $REMIX4_PKG PKG_REMIX4 process_pkg $REMIX4_PKG PKG_REMIX4
echo All packages processed. ${NSH_FILE} generated. echo All packages processed. ${NSH_FILE} generated.
echo "# Autogenerated by procpkgs.sh" > $INST_FILE
echo "#" >> $INST_FILE
echo "# Autogenerated by procpkgs.sh" > $UNINST_FILE
echo "#" >> $UNINST_FILE
echo " File \"$UQM_EXE\"" >> $INST_FILE
echo " File \"$KEYJAM_EXE\"" >> $INST_FILE
echo " Delete \"\$INSTDIR\\$UQM_EXE\"" >> $UNINST_FILE
echo " Delete \"\$INSTDIR\\$KEYJAM_EXE\"" >> $UNINST_FILE
echo "Processing $UQM_EXE..."
DLLS=$(ntldd -R "$UQM_EXE" | awk '/\\bin\\/{print $3;}')
echo "Processing $KEYJAM_EXE..."
DLLS2=$(ntldd -R "$KEYJAM_EXE" | awk '/\\bin\\/{print $3;}')
DLLS="$DLLS $DLLS2"
rm -f "$INST_FILE.tmp" "$UNINST_FILE.tmp"
touch "$INST_FILE.tmp" "$UNINST_FILE.tmp"
for dll in $DLLS; do
echo " File \"$dll\"" >> $INST_FILE.tmp
echo " Delete \"\$INSTDIR\\$(basename $dll)\"" >> $UNINST_FILE.tmp
done
sort -u < "$INST_FILE.tmp" >> $INST_FILE
sort -u < "$UNINST_FILE.tmp" >> $UNINST_FILE
rm -f "$INST_FILE.tmp" "$UNINST_FILE.tmp"
echo "Executable processed. $INST_FILE and $UNINST_FILE generated."
+4 -12
View File
@@ -238,22 +238,12 @@ SectionGroup "!UQM" SECGRP01
SetOverwrite try SetOverwrite try
File "AUTHORS.txt" File "AUTHORS.txt"
File "COPYING.txt" File "COPYING.txt"
File "libpng12-0.dll"
File "Manual.txt" File "Manual.txt"
File "ogg.dll"
File "OpenAL32.dll"
File "wrap_oal.dll"
File "README.txt" File "README.txt"
File "README-SDL.txt" File "README-SDL.txt"
File "SDL.dll"
File "SDL_image.dll"
File "SDL_gfx.dll"
File "uqm.exe"
File "keyjam.exe"
File "vorbis.dll"
File "vorbisfile.dll"
File "WhatsNew.txt" File "WhatsNew.txt"
File "zlib1.dll" !include "dlls.nsi"
SetOutPath $UQMUSERDATA SetOutPath $UQMUSERDATA
SetOverwrite try SetOverwrite try
File "uqm-pc.cfg" File "uqm-pc.cfg"
@@ -522,6 +512,8 @@ Section Uninstall
Delete "$INSTDIR\AUTHORS.txt" Delete "$INSTDIR\AUTHORS.txt"
Delete "$INSTDIR\stderr.txt" Delete "$INSTDIR\stderr.txt"
!include "undlls.nsi"
Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\Options Configuration.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Options Configuration.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\Key Configuration.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Key Configuration.lnk"