Files
obs-studio/build-aux
tytan652andRyan Foster 2bd23cd50d libobs,cmake: Replace vendored SIMD Everywhere by prefix/system install
SIMD Everywhere finder needs to be installed alongside libobs CMake
package since its headers depends on it.

C++ cmath header is included on Windows on ARM to ensure that all math
functions are correctly defined when included in C++ code.
https://github.com/simd-everywhere/simde/issues/1304

macOS intrinsics is included to make sure that no redefinition error
happens.
2025-08-21 15:22:08 -04:00
..
2024-09-12 14:20:28 -04:00

build-aux folder

This folder contains:

  • Various formatting scripts:
    • run-clang-format which formats C/C++/ObjC/ObjC++ files
    • run-gersemi 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-gersemi

This script allows to check the formatting and/or format of the CMake files and requires ZSH and gersemi Python package.

Example of use:

./build-aux/run-gersemi

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