iamscottxu / obs-deps

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

obs-deps

Scripts to build and package dependencies for OBS on CI

macOS (10.13+ for x86_64, 11.0 for arm64)

lib git commit version
aom Google Source 3.2.0
ffmpeg ffmpeg.org 4.4.1
libfreetype Sourceforge 2.10.4
libjansson Petri Lehtinen 2.13.1
libluajit GitHub 2.1
libmbedtls GitHub 2.24.0
libogg GitHub 1.3.5
libopus GitHub 1.3.1-93-gdfd6c88a
libpng Sourceforge 1.6.37
librist 0b1aaf9 Master branch
librnnoise 90ec41e Master branch
libsrt GitHub 1.4.1
libtheora xiph.org 1.1.1
libvorbis xiph.org 1.3.7
libvpx GitHub 1.10.0
libx264 GitHub r3059
ntv2 GitHub 16.1
Qt Qt.io 5.15.2

Notes

Prerequisites

Build steps

  • Checkout obs-deps from GitHub:
git clone https://github.com/obsproject/obs-deps.git
  • Enter the obs-deps directory
  • Run bash ./CI/build-deps-macos.sh to build main dependencies
  • Run bash ./CI/build-qt-macos.sh to build Qt dependency

Usage

  • Create a destination directory for the dependencies (e.g. obs-deps)
  • Unpack the dependencies into this directory (e.g. via XZ_OPT=-T0 tar -xf macos-deps-VERSION-universal.tar.xz -C obs-deps - replace VERSION with the downloaded/desired version)
  • Repeat the same for the Qt dependencies
  • IMPORTANT: Remove the quarantine attribute from the downloaded Qt dependencies by running xattr -r -d com.apple.quarantine obs-deps
  • Use obs-deps as part of CMAKE_PREFIX_PATH when running cmake for OBS:
cmake -DCMAKE_PREFIX_PATH="some_other_path;obs-deps" [..]

Contributing

  • Add/edit seperate build scripts for every dependency in the CI/[OPERATING SYSTEM/ directory
  • For new dependencies:
    • Create the sha256sum of the downloaded dependency archive
    • Add the dependency version as [DEPENDENCY_NAME]_VERSION and the downloaded archive hash as [DEPENDENCY_NAME]_HASH to the GitHub actions workflow in .github/workflows/main.yml as well as the main build script in CI/build-deps-macos.sh.
  • For existing dependencies:
    • Always update the sha256sum of the updated dependency archive as well as the version
  • Patches need to be placed either in the patches directory (if applied for all OS) or inside the patches directory for a specific OS
    • Generate patches by running diff -Naur [OLD_FILE] [NEW_FILE]
    • Fixup paths in the patch file to a path relative from the dependency's source directory, e.g ./src/FILE.c (the ./ is important)

About

License:MIT License


Languages

Language:Shell 68.2%Language:PowerShell 29.3%Language:Python 1.2%Language:CMake 1.2%Language:Ruby 0.1%Language:C 0.0%