Support of ico for Windows games. (Wine + ResourceHaker)

This commit is contained in:
Antonin Décimo
2014-05-28 23:52:25 +02:00
parent b6a8307a1e
commit 90cf996f1c
2 changed files with 16 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ It needs an Internet connection to download Love files, and relies on curl, zip
To set the default Love version to use, you can edit the very beginning of the script. To set the default Love version to use, you can edit the very beginning of the script.
If `lua` and a `conf.lua` file are found, it will automatically detect which version your project uses. If `lua` and a `conf.lua` file are found, it will automatically detect which version your project uses.
If a `ProjectName.icns` file is provided, the script will use it to set the game icon on MacOS. If a `ProjectName.icns` file is provided, the script will use it to set the game icon on MacOS.
If a `ProjectName.ico` file is provided, and that Wine and Resource Hacker are installed, the script will use them to set the game icon on Windows.
### OPTIONS ### OPTIONS
`-h` Print a short help `-h` Print a short help

View File

@@ -37,6 +37,7 @@ DESCRIPTION
To set the default Love version to use, you can edit the very beginning of the script. To set the default Love version to use, you can edit the very beginning of the script.
If lua and a conf.lua file are found, it will automatically detect which version your project uses. If lua and a conf.lua file are found, it will automatically detect which version your project uses.
If a ProjectName.icns file is provided, the script will use it to set the game icon on MacOS. If a ProjectName.icns file is provided, the script will use it to set the game icon on MacOS.
If a ProjectName.ico file is provided, and that Wine and Resource Hacker are installed, the script will use them to set the game icon on Windows.
OPTIONS OPTIONS
-h Print a short help -h Print a short help
@@ -226,6 +227,7 @@ PROJECT_NAME=$PROJECT_NAME
COMPANY_NAME=$COMPANY_NAME COMPANY_NAME=$COMPANY_NAME
RELEASE_DIR=$RELEASE_DIR RELEASE_DIR=$RELEASE_DIR
CACHE_DIR=$CACHE_DIR CACHE_DIR=$CACHE_DIR
PROJECT_ICO=$PROJECT_ICO
PROJECT_ICNS=$PROJECT_ICNS PROJECT_ICNS=$PROJECT_ICNS
EXCLUDE_FILES=$EXCLUDE_FILES EXCLUDE_FILES=$EXCLUDE_FILES
" "
@@ -286,9 +288,14 @@ MAIN_RELEASE_DIR=${RELEASE_DIR##/*/}
RELEASE_DIR=$RELEASE_DIR/$LOVE_VERSION RELEASE_DIR=$RELEASE_DIR/$LOVE_VERSION
CACHE_DIR=$CACHE_DIR/$LOVE_VERSION CACHE_DIR=$CACHE_DIR/$LOVE_VERSION
if [ -f "$PWD/$PROJECT_NAME.icns" ]; then if [ -f "$PWD/$PROJECT_NAME.icns" ]; then
PROJECT_ICNS=$PWD/$PROJECT_NAME.icns PROJECT_ICNS=$PWD/$PROJECT_NAME.icns
else else
PROJECT_ICNS= PROJECT_ICNS=
fi
if [ -f "$PWD/$PROJECT_NAME.ico" ]; then
PROJECT_ICO=$PWD/$PROJECT_NAME.ico
else
PROJECT_ICO=
fi fi
@@ -306,9 +313,9 @@ echo "Generating $PROJECT_NAME with Love $LOVE_VERSION..."
mkdir -p $RELEASE_DIR $CACHE_DIR mkdir -p $RELEASE_DIR $CACHE_DIR
rm -rf $RELEASE_DIR/$PROJECT_NAME.love 2> /dev/null rm -rf $RELEASE_DIR/$PROJECT_NAME.love 2> /dev/null
if [ -z "$PROJECT_FILES" ]; then if [ -z "$PROJECT_FILES" ]; then
zip -9 -r $RELEASE_DIR/$PROJECT_NAME.love -x $0 $MAIN_RELEASE_DIR/\* ${PROJECT_ICNS##/*/} $EXCLUDE_FILES @ * zip -9 -r $RELEASE_DIR/$PROJECT_NAME.love -x $0 $MAIN_RELEASE_DIR/\* ${PROJECT_ICNS##/*/} ${PROJECT_ICO##/*/} $EXCLUDE_FILES @ *
else else
zip -9 -r $RELEASE_DIR/$PROJECT_NAME.love -x $0 $MAIN_RELEASE_DIR/\* ${PROJECT_ICNS##/*/} $EXCLUDE_FILES @ $PROJECT_FILES zip -9 -r $RELEASE_DIR/$PROJECT_NAME.love -x $0 $MAIN_RELEASE_DIR/\* ${PROJECT_ICNS##/*/} ${PROJECT_ICO##/*/} $EXCLUDE_FILES @ $PROJECT_FILES
fi fi
cd $RELEASE_DIR cd $RELEASE_DIR
@@ -324,6 +331,7 @@ if [ "$RELEASE_WIN_32" = true ]; then
fi fi
unzip -qq love-$LOVE_VERSION-win32.zip unzip -qq love-$LOVE_VERSION-win32.zip
rm -rf $PROJECT_NAME-win32.zip 2> /dev/null rm -rf $PROJECT_NAME-win32.zip 2> /dev/null
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win32/love.exe,love-$LOVE_VERSION-win32/love.exe,$PROJECT_ICO,ICONGROUP,MAINICON,0"
cat love-$LOVE_VERSION-win32/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win32/$PROJECT_NAME.exe cat love-$LOVE_VERSION-win32/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win32/$PROJECT_NAME.exe
rm love-$LOVE_VERSION-win32/love.exe rm love-$LOVE_VERSION-win32/love.exe
zip -9 -qr $PROJECT_NAME-win32.zip love-$LOVE_VERSION-win32 zip -9 -qr $PROJECT_NAME-win32.zip love-$LOVE_VERSION-win32
@@ -337,6 +345,7 @@ if [ "$RELEASE_WIN_32" = true ]; then
fi fi
unzip -qq love-$LOVE_VERSION-win-x86.zip unzip -qq love-$LOVE_VERSION-win-x86.zip
rm -rf $PROJECT_NAME-win-x86.zip 2> /dev/null rm -rf $PROJECT_NAME-win-x86.zip 2> /dev/null
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win-x86/love.exe,love-$LOVE_VERSION-win-x86/love.exe,$PROJECT_ICO,ICONGROUP,MAINICON,0"
cat love-$LOVE_VERSION-win-x86/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win-x86/$PROJECT_NAME.exe cat love-$LOVE_VERSION-win-x86/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win-x86/$PROJECT_NAME.exe
rm love-$LOVE_VERSION-win-x86/love.exe rm love-$LOVE_VERSION-win-x86/love.exe
zip -9 -qr $PROJECT_NAME-win-x86.zip love-$LOVE_VERSION-win-x86 zip -9 -qr $PROJECT_NAME-win-x86.zip love-$LOVE_VERSION-win-x86
@@ -355,6 +364,7 @@ if [ "$RELEASE_WIN_64" = true ] && [ "$LOVE_GT_080" = "1" ]; then
fi fi
unzip -qq love-$LOVE_VERSION-win64.zip unzip -qq love-$LOVE_VERSION-win64.zip
rm -rf $PROJECT_NAME-win64.zip 2> /dev/null rm -rf $PROJECT_NAME-win64.zip 2> /dev/null
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win64/love.exe,love-$LOVE_VERSION-win64/love.exe,$PROJECT_ICO,ICONGROUP,MAINICON,0"
cat love-$LOVE_VERSION-win64/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win64/$PROJECT_NAME.exe cat love-$LOVE_VERSION-win64/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win64/$PROJECT_NAME.exe
rm love-$LOVE_VERSION-win64/love.exe rm love-$LOVE_VERSION-win64/love.exe
zip -9 -qr $PROJECT_NAME-win64.zip love-$LOVE_VERSION-win64 zip -9 -qr $PROJECT_NAME-win64.zip love-$LOVE_VERSION-win64
@@ -367,6 +377,7 @@ if [ "$RELEASE_WIN_64" = true ] && [ "$LOVE_GT_080" = "1" ]; then
fi fi
unzip -qq love-$LOVE_VERSION-win-x64.zip unzip -qq love-$LOVE_VERSION-win-x64.zip
rm -rf $PROJECT_NAME-win-x64.zip 2> /dev/null rm -rf $PROJECT_NAME-win-x64.zip 2> /dev/null
wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Resource\ Hacker/ResHacker.exe -addoverwrite "love-$LOVE_VERSION-win64/love.exe,love-$LOVE_VERSION-win64/love.exe,$PROJECT_ICO,ICONGROUP,MAINICON,0"
cat love-$LOVE_VERSION-win-x64/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win-x64/$PROJECT_NAME.exe cat love-$LOVE_VERSION-win-x64/love.exe $PROJECT_NAME.love > love-$LOVE_VERSION-win-x64/$PROJECT_NAME.exe
rm love-$LOVE_VERSION-win-x64/love.exe rm love-$LOVE_VERSION-win-x64/love.exe
zip -9 -qr $PROJECT_NAME-win-x64.zip love-$LOVE_VERSION-win-x64 zip -9 -qr $PROJECT_NAME-win-x64.zip love-$LOVE_VERSION-win-x64