build.sh 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env bash
  2. set -e
  3. DIR="$(cd "$(dirname "$0")" && pwd)"
  4. BUILD_DIR="$DIR/build"
  5. JOBS=${JOBS:-$(nproc)}
  6. CLEAN=0
  7. REBUILD=0
  8. usage() {
  9. cat << 'EOF'
  10. Usage: ./build.sh [options]
  11. Options:
  12. -c, --clean Clean build from scratch
  13. -r, --rebuild Reconfigure cmake (delete CMakeCache) then rebuild
  14. -j N Number of parallel jobs (default: nproc)
  15. -h, --help Show this help
  16. EOF
  17. }
  18. while [ $# -gt 0 ]; do
  19. case "$1" in
  20. -c|--clean) CLEAN=1 ;;
  21. -r|--rebuild) REBUILD=1 ;;
  22. -j) JOBS="$2"; shift ;;
  23. -h|--help) usage; exit 0 ;;
  24. *) echo "Unknown option: $1"; usage; exit 1 ;;
  25. esac
  26. shift
  27. done
  28. if [ "$CLEAN" -eq 1 ]; then
  29. echo "Cleaning $BUILD_DIR ..."
  30. rm -rf "$BUILD_DIR"
  31. fi
  32. if [ "$REBUILD" -eq 1 ]; then
  33. rm -rf "$BUILD_DIR"
  34. fi
  35. if [ ! -f "$BUILD_DIR/Makefile" ]; then
  36. echo "Configuring with cmake ..."
  37. cmake -B "$BUILD_DIR" "$DIR"
  38. fi
  39. echo "Building with $JOBS jobs ..."
  40. cmake --build "$BUILD_DIR" -j "$JOBS"
  41. echo "Build complete: $BUILD_DIR/rtsp_multi_view"