mirror of
https://codeberg.org/StreamGraph/StreamGraph.git
synced 2024-11-13 19:49:55 +01:00
add build automation scripts
This commit is contained in:
parent
f89c5b933e
commit
5a214c16f8
3 changed files with 104 additions and 0 deletions
52
dist/BUILD_TEMPLATE.sh
vendored
Executable file
52
dist/BUILD_TEMPLATE.sh
vendored
Executable file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# (c) 2023-present Eroax
|
||||||
|
# (c) 2023-present Yagich
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
# Template script to build StreamGraph for Linux and Windows targets.
|
||||||
|
# While it can be invoked manually, it's part of a series of automation scripts.
|
||||||
|
# This script is tailor-made for one system and may not necessarily work on others.
|
||||||
|
# If you want a safer way to build StreamGraph, use Godot's Export menu.
|
||||||
|
|
||||||
|
# This script is copied to a version folder as part of the build process.
|
||||||
|
# It will not try detecting that the folder it's in is valid, so do not run it if it's named "BUILD_TEMPLATE.sh".
|
||||||
|
# It expects a "godot" executable to be present in PATH.
|
||||||
|
|
||||||
|
# If the first argument is "clean", the script will remove the built executables in the linux/ and windows/ folders and zip files it creates.
|
||||||
|
|
||||||
|
target=`pwd`
|
||||||
|
version=`basename $target`
|
||||||
|
filename="StreamGraph-v$version"
|
||||||
|
|
||||||
|
# Build StreamGraph for linux and windows and zip them up.
|
||||||
|
function build {
|
||||||
|
if ! command -v godot &> /dev/null; then
|
||||||
|
echo "ERROR: godot not found in PATH. Aborting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ../../
|
||||||
|
godot --headless --quiet --export-debug "linux" "$target/linux/$filename.x86_64"
|
||||||
|
godot --headless --quiet --export-debug "windows" "$target/windows/$filename.exe"
|
||||||
|
|
||||||
|
cd "$target"
|
||||||
|
zip -rq "$filename-linux.zip" linux
|
||||||
|
zip -rq "$filename-windows.zip" windows
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clean the linux and windows folders and zip files.
|
||||||
|
function clean {
|
||||||
|
rm -f windows/*
|
||||||
|
rm -f linux/*
|
||||||
|
rm -f "$filename-linux.zip"
|
||||||
|
rm -f "$filename-windows.zip"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $1 = "clean" ]]; then
|
||||||
|
clean
|
||||||
|
else
|
||||||
|
build
|
||||||
|
fi
|
28
dist/build-version.sh
vendored
Executable file
28
dist/build-version.sh
vendored
Executable file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# (c) 2023-present Eroax
|
||||||
|
# (c) 2023-present Yagich
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
# Main script to build a given version of StreamGraph for Linux and Windows.
|
||||||
|
# See the files prep-folders.sh and BUILD_TEMPLATE.sh for more information on what happens during the build process.
|
||||||
|
|
||||||
|
if [[ $# -ne 1 ]]; then
|
||||||
|
echo "ERROR: Version string required."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
./prep-folders.sh $1
|
||||||
|
|
||||||
|
cd "$1"
|
||||||
|
|
||||||
|
./build.sh clean
|
||||||
|
./build.sh
|
||||||
|
|
||||||
|
if [[ $? = 0 ]]; then
|
||||||
|
echo "Build completed."
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "Build failed."
|
||||||
|
exit $?
|
||||||
|
fi
|
24
dist/prep-folders.sh
vendored
Executable file
24
dist/prep-folders.sh
vendored
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# (c) 2023-present Eroax
|
||||||
|
# (c) 2023-present Yagich
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
# Helper script to prepare folders for a StreamGraph release.
|
||||||
|
# Takes one argument, the version string, and creates a relevant folder structure, copying the build template into the version folder.
|
||||||
|
|
||||||
|
if [[ $# -ne 1 ]]; then
|
||||||
|
echo "ERROR: Version string required."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -d $1 ]]; then
|
||||||
|
echo "WARN: The directory for version $1 already exists."
|
||||||
|
cp BUILD_TEMPLATE.sh "$1/build.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$1"/linux
|
||||||
|
mkdir -p "$1"/windows
|
||||||
|
|
||||||
|
cp BUILD_TEMPLATE.sh "$1/build.sh"
|
Loading…
Reference in a new issue