breezy-desktop/bin/package_kwin

78 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# exit when any command fails
set -e
ARCH=${ARCH:-$(uname -m)}
BUILD_ARCH=$ARCH
if [ -n "${STEAMOS+x}" ]; then
ARCH="x86_64"
BUILD_ARCH="steamos"
fi
# https://stackoverflow.com/a/246128
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
ROOT_DIR=$(realpath $SCRIPT_DIR/..)
XR_DRIVER_DIR=$ROOT_DIR/modules/XRLinuxDriver
echo "Building Breezy KWin for $BUILD_ARCH"
KWIN_DIR=$ROOT_DIR/kwin
BUILD_FILE_NAME=breezyKWin-$BUILD_ARCH.tar.gz
TMP_DIR=$(mktemp -d -t breezy-kwin-XXXXXXXXXX)
PACKAGE_DIR=$TMP_DIR/breezy_kwin
mkdir -p $PACKAGE_DIR
source $XR_DRIVER_DIR/bin/inject_ua
# copy vulkan setup scripts and configs
mkdir -p $PACKAGE_DIR/bin
copy_and_inject_ua "$XR_DRIVER_DIR/bin/ua.sh" "$PACKAGE_DIR/bin" "$KWIN_DIR/bin/setup" "$KWIN_DIR/bin/breezy_kwin_uninstall"
XR_DRIVER_BINARY=$XR_DRIVER_DIR/out/xrDriver-$ARCH.tar.gz
if [ ! -e "$XR_DRIVER_BINARY" ] || [ "$1" == "--rebuild-driver" ] || [ "$1" == "--rebuild-all" ]; then
# if a file exists at custom_banner_config.yml, copy it to the xrealAirLinuxDriver directory
if [ -e "$VULKAN_DIR/custom_banner_config.yml" ]; then
cp $VULKAN_DIR/custom_banner_config.yml $XR_DRIVER_DIR
fi
pushd $XR_DRIVER_DIR
# strange issue where the base library produces a .so file if the build is not cleaned
rm -rf build/
docker-build/init.sh
docker-build/run-build.sh $ARCH
popd
fi
XR_DRIVER_TMP_DIR=$(mktemp -d -t xr-driver-XXXXXXXXXX)
pushd $XR_DRIVER_TMP_DIR
cp $XR_DRIVER_BINARY $XR_DRIVER_TMP_DIR/xrDriver.tar.gz
tar -xf $XR_DRIVER_TMP_DIR/xrDriver.tar.gz
XR_DRIVER_MANIFEST_LINE=$(sha256sum xr_driver/manifest)
popd
rm -rf $XR_DRIVER_TMP_DIR
cp $XR_DRIVER_BINARY $PACKAGE_DIR/xrDriver.tar.gz
cp $XR_DRIVER_DIR/bin/xr_driver_setup $PACKAGE_DIR/bin
pushd $KWIN_DIR
docker-build/init.sh
docker-build/run-build.sh $BUILD_ARCH
popd
cp $KWIN_DIR/out/breezyKWinPlugin-$BUILD_ARCH.tar.gz $PACKAGE_DIR/breezyKWinPlugin.tar.gz
pushd $TMP_DIR
tar -zcvf $BUILD_FILE_NAME breezy_kwin
popd
mkdir -p out
if [ -e "out/$BUILD_FILE_NAME" ]; then
rm out/$BUILD_FILE_NAME
fi
cp $TMP_DIR/$BUILD_FILE_NAME out
rm -rf $TMP_DIR