02_build_obs_libs.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/bash
  2. ##############################################################################
  3. # Linux libobs library build 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. build_obs_libs() {
  12. status "Build libobs and obs-frontend-api"
  13. trap "caught_error 'build_obs_libs'" ERR
  14. check_ccache
  15. ensure_dir "${OBS_BUILD_DIR}"
  16. step "Configuring OBS build system"
  17. check_ccache
  18. cmake -S . -B plugin_${BUILD_DIR} -G Ninja ${CMAKE_CCACHE_OPTIONS} \
  19. -DCMAKE_BUILD_TYPE=${BUILD_CONFIG} \
  20. -DENABLE_PLUGINS=OFF \
  21. -DENABLE_UI=ON \
  22. -DENABLE_SCRIPTING=OFF \
  23. -DENABLE_PIPEWIRE=OFF \
  24. ${QUIET:+-Wno-deprecated -Wno-dev --log-level=ERROR}
  25. step "Building libobs and obs-frontend-api"
  26. cmake --build plugin_${BUILD_DIR} -t obs-frontend-api
  27. }
  28. build-obs-libs-standalone() {
  29. CHECKOUT_DIR="$(git rev-parse --show-toplevel)"
  30. if [ -f "${CHECKOUT_DIR}/CI/include/build_environment.sh" ]; then
  31. source "${CHECKOUT_DIR}/CI/include/build_environment.sh"
  32. fi
  33. PRODUCT_NAME="${PRODUCT_NAME:-obs-plugin}"
  34. OBS_BUILD_DIR="${CHECKOUT_DIR}/../obs-studio"
  35. source "${CHECKOUT_DIR}/CI/include/build_support.sh"
  36. source "${CHECKOUT_DIR}/CI/include/build_support_linux.sh"
  37. build_obs_libs
  38. }
  39. print_usage() {
  40. echo -e "Usage: ${0}\n" \
  41. "-h, --help : Print this help\n" \
  42. "-q, --quiet : Suppress most build process output\n" \
  43. "-v, --verbose : Enable more verbose build process output\n" \
  44. "--build-dir : Specify alternative build directory (default: build)\n"
  45. }
  46. build-obs-libs-main() {
  47. if [ -z "${_RUN_OBS_BUILD_SCRIPT}" ]; then
  48. while true; do
  49. case "${1}" in
  50. -h | --help ) print_usage; exit 0 ;;
  51. -q | --quiet ) export QUIET=TRUE; shift ;;
  52. -v | --verbose ) export VERBOSE=TRUE; shift ;;
  53. --build-dir ) BUILD_DIR="${2}"; shift 2 ;;
  54. -- ) shift; break ;;
  55. * ) break ;;
  56. esac
  57. done
  58. build-obs-libs-standalone
  59. fi
  60. }
  61. build-obs-libs-main $*