Skip to content
This repository has been archived by the owner on Jul 1, 2024. It is now read-only.

Update to support OBS Studio 29.1.x and 29.0.x fully #1042

Merged
merged 46 commits into from
May 14, 2023
Merged

Update to support OBS Studio 29.1.x and 29.0.x fully #1042

merged 46 commits into from
May 14, 2023

Conversation

Xaymar
Copy link
Owner

@Xaymar Xaymar commented May 14, 2023

Explain the Pull Request

  • Updates obs-studio to 29.1.0, then updates obs-studio to 29.1.1.
  • Enables LTO on the entire project, instead of leaving it up to an internal flag.
  • Adds patching support for obs-studio to get rid of some annoying (and/or invalid) defaults.
  • Splits each CI workflow by platform, instead of merging them into one.
  • Changes CI to rely on buildspec.json instead of DEPS_VERSION_WIN/DEPS_VERSION_MAC, which appears to be the way forward for obs-studio.
  • Fixed a bug in the copyright header generation when there was no prior header in the file.
  • Fixed compatibility with newer FFmpeg versions, as a define has been removed.
  • Features are now disabled based on their stability to improve release stability, and make releases available earlier. See this post for more information.
  • Fixed various issues with clang-format and clang-tidy by updating the submodule.
  • Fixed various issues with version() by updating the submodule and adapting to CMake's poor parameter parsing.
  • Updated the clang-format file to remove some useless styling.
  • Fixed obs-studio version not being written to the environment in CI, resulting in stale caches being re-used. All prior versions of StreamFX were technically built for obs-studio 28.0.0-rc1, instead of the expected version.

Completion Checklist

  • This has been tested on the following platforms:
    • MacOS 10.15
    • MacOS 11
    • MacOS 12
    • Ubuntu 20.04
    • Ubuntu 22.04
    • Windows 10
    • Windows 11
  • The copyright headers and license files have been updated.
  • I will maintain this for the forseeable future, and have added myself to CODEOWNERS.

Xaymar added 30 commits May 3, 2023 19:50
The underlying build system has changed. This only hotfixes the issue, but a proper fix must be implemented eventually.
Should fix the "'u': undeclared identifier" problem when code is generated from a shallow clone. Also fixes the issue where the clang submodule is required instead of optional.
Might fix the weird issue with additional compiler flags being set.
Why has the previous code worked? Did it ever work?
This splits the whole thing by the supported platforms to hopefully aid with future problem searching. While the combined script was nice, and allowed reducing the working overhead significantly, it also had collisions in what should have been defined.
The provided libobs-dev does not match CMake standards (LibObs instead of libobs like on all other platforms). It also does not provide the obs-frontend-api, or any other required files.
May help us figure out unexpected incompatibilities in the future. While we still require C++14 or later, and may even upgrade to C++17 eventually, this should address some concerns about compatibility.

Plus it makes it easier to support things like Flatpak
@Xaymar Xaymar marked this pull request as ready for review May 14, 2023 01:15
@Xaymar Xaymar merged commit b5a4adb into root May 14, 2023
7 of 8 checks passed
@Xaymar Xaymar deleted the patch/obs branch May 14, 2023 01:25
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant