mirror of
https://github.com/TangentFoxy/love-release.git
synced 2025-07-28 11:02:20 +00:00
Add Windows module
This commit is contained in:
@@ -14,12 +14,18 @@ LOVE_VERSION=0.9.1
|
|||||||
## - a colon ":" if it requires an argument
|
## - a colon ":" if it requires an argument
|
||||||
|
|
||||||
## SCRIPT_ARGS="a; osname:"
|
## SCRIPT_ARGS="a; osname:"
|
||||||
SCRIPT_ARGS="l; "
|
SCRIPT_ARGS="l; w."
|
||||||
|
|
||||||
|
## Windows
|
||||||
|
SCRIPT_ARGS="icon: $SCRIPT_ARGS"
|
||||||
|
|
||||||
## Add a short summary of your platform script here
|
## Add a short summary of your platform script here
|
||||||
## SHORT_HELP=" -a Create an executable for a
|
## SHORT_HELP=" -a Create an executable for a
|
||||||
## --osname Create an executable for osname"
|
## --osname Create an executable for osname"
|
||||||
SHORT_HELP=" -l Create a plain Love file"
|
SHORT_HELP=" -l Create a plain Love file
|
||||||
|
-w, Create a Windows application
|
||||||
|
-w32 Create a Windows x86 application
|
||||||
|
-w64 Create a Windows x64 application"
|
||||||
|
|
||||||
## Don't forget to source the corresponding file at the bottom of the script !
|
## Don't forget to source the corresponding file at the bottom of the script !
|
||||||
|
|
||||||
@@ -85,6 +91,7 @@ Options:
|
|||||||
-v Set the Love version
|
-v Set the Love version
|
||||||
$SHORT_HELP"
|
$SHORT_HELP"
|
||||||
|
|
||||||
|
|
||||||
# Parsing options
|
# Parsing options
|
||||||
source "$INCLUDE_DIR"/getopt.sh
|
source "$INCLUDE_DIR"/getopt.sh
|
||||||
while getoptex "$SCRIPT_ARGS" "$@"
|
while getoptex "$SCRIPT_ARGS" "$@"
|
||||||
@@ -133,11 +140,11 @@ init_module ()
|
|||||||
create_love_file ()
|
create_love_file ()
|
||||||
{
|
{
|
||||||
cd "$PROJECT_DIR"
|
cd "$PROJECT_DIR"
|
||||||
rm -rf "$RELEASE_DIR"/"$PROJECT_NAME".love
|
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"/\* "$EXCLUDE_FILES" @ *
|
zip -9 -r "$RELEASE_DIR"/"$PROJECT_NAME".love -x "$0" "$MAIN_RELEASE_DIR"/\* $EXCLUDE_FILES @ *
|
||||||
else
|
else
|
||||||
zip -9 -r "$RELEASE_DIR"/"$PROJECT_NAME".love -x "$0" "$MAIN_RELEASE_DIR"/\* "$EXCLUDE_FILES" @ "$PROJECT_FILES"
|
zip -9 -r "$RELEASE_DIR"/"$PROJECT_NAME".love -x "$0" "$MAIN_RELEASE_DIR"/\* $EXCLUDE_FILES @ $PROJECT_FILES
|
||||||
fi
|
fi
|
||||||
cd "$RELEASE_DIR"
|
cd "$RELEASE_DIR"
|
||||||
LOVE_FILE="$PROJECT_NAME".love
|
LOVE_FILE="$PROJECT_NAME".love
|
||||||
@@ -176,7 +183,17 @@ do
|
|||||||
## source "$PLATFORMS_DIR/os.sh"
|
## source "$PLATFORMS_DIR/os.sh"
|
||||||
## fi
|
## fi
|
||||||
if [ "$OPTOPT" = "l" ]; then
|
if [ "$OPTOPT" = "l" ]; then
|
||||||
source $PLATFORMS_DIR/love.sh
|
source "$PLATFORMS_DIR"/love.sh
|
||||||
|
elif [ "$OPTOPT" = "w" ]; then
|
||||||
|
if [ "$OPTARG" = "32" ]; then
|
||||||
|
RELEASE_WIN_32=true
|
||||||
|
elif [ "$OPTARG" = "64" ]; then
|
||||||
|
RELEASE_WIN_64=true
|
||||||
|
else
|
||||||
|
RELEASE_WIN_32=true
|
||||||
|
RELEASE_WIN_64=true
|
||||||
|
fi
|
||||||
|
source "$PLATFORMS_DIR"/windows.sh
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
99
scripts/windows.sh
Normal file
99
scripts/windows.sh
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# Windows
|
||||||
|
init_module "Windows"
|
||||||
|
|
||||||
|
|
||||||
|
# Options
|
||||||
|
while getoptex "$SCRIPT_ARGS" "$@"
|
||||||
|
do
|
||||||
|
if [ "$OPTOPT" = "icon" ]; then
|
||||||
|
PROJECT_ICO=$OPTARG
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
EXCLUDE_FILES="$EXCLUDE_FILES $PROJECT_ICO test"
|
||||||
|
|
||||||
|
# Wine
|
||||||
|
FOUND_WINE=true
|
||||||
|
command -v wine >/dev/null 2>&1 || { FOUND_WINE=false; }
|
||||||
|
if [ "$FOUND_WINE" = true ] && [ -n "$PROJECT_ICO" ]; then
|
||||||
|
WINEPREFIX="$MAIN_CACHE_DIR"/wine
|
||||||
|
mkdir -p "$WINEPREFIX"/drive_c
|
||||||
|
RESHACKER="$WINEPREFIX"/drive_c/"Program Files (x86)"/"Resource Hacker"/ResHacker.exe
|
||||||
|
if [ -f "$RESHACKER" ]; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
curl -L -C - -o "$WINEPREFIX"/drive_c/reshack_setup.exe http://www.angusj.com/resourcehacker/reshack_setup.exe
|
||||||
|
WINEPREFIX="$WINEPREFIX" wine "$WINEPREFIX/drive_c/reshack_setup.exe"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
create_love_file
|
||||||
|
|
||||||
|
|
||||||
|
# Windows 32-bits
|
||||||
|
if [ "$RELEASE_WIN_32" = true ]; then
|
||||||
|
|
||||||
|
if [ "$LOVE_GT_090" = true ]; then
|
||||||
|
if [ -f "$CACHE_DIR"/love-$LOVE_VERSION-win32.zip ]; then
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win32.zip ./
|
||||||
|
else
|
||||||
|
curl -L -C - -o "$CACHE_DIR"/love-$LOVE_VERSION-win32.zip https://bitbucket.org/rude/love/downloads/love-$LOVE_VERSION-win32.zip
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win32.zip ./
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -f "$CACHE_DIR"/love-$LOVE_VERSION-win-x86.zip ]; then
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win-x86.zip ./love-$LOVE_VERSION-win32.zip
|
||||||
|
else
|
||||||
|
curl -L -C - -o "$CACHE_DIR"/love-$LOVE_VERSION-win-x86.zip https://bitbucket.org/rude/love/downloads/love-$LOVE_VERSION-win-x86.zip
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win-x86.zip ./love-$LOVE_VERSION-win32.zip
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
unzip -qq love-$LOVE_VERSION-win32.zip
|
||||||
|
rm -rf "$PROJECT_NAME"-win32.zip 2> /dev/null
|
||||||
|
|
||||||
|
if [ "$FOUND_WINE" = true ] && [ -n "$PROJECT_ICO" ]; then
|
||||||
|
WINEPREFIX="$WINEPREFIX" wine "$RESHACKER" -addoverwrite "love-$LOVE_VERSION-win32/love.exe,love-$LOVE_VERSION-win32/love.exe,"$PROJECT_ICO",ICONGROUP,MAINICON,0" 2> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat love-$LOVE_VERSION-win32/love.exe "$LOVE_FILE" > love-$LOVE_VERSION-win32/"$PROJECT_NAME".exe
|
||||||
|
rm love-$LOVE_VERSION-win32/love.exe
|
||||||
|
zip -9 -qr "$PROJECT_NAME"-win32.zip love-$LOVE_VERSION-win32
|
||||||
|
rm -rf love-$LOVE_VERSION-win32.zip love-$LOVE_VERSION-win32
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Windows 64-bits ##
|
||||||
|
if [ "$RELEASE_WIN_64" = true ] && [ "$LOVE_GT_080" = true ]; then
|
||||||
|
|
||||||
|
if [ "$LOVE_GT_090" = true ]; then
|
||||||
|
if [ -f "$CACHE_DIR"/love-$LOVE_VERSION-win64.zip ]; then
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win64.zip ./
|
||||||
|
else
|
||||||
|
curl -L -C - -o "$CACHE_DIR"/love-$LOVE_VERSION-win64.zip https://bitbucket.org/rude/love/downloads/love-$LOVE_VERSION-win64.zip
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win64.zip ./
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -f "$CACHE_DIR"/love-$LOVE_VERSION-win-x64.zip ]; then
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win-x64.zip ./love-$LOVE_VERSION-win64.zip
|
||||||
|
else
|
||||||
|
curl -L -C - -o "$CACHE_DIR"/love-$LOVE_VERSION-win-x64.zip https://bitbucket.org/rude/love/downloads/love-$LOVE_VERSION-win-x64.zip
|
||||||
|
cp "$CACHE_DIR"/love-$LOVE_VERSION-win-x64.zip ./love-$LOVE_VERSION-win64.zip
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
unzip -qq love-$LOVE_VERSION-win64.zip
|
||||||
|
rm -rf "$PROJECT_NAME"-win64.zip 2> /dev/null
|
||||||
|
|
||||||
|
if [ "$FOUND_WINE" = true ] && [ -n "$PROJECT_ICO" ]; then
|
||||||
|
WINEPREFIX="$WINEPREFIX" wine "$RESHACKER" -addoverwrite "love-$LOVE_VERSION-win32/love.exe,love-$LOVE_VERSION-win32/love.exe,"$PROJECT_ICO",ICONGROUP,MAINICON,0" 2> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat love-$LOVE_VERSION-win64/love.exe "$LOVE_FILE" > love-$LOVE_VERSION-win64/"$PROJECT_NAME".exe
|
||||||
|
rm love-$LOVE_VERSION-win64/love.exe
|
||||||
|
zip -9 -qr "$PROJECT_NAME"-win64.zip love-$LOVE_VERSION-win64
|
||||||
|
rm -rf love-$LOVE_VERSION-win64.zip love-$LOVE_VERSION-win64
|
||||||
|
fi
|
||||||
|
|
||||||
|
remove_love_file
|
||||||
|
exit_module
|
||||||
|
|
Reference in New Issue
Block a user