pandemonium_engine/platform/frt_sdl/release.sh
2022-03-27 13:31:47 +02:00

97 lines
1.8 KiB
Bash
Executable File

#! /bin/sh
set -e
# release.sh
#
# FRT - A Godot platform targeting single board computers
# Copyright (c) 2017-2022 Emanuele Fornara
# SPDX-License-Identifier: MIT
#
die() {
echo $1
exit 1
}
usage() {
die "usage: release.sh arch tag..."
}
print_header() {
echo "Building frt:$fver tag:$tag arch:$arch..."
}
release() {
local bin
[ -d releases ] || return
bin=releases/frt_${fver}_${tag}_${arch}.bin
cp tag_$tag/bin/godot.frt.opt$extrasuffix.$arch $bin
$stripcmd $bin
}
build_common="platform=frt tools=no target=release use_static_cpp=yes -j 4"
build() {
local patch
print_header
if [ $arch = arm64v8 -a $fver = 216 ] ; then patch="CCFLAGS=-DNO_THREADS" ; fi
( cd tag_$tag ; nice scons frt_arch=$arch \
$archopts \
$gveropts \
$patch \
$build_common )
release
}
[ $# -gt 1 ] || usage
arch=$1
case $arch in
arm32v6)
stripcmd="arm-linux-gnueabihf-strip"
archopts="frt_cross=no"
;;
arm32v7)
stripcmd="arm-linux-gnueabihf-strip"
archopts="frt_cross=auto"
;;
arm64v8)
stripcmd="aarch64-linux-gnu-strip"
archopts="frt_cross=auto"
;;
*) die "release.sh: invalid arch: $arch."
esac
shift
[ -d releases ] || die "release.sh: no releases directory."
export BUILD_NAME=frt
while [ $# -gt 0 ] ; do
case $1 in
tag_*)
[ -d $1 ] || die "release.sh: tag directory $1 not found."
tag=`echo $1 | cut -b 5- | sed 's/\///g'`
frth="tag_$tag/platform/frt/frt.h"
[ -f $frth ] || die "release.sh: $frth not found."
gver=`echo $tag | cut -b -2`
case $gver in
2*)
gveropts="use_llvm=yes"
extrasuffix=".llvm"
;;
3*)
gveropts="use_llvm=no module_webm_enabled=no"
extrasuffix=""
;;
*) die "release.sh: unsupported godot version: $gver."
esac
fver=`grep FRT_VERSION $frth \
| grep -o '".*"' \
| sed 's/[\."]//g'`
build
;;
*) die "release.sh: invalid tag $tag."
esac
shift
done