mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-14 23:34:08 +00:00
73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# `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](https://github.com/obsproject/homebrew-tools/).
|
|
|
|
Example of use:
|
|
```sh
|
|
./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:
|
|
```sh
|
|
./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:
|
|
```sh
|
|
./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:
|
|
```sh
|
|
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
|