03_package_obs.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/bin/bash
  2. ##############################################################################
  3. # Linux libobs plugin package function
  4. ##############################################################################
  5. #
  6. # This script file can be included in build scripts for Linux or run directly
  7. #
  8. ##############################################################################
  9. # Halt on errors
  10. set -eE
  11. package_obs() {
  12. status "Create Linux debian package"
  13. trap "caught_error 'package app'" ERR
  14. ensure_dir "${CHECKOUT_DIR}"
  15. step "Package OBS..."
  16. cmake --build ${BUILD_DIR} -t package
  17. DEB_NAME=$(find ${BUILD_DIR} -maxdepth 1 -type f -name "obs*.deb" | sort -rn | head -1)
  18. DEBUG_NAME="${DEB_NAME//.deb/-dbgsym.ddeb}"
  19. if [ "${DEB_NAME}" ]; then
  20. mv "${DEB_NAME}" "${BUILD_DIR}/${FILE_NAME}"
  21. if [ "${DEBUG_NAME}" ]; then
  22. mv "${DEBUG_NAME}" "${BUILD_DIR}/${FILE_NAME//.deb/-dbgsym.ddeb}"
  23. fi
  24. else
  25. error "ERROR No suitable OBS debian package generated"
  26. fi
  27. }
  28. package-obs-standalone() {
  29. PRODUCT_NAME="OBS-Studio"
  30. CHECKOUT_DIR="$(git rev-parse --show-toplevel)"
  31. DEPS_BUILD_DIR="${CHECKOUT_DIR}/../obs-build-dependencies"
  32. source "${CHECKOUT_DIR}/CI/include/build_support.sh"
  33. source "${CHECKOUT_DIR}/CI/include/build_support_linux.sh"
  34. if [ -z "${CI}" ]; then
  35. step "Fetch OBS tags..."
  36. git fetch --tags origin
  37. fi
  38. GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
  39. GIT_HASH=$(git rev-parse --short=9 HEAD)
  40. GIT_TAG=$(git describe --tags --abbrev=0)
  41. UBUNTU_VERSION=$(lsb_release -sr)
  42. if [ "${BUILD_FOR_DISTRIBUTION}" = "true" ]; then
  43. VERSION_STRING="${GIT_TAG}"
  44. else
  45. VERSION_STRING="${GIT_TAG}-${GIT_HASH}"
  46. fi
  47. FILE_NAME="obs-studio-${VERSION_STRING}-ubuntu-${UBUNTU_VERSION}.deb"
  48. package_obs
  49. }
  50. print_usage() {
  51. echo -e "Usage: ${0}\n" \
  52. "-h, --help : Print this help\n" \
  53. "-q, --quiet : Suppress most build process output\n" \
  54. "-v, --verbose : Enable more verbose build process output\n" \
  55. "--build-dir : Specify alternative build directory (default: build)\n"
  56. }
  57. package-obs-main() {
  58. if [ -z "${_RUN_OBS_BUILD_SCRIPT}" ]; then
  59. while true; do
  60. case "${1}" in
  61. -h | --help ) print_usage; exit 0 ;;
  62. -q | --quiet ) export QUIET=TRUE; shift ;;
  63. -v | --verbose ) export VERBOSE=TRUE; shift ;;
  64. --build-dir ) BUILD_DIR="${2}"; shift 2 ;;
  65. -- ) shift; break ;;
  66. * ) break ;;
  67. esac
  68. done
  69. package-obs-standalone
  70. fi
  71. }
  72. package-obs-main $*