obs-studio/build-aux
tytan652 5f1d60b1a0 build-aux: Disable DeckLink in the Flatpak
Since the Flatpak became part of the repo, nothing has changed on
BlackMagic side.

DeckLink libraries are still not redistributable and without stable
download link so even extra-data is not usable.

This makes enabling DeckLink feature in the Flatpak impossible without
involving customization on the end-user side which is not how Flatpak is
designed for.
2024-05-08 18:04:14 -04:00
..
.functions CI: Add zsh-based build framework files for macOS 2023-07-17 19:49:18 +02:00
modules CI,build-aux: Add uthash on Linux 2024-04-07 10:01:25 +10:00
steam build-aux: Add shader cache cleanup to steam uninstall script 2023-07-23 02:00:04 +02:00
.run-format.zsh CI: Update clang-format version to 17.0.3 2024-03-11 15:55:30 -04:00
com.obsproject.Studio.json build-aux: Disable DeckLink in the Flatpak 2024-05-08 18:04:14 -04:00
format-manifest.py CI: Add new repository actions for GitHub 2023-07-17 20:09:52 +02:00
README.md build-aux: Improve documentation 2023-12-16 18:10:51 -06:00
run-clang-format CI: Add zsh-based build framework files for macOS 2023-07-17 19:49:18 +02:00
run-cmake-format CI: Add zsh-based build framework files for macOS 2023-07-17 19:49:18 +02:00
run-swift-format CI: Add zsh-based build framework files for macOS 2023-07-17 19:49:18 +02:00

build-aux folder

This folder contains:

  • Various formatting scripts:
    • run-clang-format which formats C/C++/ObjC/ObjC++ files
    • run-cmake-format which formats CMake files
    • run-swift-format which formats Swift files
    • format-manifest.py which formats Flatpak manifest JSON files
  • The Flatpak manifest used to build OBS Studio
  • Files used for Steam packaging

Formatting scripts

run-clang-format

This script allows to check the formatting and/or format of C/C++/ObjC/ObjC++ files and requires ZSH and a specific version of clang-format.

If the script does not find the latter it will return the required version, we provide clang-format Homebrew formulas in our homebrew-tools repo.

Example of use:

./build-aux/run-clang-format

run-cmake-format

This script allows to check the formatting and/or format of the CMake files and requires ZSH and cmakelang (cmake-format) Python package.

Example of use:

./build-aux/run-cmake-format

run-swift-format

This script allows to check the formatting and/or format of the Swift files and requires ZSH and swift-format.

Example of use:

./build-aux/run-swift-format

format-manifest.py

This script allows to check the formatting and/or format of the Flatpak manifest and its modules.

Example of use:

python3 ./build-aux/format-manifest.py com.obsproject.Studio.json

OBS Studio Flatpak Manifest

The manifest is composed of multiple files:

  • The main manifest com.obsproject.Studio.json
  • The modules folder which contains OBS Studio dependencies modules

Manifest modules

Modules are ordered/dispatched in numbered categories following a short list of rules:

  • A module must not depend on another module from the same category, so a module can only depend on modules from lower numbered categories.
  • A module without dependencies must be placed in the highest numbered category in use, excluding categories meant for specific types of dependency.

Actual categories:

  • 99-: CEF
  • 90-: Headers-only libraries that are dependencies of only OBS Studio
  • 50-: Modules that are dependencies of only OBS Studio
  • 40-: Modules that are dependencies of the 50- category
  • 30-: FFmpeg
  • 20-: Modules that are dependencies of FFmpeg
  • 10-: Modules that are dependencies of the 20- category