]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/rebrand-darkplaces-engine.sh
rebrand: also add TGA icons (possibly converted from png)
[xonotic/xonotic.git] / misc / tools / rebrand-darkplaces-engine.sh
index 3a987185de79589a387accec596eec8ae35c05fc..0e911bb37ecf750b2f0160e9d8c0faf854827bc4 100755 (executable)
@@ -10,11 +10,24 @@ userdirname=darkplaces
 icon_icns=Darkplaces.app/Contents/Resources/Darkplaces.icns
 icon_ico=darkplaces.ico
 icon_xpm=darkplaces.xpm
 icon_icns=Darkplaces.app/Contents/Resources/Darkplaces.icns
 icon_ico=darkplaces.ico
 icon_xpm=darkplaces.xpm
+icons_tga=
 
 
+if [ -z "$1" ] || [ x"$1" = x"--help" ]; then
+       echo "Usage: $0 brandfile binaries..."
+       exit
+fi
 . "$1"; shift
 
 . "$1"; shift
 
+d=`pwd`
+t=`mktemp -d -t darkplaces-rebrand.XXXXXX`
+
 flags="$flags -customgamename \"$name\" -customgamedirname1 \"$dirname1\" -customgamedirname2 \"$dirname2\" -customgamescreenshotname \"$screenshotname\" -customgameuserdirname \"$userdirname\""
 flags="$flags -customgamename \"$name\" -customgamedirname1 \"$dirname1\" -customgamedirname2 \"$dirname2\" -customgamescreenshotname \"$screenshotname\" -customgameuserdirname \"$userdirname\""
-echo "$flags" > darkplaces.opt
+echo "$flags" > "$t/darkplaces.opt"
+
+cd "$t"
+zip -9r darkplaces.zip darkplaces.opt
+rm -f darkplaces.opt
+cd "$d"
 
 for EXECUTABLE in "$@"; do
        uses_xpm=false
 
 for EXECUTABLE in "$@"; do
        uses_xpm=false
@@ -48,39 +61,58 @@ for EXECUTABLE in "$@"; do
        esac
 
        # add a selfpack
        esac
 
        # add a selfpack
-       rm -f darkplaces.zip
-       zip -9r darkplaces.zip darkplaces.opt
+       cp "$t/darkplaces.zip" "$t/darkplaces-this.zip"
 
        if $uses_xpm; then
 
        if $uses_xpm; then
-               cp "$icon_xpm" darkplaces-icon.xpm
-               zip -9r darkplaces.zip darkplaces-icon.xpm
-               rm -f darkplaces-icon.xpm
+               cp "$icon_xpm" "$t/darkplaces-icon.xpm"
+               cnt=
+               for i in $icons_tga; do
+                       convert "$i" "$t/darkplaces-icon$cnt.tga"
+                       if [ -z "$cnt" ]; then
+                               cnt=2
+                       else
+                               cnt=$(($cnt+1))
+                       fi
+               done
+               cd "$t"
+               zip -9r darkplaces-this.zip darkplaces-icon*
+               cd "$d"
        fi
 
        if $uses_ico; then
        fi
 
        if $uses_ico; then
-               e=$EXECUTABLE \
-               i=$icon_ico \
-               n=$name \
-               perl <<'EOF'
-               use strict;
-               use warnings;
-               use Win32::Exe;
-
-               my $n = $ENV{n};
-               my $i = $ENV{i};
-               my $e = $ENV{e};
-
-               my $exe = Win32::Exe->new($e)
-                       or die "Win32::Exe->new: $!";
-               $exe = $exe->create_resource_section()
-                       unless $exe->has_resource_section();
-               $exe->update(icon => $i);
-               $exe->update(info => ["InternalName=$e"]);
-               $exe->update(info => ["OriginalFilename=$e"]);
-               $exe->update(info => ["ProductName=$n"]);
-               $exe->write($e)
-                       or die "Win32::Exe->write: $!";
+               cp "$icon_ico" "$t/darkplaces-icon.ico"
+               cp "$EXECUTABLE" "$t/darkplaces.exe"
+               cat >"$t/darkplaces.rc" <<EOF
+#include <windows.h> // include for version info constants
+
+A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "darkplaces-icon.ico"
+
+1 VERSIONINFO
+FILEVERSION 1,0,0,0
+PRODUCTVERSION 1,0,0,0
+FILETYPE VFT_APP
+{
+  BLOCK "StringFileInfo"
+        {
+                BLOCK "040904E4"
+                {
+                        VALUE "CompanyName", "Forest Hale Digital Services"
+                        VALUE "FileVersion", "1.0"
+                        VALUE "FileDescription", "$name"
+                        VALUE "InternalName", "${EXECUTABLE##*/}"
+                        VALUE "LegalCopyright", "id Software, Forest Hale, and contributors"
+                        VALUE "LegalTrademarks", ""
+                        VALUE "OriginalFilename", "${EXECUTABLE##*/}"
+                        VALUE "ProductName", "$name"
+                        VALUE "ProductVersion", "1.0"
+                }
+        }
+}
 EOF
 EOF
+               cd "$t"
+               wine "c:/Program Files/ResEdit/ResEdit.exe" -convert darkplaces.rc darkplaces.exe
+               cd "$d"
+               mv "$t/darkplaces.exe" "$EXECUTABLE"
        fi
 
        if $uses_icns; then
        fi
 
        if $uses_icns; then
@@ -93,8 +125,9 @@ EOF
                                pkgdir=..
                                ;;
                esac
                                pkgdir=..
                                ;;
                esac
-               cp "$icon_icns" "$pkgdir/Resources/Darkplaces.icns"
-               cat <<EOF >"$pkgdir/Resources/English.lproj/InfoPlist.strings"
+               if [ -d "$pkgdir/Resources" ]; then
+                       cp "$icon_icns" "$pkgdir/Resources/Darkplaces.icns"
+                       cat <<EOF >"$pkgdir/Resources/English.lproj/InfoPlist.strings"
 /* Localized versions of Info.plist keys */
 
 CFBundleName = "$name";
 /* Localized versions of Info.plist keys */
 
 CFBundleName = "$name";
@@ -102,10 +135,10 @@ CFBundleShortVersionString = "$name";
 CFBundleGetInfoString = "Darkplaces by Forest 'LordHavoc' Hale";
 NSHumanReadableCopyright = "Copyright `date +%Y`";
 EOF
 CFBundleGetInfoString = "Darkplaces by Forest 'LordHavoc' Hale";
 NSHumanReadableCopyright = "Copyright `date +%Y`";
 EOF
+               fi
        fi
 
        fi
 
-       cat darkplaces.zip >> "$EXECUTABLE"
-       rm -f darkplaces.zip
+       cat "$t/darkplaces-this.zip" >> "$EXECUTABLE"
 done
 
 done
 
-rm -f darkplaces.opt
+rm -rf "$t"