41 lines
1.3 KiB
Bash
Executable File
41 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build BackOneUI on Ubuntu/Debian without system-wide -dev packages.
|
|
# Preferred: sudo apt install libgtk-3-dev libayatana-appindicator3-dev meson ninja-build
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
DEPROOT="${BACKONE_UI_DEPROOT:-$HOME/backone-ui-build-deps}"
|
|
VENV="${ROOT}/.venv"
|
|
|
|
if ! command -v cargo >/dev/null 2>&1; then
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
|
|
fi
|
|
# shellcheck disable=SC1091
|
|
source "$HOME/.cargo/env"
|
|
|
|
if [[ ! -x "$VENV/bin/meson" ]]; then
|
|
python3 -m venv "$VENV"
|
|
"$VENV/bin/pip" install meson ninja
|
|
fi
|
|
|
|
export PATH="$VENV/bin:$PATH"
|
|
export PKG_CONFIG_PATH="${DEPROOT}/usr/lib/x86_64-linux-gnu/pkgconfig:${PKG_CONFIG_PATH:-}"
|
|
export PKG_CONFIG_SYSROOT_DIR="$DEPROOT"
|
|
export LD_LIBRARY_PATH="${DEPROOT}/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}"
|
|
|
|
cd "$ROOT/tray"
|
|
ln -sf ayatana-appindicator3-0.1.pc "${DEPROOT}/usr/lib/x86_64-linux-gnu/pkgconfig/appindicator3-0.1.pc" 2>/dev/null || true
|
|
make zt_lib
|
|
|
|
cd "$ROOT"
|
|
if [[ ! -f libui-ng/build/meson-out/libui.a ]]; then
|
|
rm -rf libui-ng/build
|
|
cd libui-ng
|
|
CFLAGS="-O" meson setup build --buildtype=release --default-library=static --backend=ninja
|
|
ninja -C build meson-out/libui.a
|
|
cd "$ROOT"
|
|
fi
|
|
|
|
cargo build "$@"
|
|
echo "Built: $ROOT/target/debug/backone_desktop_ui"
|