xash3d-fwgs/scripts/sailfish/build.sh

80 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
. scripts/lib.sh
download_sign_key()
{
echo -n "Downloading $1: "
curl https://community.omprussia.ru/documentation/files/doc/$1 -o $1 &> /dev/null || die "Can't download $1" && echo "OK"
}
pack_sources()
{
echo "Packing sources to $1..."
git ls-files --recurse-submodules | tar caf "$1" -T-
}
dependencies="SDL2-devel ImageMagick"
build_dir="build_rpm"
if [ "$1" == "aurora" ]; then
name="su.xash.Engine"
flavor="aurora"
else
name="harbour-xash3d-fwgs"
flavor="sailfish"
fi
if [ $flavor == 'aurora' ]; then
download_sign_key regular_key.pem
download_sign_key regular_cert.pem
fi
rm -fr ${build_dir}/{BUILD,SRPMS}
mkdir -p ${build_dir}/SOURCES
pack_sources ${build_dir}/SOURCES/${name}.tar
git clone https://github.com/FWGS/hlsdk-portable -b mobile_hacks
pushd hlsdk-portable
pack_sources ../${build_dir}/SOURCES/hlsdk-portable.tar
popd
sfdk_targets=`sfdk engine exec sb2-config -l | grep default | grep -v i486`
for each in $sfdk_targets; do
target_arch=${each##*-}
target_arch=${target_arch/.default/}
echo "Build for '$each' target with '$target_arch' architecture"
# install deps for current target
sfdk engine exec sb2 -t $each -R -m sdk-install zypper in -y ${dependencies}
# build RPM for current target
sfdk engine exec sb2 -t $each rpmbuild \
--define "_topdir `pwd`/${build_dir}" \
--define "_arch $target_arch" \
--define "_packagename $name" \
--define "_flavor $flavor" \
-ba scripts/sailfish/harbour-xash3d-fwgs.spec || die "Build for ${each}: FAIL"
# sign RPM packacge
if [ "$flavor" == "aurora" ]; then
echo -n "Signing RPMs: "
sfdk engine exec sb2 -t $each rpmsign-external sign --key `pwd`/regular_key.pem --cert `pwd`/regular_cert.pem `pwd`/${build_dir}/RPMS/${target_arch}/$name-0*.rpm || die "FAIL" && echo "OK"
fi
echo -n "Validate RPM: "
if [ "$flavor" == "aurora" ]; then
validator_output=`sfdk engine exec rpm-validator -p regular $(pwd)/${build_dir}/RPMS/${target_arch}/$name-0* 2>&1`
else
sfdk config target=${each/.default/}
validator_output=`sfdk check $(pwd)/${build_dir}/RPMS/${target_arch}/$name-0* 2>&1`
fi
if [ $? -ne 0 ] ; then
echo "FAIL"
echo "${validator_output}"
break;
fi
echo "OK"
done
echo "All build done! All your packages in `pwd`/build_rpm/RPMS"