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
|
||||
|
||||
## 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
|
||||
## SHORT_HELP=" -a Create an executable for a
|
||||
## --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 !
|
||||
|
||||
@@ -85,6 +91,7 @@ Options:
|
||||
-v Set the Love version
|
||||
$SHORT_HELP"
|
||||
|
||||
|
||||
# Parsing options
|
||||
source "$INCLUDE_DIR"/getopt.sh
|
||||
while getoptex "$SCRIPT_ARGS" "$@"
|
||||
@@ -133,11 +140,11 @@ init_module ()
|
||||
create_love_file ()
|
||||
{
|
||||
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
|
||||
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
|
||||
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
|
||||
cd "$RELEASE_DIR"
|
||||
LOVE_FILE="$PROJECT_NAME".love
|
||||
@@ -176,7 +183,17 @@ do
|
||||
## source "$PLATFORMS_DIR/os.sh"
|
||||
## fi
|
||||
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
|
||||
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