bRAC/misc/build.sh

68 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
SUPPORTED_SYSTEMS=('')
build() {
local build_dir=build/$1
rm -rf $build_dir
mkdir $build_dir
mkdir $build_dir/misc
$1 # build
# copy readme, license and make a zip
cp README.md $build_dir
cp LICENSE $build_dir
zip -r $build_dir.zip $build_dir
}
SUPPORTED_SYSTEMS+=('linux-x86_64')
linux-x86_64() {
# add gnotification version and install script
cargo build -r
cp target/release/bRAC $build_dir/misc/bRAC-gnotif
cp misc/bRAC.png $build_dir/misc
cp misc/user-install.sh $build_dir/install.sh
cp misc/user-uninstall.sh $build_dir/uninstall.sh
cp misc/create-desktop.sh $build_dir/misc
chmod +x $build_dir/install.sh
chmod +x $build_dir/uninstall.sh
chmod +x $build_dir/misc/create-desktop.sh
# add libnotify version as the alternative
cargo build -r -F libnotify
cp target/release/bRAC build/linux-x86_64
}
SUPPORTED_SYSTEMS+=('windows-x86_64')
windows-x86_64() {
docker run -ti -v `pwd`:/mnt mglolenstine/gtk4-cross:rust-gtk-nightly /bin/bash -c "
source \"\$HOME/.cargo/env\";
rustup update nightly; # update nightly toolchain
rustup +nightly target add x86_64-pc-windows-gnu; # install windows stuff
sed -i -e 's/cargo build/cargo +nightly build -F notify-rust,winapi/g' /bin/build; # add features + nightly
build; # build it, creates package dir
package; # package it (adds some libs)
mv package $build_dir;
chmod -R 777 $build_dir;
chmod -R 777 target"
}
mkdir -p build
if [ $# -eq 0 ]; then
for system in "${SUPPORTED_SYSTEMS[@]}"; do
if [ ! -d build/$system ]; then build $system; fi
done
else
if [ $1 = "clean" ]; then
rm -rf build
elif [[ ${SUPPORTED_SYSTEMS[@]} =~ " $1" ]]; then
build $1;
fi
fi