67 lines
1.9 KiB
Bash
67 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
VERSION="${1:-${VERSION:-0.0.0}}"
|
|
VERSION="${VERSION#v}"
|
|
# Debian versions must start with a digit; fall back to 0.0.0+<sha/tag>.
|
|
if [[ ! "$VERSION" =~ ^[0-9] ]]; then
|
|
VERSION="0.0.0+${VERSION}"
|
|
fi
|
|
ARCH="${ARCH:-$(dpkg --print-architecture)}"
|
|
BUILD_DIR="${BUILD_DIR:-$ROOT_DIR/build-$ARCH}"
|
|
DIST_DIR="$ROOT_DIR/dist"
|
|
STAGE_DIR="$BUILD_DIR/deb"
|
|
QMAKE_BIN="${QMAKE_BIN:-qmake}"
|
|
MAKE_JOBS="${MAKE_JOBS:-2}"
|
|
|
|
QMAKE_ARGS=()
|
|
if [[ -n "${QMAKESPEC:-}" ]]; then
|
|
QMAKE_ARGS+=("-spec" "$QMAKESPEC")
|
|
fi
|
|
if [[ -n "${QMAKE_CC:-}" ]]; then
|
|
QMAKE_ARGS+=("QMAKE_CC=$QMAKE_CC")
|
|
fi
|
|
if [[ -n "${QMAKE_CXX:-}" ]]; then
|
|
QMAKE_ARGS+=("QMAKE_CXX=$QMAKE_CXX")
|
|
fi
|
|
if [[ -n "${QMAKE_LINK:-}" ]]; then
|
|
QMAKE_ARGS+=("QMAKE_LINK=$QMAKE_LINK")
|
|
fi
|
|
if [[ -n "${QMAKE_CFLAGS:-}" ]]; then
|
|
QMAKE_ARGS+=("QMAKE_CFLAGS=$QMAKE_CFLAGS")
|
|
fi
|
|
if [[ -n "${QMAKE_CXXFLAGS:-}" ]]; then
|
|
QMAKE_ARGS+=("QMAKE_CXXFLAGS=$QMAKE_CXXFLAGS")
|
|
fi
|
|
if [[ -n "${QMAKE_LFLAGS:-}" ]]; then
|
|
QMAKE_ARGS+=("QMAKE_LFLAGS=$QMAKE_LFLAGS")
|
|
fi
|
|
|
|
PACKAGE_NAME="slide"
|
|
|
|
cd "$ROOT_DIR"
|
|
mkdir -p "$BUILD_DIR"
|
|
"$QMAKE_BIN" "${QMAKE_ARGS[@]}" "$ROOT_DIR/src/slide.pro" -o "$BUILD_DIR/Makefile"
|
|
make -C "$BUILD_DIR" -j"$MAKE_JOBS"
|
|
|
|
rm -rf "$STAGE_DIR"
|
|
mkdir -p "$STAGE_DIR/DEBIAN" "$STAGE_DIR/usr/local/bin" "$DIST_DIR"
|
|
|
|
install -m 0755 "$BUILD_DIR/slide" "$STAGE_DIR/usr/local/bin/slide"
|
|
|
|
cat > "$STAGE_DIR/DEBIAN/control" <<EOF
|
|
Package: ${PACKAGE_NAME}
|
|
Version: ${VERSION}
|
|
Section: graphics
|
|
Priority: optional
|
|
Architecture: ${ARCH}
|
|
Maintainer: slide build
|
|
Depends: libqt5core5a, libqt5gui5, libqt5widgets5, libqt5network5, libexif12, qt5-image-formats-plugins, libmosquitto1
|
|
Description: Lightweight slideshow for photo frames
|
|
Simple, lightweight slideshow designed for low power devices.
|
|
EOF
|
|
|
|
dpkg-deb --build "$STAGE_DIR" "$DIST_DIR/${PACKAGE_NAME}_${VERSION}_${ARCH}.deb"
|