02_build_obs_libs.sh 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. ##############################################################################
  3. # macOS libobs library build function
  4. ##############################################################################
  5. #
  6. # This script file can be included in build scripts for macOS 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. ensure_dir "${OBS_BUILD_DIR}"
  15. step "Configuring OBS build system"
  16. check_ccache
  17. cmake -S . -B plugin_${BUILD_DIR} -G Ninja ${CMAKE_CCACHE_OPTIONS} \
  18. -DCMAKE_OSX_ARCHITECTURES="${CMAKE_ARCHS}" \
  19. -DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-${CI_MACOSX_DEPLOYMENT_TARGET}} \
  20. -DOBS_CODESIGN_LINKER=${CODESIGN_LINKER:-OFF} \
  21. -DCMAKE_BUILD_TYPE=${BUILD_CONFIG} \
  22. -DENABLE_PLUGINS=OFF \
  23. -DENABLE_UI=ON \
  24. -DENABLE_SCRIPTING=OFF \
  25. -DCMAKE_PREFIX_PATH="${DEPS_BUILD_DIR}/obs-deps" \
  26. ${QUIET:+-Wno-deprecated -Wno-dev --log-level=ERROR}
  27. step "Building libobs and obs-frontend-api"
  28. cmake --build plugin_${BUILD_DIR} -t obs-frontend-api
  29. }
  30. build-obs-libs-standalone() {
  31. CHECKOUT_DIR="$(/usr/bin/git rev-parse --show-toplevel)"
  32. if [ -f "${CHECKOUT_DIR}/CI/include/build_environment.sh" ]; then
  33. source "${CHECKOUT_DIR}/CI/include/build_environment.sh"
  34. fi
  35. PRODUCT_NAME="${PRODUCT_NAME:-obs-plugin}"
  36. OBS_BUILD_DIR="${CHECKOUT_DIR}/../obs-studio"
  37. source "${CHECKOUT_DIR}/CI/include/build_support.sh"
  38. source "${CHECKOUT_DIR}/CI/include/build_support_macos.sh"
  39. check_macos_version
  40. check_archs
  41. build_obs_libs
  42. }
  43. print_usage() {
  44. echo -e "Usage: ${0}\n" \
  45. "-h, --help : Print this help\n" \
  46. "-q, --quiet : Suppress most build process output\n" \
  47. "-v, --verbose : Enable more verbose build process output\n" \
  48. "-a, --architecture : Specify build architecture (default: universal, alternative: x86_64, arm64)\n" \
  49. "--build-dir : Specify alternative build directory (default: build)\n"
  50. }
  51. build-obs-libs-main() {
  52. if [ -z "${_RUN_OBS_BUILD_SCRIPT}" ]; then
  53. while true; do
  54. case "${1}" in
  55. -h | --help ) print_usage; exit 0 ;;
  56. -q | --quiet ) export QUIET=TRUE; shift ;;
  57. -v | --verbose ) export VERBOSE=TRUE; shift ;;
  58. -a | --architecture ) ARCH="${2}"; shift 2 ;;
  59. --build-dir ) BUILD_DIR="${2}"; shift 2 ;;
  60. -- ) shift; break ;;
  61. * ) break ;;
  62. esac
  63. done
  64. build-obs-libs-standalone
  65. fi
  66. }
  67. build-obs-libs-main $*