lovepackaging
This commit is contained in:
165
build
Executable file
165
build
Executable file
@@ -0,0 +1,165 @@
|
||||
#!/bin/bash
|
||||
|
||||
# keep unset variables from breaking everything
|
||||
set -o nounset
|
||||
# exit on error instead of continuing
|
||||
set -o errexit
|
||||
|
||||
# get config
|
||||
#if [ ! -z "$1" ]; then
|
||||
# # has a command-line option, which should be the config file to load from
|
||||
# source "$1"
|
||||
#else
|
||||
source ./config.sh
|
||||
#fi
|
||||
|
||||
# make $outputDir if it doesn't exist
|
||||
if [ ! -d "$outputDir" ]; then mkdir -p "$outputDir"; fi
|
||||
|
||||
# append -buildN build numbers
|
||||
# (build.number file stored in $outputDir)
|
||||
if [ $autoNumberBuilds = true ]; then
|
||||
# get the number if file exists, else use 1
|
||||
if [ -r "$outputDir/build.number" ]; then
|
||||
source "$outputDir/build.number"
|
||||
((build++))
|
||||
else
|
||||
build=1
|
||||
fi
|
||||
# store the current build number
|
||||
echo "build=$build" > "$outputDir/build.number"
|
||||
# set version to use new build number
|
||||
version=$version-build$build
|
||||
fi
|
||||
|
||||
# check that zip and unzip are accessible
|
||||
# not sure if this is the best way to do this or not
|
||||
if ! which zip > /dev/null 2>&1; then
|
||||
echo "zip not installed"
|
||||
exit 2;
|
||||
fi
|
||||
if ! which unzip > /dev/null 2>&1; then
|
||||
echo "unzip not installed"
|
||||
exit 3;
|
||||
fi
|
||||
|
||||
# remove old versions of package?
|
||||
if [ $removeOld = true ]; then
|
||||
rm -f "$outputDir/$packageName*"
|
||||
fi
|
||||
|
||||
# move to source dir and store original for later use
|
||||
# (this is to make a zip command work)
|
||||
originalDir=$(pwd)
|
||||
cd "$sourceDir"
|
||||
|
||||
# build .love file
|
||||
echo "Building $packageName (version $version)... (.love file)"
|
||||
zip -r -X -q "$outputDir/$packageName-$version.love" ./*
|
||||
echo " Done."
|
||||
|
||||
# check if executables exist, if not, download them
|
||||
# (assumes if the exe exists, everything else does too)
|
||||
if [ ! -r "$win32Dir/love-0.9.1-win32/love.exe" ]; then
|
||||
mkdir -p "$win32Dir"
|
||||
echo "Downloading win32src..."
|
||||
$download "$win32Dir/love32.zip" https://bitbucket.org/rude/love/downloads/love-0.9.1-win32.zip
|
||||
echo " Done."
|
||||
echo "Extracting win32src..."
|
||||
unzip -q "$win32Dir/love32.zip" -d "$win32Dir"
|
||||
echo " Done."
|
||||
fi
|
||||
|
||||
if [ ! -r "$win64Dir/love-0.9.1-win64/love.exe" ]; then
|
||||
mkdir -p "$win64Dir"
|
||||
echo "Downloading win64src..."
|
||||
$download "$win64Dir/love64.zip" https://bitbucket.org/rude/love/downloads/love-0.9.1-win64.zip
|
||||
echo " Done."
|
||||
echo "Extracting win64src..."
|
||||
unzip -q "$win64Dir/love64.zip" -d "$win64Dir"
|
||||
echo " Done."
|
||||
fi
|
||||
|
||||
if [ ! -d "$osx10Dir/love.app" ]; then
|
||||
mkdir -p "$osx10Dir"
|
||||
echo "Downloading osx10src..."
|
||||
$download "$osx10Dir/loveOSX.zip" https://bitbucket.org/rude/love/downloads/love-0.9.1-macosx-x64.zip
|
||||
echo " Done."
|
||||
echo "Extracting osx10src..."
|
||||
unzip -q "$osx10Dir/loveOSX.zip" -d "$osx10Dir"
|
||||
# delete Mac crao (for some reason can't not unzip it *shrugs*)
|
||||
rm -rf "$osx10Dir/__MACOSX"
|
||||
# the Info.plist is generated each time a package is built, we don't need a copy here
|
||||
rm -f "$osx10Dir/love.app/Contents/Info.plist"
|
||||
echo " Done."
|
||||
fi
|
||||
|
||||
# build executables and zip files for them
|
||||
|
||||
echo "Building $packageName (version $version)... (win32 zip)"
|
||||
# EXE with ZIP at end
|
||||
cat "$win32Dir/love-0.9.1-win32/love.exe" "$outputDir/$packageName-$version.love" > "$win32Dir/$packageName.exe"
|
||||
cd "$win32Dir"
|
||||
# ZIP up the EXE
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win32.zip" "./$packageName.exe"
|
||||
cd ./love-0.9.1-win32
|
||||
# ZIP up the required DLLs
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win32.zip" ./*.dll
|
||||
cp ./license.txt ./LOVE-license.txt
|
||||
# ZIP up the LOVE license
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win32.zip" ./LOVE-license.txt
|
||||
cd "$includes"
|
||||
# ZIP up extra included files
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win32.zip" ./*
|
||||
echo " Done."
|
||||
|
||||
echo "Building $packageName (version $version)... (win64 zip)"
|
||||
# EXE with ZIP at end
|
||||
cat "$win64Dir/love-0.9.1-win64/love.exe" "$outputDir/$packageName-$version.love" > "$win64Dir/$packageName.exe"
|
||||
cd "$win64Dir"
|
||||
# ZIP up the EXE
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win64.zip" "./$packageName.exe"
|
||||
cd ./love-0.9.1-win64
|
||||
# ZIP up the required DLLs
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win64.zip" ./*.dll
|
||||
cp ./license.txt ./LOVE-license.txt
|
||||
# ZIP up the LOVE license
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win64.zip" ./LOVE-license.txt
|
||||
cd "$includes"
|
||||
# ZIP up extra included files
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_win64.zip" ./*
|
||||
echo " Done."
|
||||
|
||||
echo "Building $packageName (version $version)... (OS X zip)"
|
||||
cd "$osx10Dir"
|
||||
# Make a fresh copy of the .app directory
|
||||
cp -r ./love.app "./$packageName.app"
|
||||
# Copy in our .love file
|
||||
cp "$outputDir/$packageName-$version.love" "$osx10Dir/$packageName.app/Contents/Resources/$packageName.love"
|
||||
# Create an Info.plist and copy it in
|
||||
cd "$originalDir"
|
||||
source "$originalDir/scripts/Info.plist-maker.sh"
|
||||
cd "$osx10Dir"
|
||||
cp "$originalDir/tmp/Info.plist" "$osx10Dir/$packageName.app/Contents/Info.plist"
|
||||
# ZIP up the .app directory
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_osx.zip" "./$packageName.app"
|
||||
cd "$includes"
|
||||
# ZIP up the extra included files
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_osx.zip" ./*
|
||||
echo " Done."
|
||||
|
||||
echo "Building $packageName (version $version)... (Linux zip)"
|
||||
cd "$outputDir"
|
||||
# ZIP up the .love file
|
||||
zip -r -X -q "./$packageName-${version}_linux.zip" "./$packageName-$version.love"
|
||||
cp "$win64Dir/love-0.9.1-win64/LOVE-license.txt" ./LOVE-license.txt
|
||||
# ZIP up the LOVE license
|
||||
zip -r -X -q "./$packageName-${version}_linux.zip" ./LOVE-license.txt
|
||||
cd "$includes"
|
||||
# ZIP up the extra included files
|
||||
zip -r -X -q "$outputDir/$packageName-${version}_linux.zip" ./*
|
||||
echo " Done."
|
||||
|
||||
echo "Builds complete. Unless there are errors above. Double check your files."
|
||||
echo
|
||||
if which fortune > /dev/null 2>&1; then fortune; fi
|
Reference in New Issue
Block a user