obs-studio/build-aux
2024-05-10 16:51:56 -04:00
..
.functions CI: Add zsh-based build framework files for macOS 2023-07-17 19:49:18 +02:00
modules build-aux: Update Flatpak ntv2 module to libajantv2 2024-05-10 16:51:56 -04: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: Update Flatpak VPL modules 2024-05-10 16:51:56 -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