Commit graph

1745 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
ace861c578 tools: Fix header generation for new files 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
acef006198 ci, tools: Use new buildspec.json for depedendencies 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
fa8d66b951 code: Disable useless alignment styling and update standard 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
c000061758 cmake: Fix version(REQUIRE) statement 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
af41557e4d cmake: Require CMake 3.26 configuration 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
d2dbb3335d ci: Remove libOBS cache
Might fix the weird issue with additional compiler flags being set.
2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
0476185a65 code: Fix support for libAVCodec 59.x and beyond 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
5ce59b4c12 cmake: Update clang integration to 1.0 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
81ed7241ff cmake, code: Remove Displacement Filter completely 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
3bc23341d5 cmake: Disable features by default based on their stability 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
eea4cadca2 cmake: Improve bootstrapping and versioning code
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.
2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
e32bd8cdae ci: Create RelWithDebInfo builds instead of Debug 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
132ddc1d51 third-party: Update to OBS Studio 29.1
The underlying build system has changed. This only hotfixes the issue, but a proper fix must be implemented eventually.
2023-05-14 03:25:07 +02:00
Xaymar
0f739135e6 project: Adjust issue templates
Signed-off-by: Xaymar <info@xaymar.com>
2023-04-24 16:17:27 +02:00
Michael Fabian 'Xaymar' Dirks
5b2e28a723 code: Disable profiling on MacOS
This may address a nullptr crash on MacOS with several features.
2023-04-05 19:21:13 +02:00
Michael Fabian 'Xaymar' Dirks
9735e1bcec ui/obs-browser-widget: Pull in browser-panel.hpp to fix MacOS
MacOS complains that QCefWidget is an undefined type, while all other compilers are fine.
2023-04-05 19:08:31 +02:00
Michael Fabian 'Xaymar' Dirks
0fa12f1029 ui/obs-browser-widget: Switch header order to fix Qt AutoMoc bug
Qt's CMake integration does not pass the C++ standard to AutoMoc, resulting in weird parsing issues (see https://bugreports.qt.io/browse/QTBUG-73263).
2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
db23069eb6 ui/obs-browser-widget: Add missing includes for Unix compilers 2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
ce19d25d71 ui/obs-browser-widget: Fix bad include path for standalone builds 2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
5a58aa8a6b ui/obs-browser-widget: Fix strange layout issue in Qt6
When a QCefWidget is alone and all by itself, no layout updates are performed on the "window". This causes a problem where it just stays in place, instead of moving with the rest of the elements. The fix to this appears to be to just add a different Qt widget into the layout.

Looks stupid, is stupid, but works anyway. Qt is weird.
2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
3187a165ba ui/obs-browser-widget: Allow directly modifying underlying widget 2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
d073889126 ui/obs-browser-widget: Prevent unwanted crashes or corruptions on Wayland
The obs-browser module does not work well on Wayland, so removing it there appears to be the best option for now.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
f8dc0532e1 cmake: Require an up to date C standard as well, plus extensions
Fixes some strange compiler issues.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
dadd56b31d ui/obs-browser-widget: Integrate OBS Browser Source as a Qt Widget
Provides us with an easy and clean way to use Browser Sources as a Qt enabled widget.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
54859e9f14 util/library: Allow loading of obs_module_t
Allows us to pass an obs_module_t into util::library::load() for cleaner code. This requires an additional flag so we don't unload a module that is still in use by libOBS.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
10921f56e3 ci: Add validation for Copyright headers
Strictly enforce up-to-date copyright headers using CI/CD.
2023-04-05 18:59:08 +02:00
Michael Fabian 'Xaymar' Dirks
5a3954ae0e project: Fix License, License headers and Copyright information
Fixes several files incorrectly stated a different license from the actual project, as well as the copyright headers included in all files. This change has no effect on the licensing terms, it should clear up a bit of confusion by contributors. Plus the files get a bit smaller, and we have less duplicated information across the entire project.

Overall the project is GPLv2 if not built with Qt, and GPLv3 if it is built with Qt. There are no parts licensed under a different license, all have been adapted from other compatible licenses into GPLv2 or GPLv3.
2023-04-05 18:59:08 +02:00
Michael Fabian 'Xaymar' Dirks
c9ff7093d4 tools: Rate limit operation and fix strange buffer issues
Slightly relaxes the necessary amount of memory, as we are no longer loading everything all at once. Also for unknown reasons git interferes with other git processes running in the same repository only on Linux. This causes Linux runs of this tool to have strange issues detecting the authors, as git just quits with a success error code. Fun.
2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks
a091b08259 tools: Don't use resolved path unless necessary 2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks
d1ffa2c942 tools: Safely handle Ctrl-C and ignore some additional files
Don't want to scan files we don't own. Not the greatest solution, but it does work.
2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks
bd8a574e7a tools: Actually check ignored files 2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks
75e13996f1 tools: Only check for the section start/end signal, not the entire line 2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
d1e3b6d0d1 tools: Add tool to generate and update copyright headers
This tool aids in the proper upkeep of copyright headers for changes contained within this repository. It will generate a new header, or replace the original one if one exists. As this task has often been forgotten by both developers and contributors, having a tool manage this will hopefully improve the situation.

The choice of Node.JS for this tool was deliberate, as many developers and CI solutions already have Node.JS in a reasonably up to date version installed. Additionally the versatility of Node.JS eliminates the need to create custom or platform specific solutions for tasks that are relatively simple. While the performance is not ideal, it still completes its task relatively quickly.
2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
c80a19ae3c project: Update README to match latest info 2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
6c4df1e7e5 ui: Remove duplicate media files 2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
7f3ab14128 cmake, code: Remove unused files
These files are not used, and serve no purpose.
2023-04-05 18:59:05 +02:00
Michael Fabian 'Xaymar' Dirks
dd3b1c279c ci: Cache previous builds for quicker iterative development
A full clean build is only required for releases, so opting for iterative builds will speed up CI builds significantly. As we can re-use caches from across branches, opting for the first matching key, this means that any branch should re-use the closest match from the main branch.

Downside is that this may break if there is a change to the CMakeLists.txt file, since the project configuration is now different. Might be fixable, but that's not the aim of these changes.
2023-04-05 18:59:05 +02:00
Michael Fabian 'Xaymar' Dirks
09e8e4b439 ci: Use multi-config generators to improve build speed
There's no need to split by configuration type on proper generators, which slightly speeds up the build. Downside is that we can't get builds for both Debug and RelWithDebInfo - though we only need the latter anyway.
2023-04-05 18:59:04 +02:00
Michael Fabian 'Xaymar' Dirks
587cefe5ce ci: Don't validate clang-tidy
Turns out to be very pointless, and usually doubles or triples the overall build time with no actual gain.
2023-04-05 18:59:04 +02:00
Michael Fabian 'Xaymar' Dirks
04e29a94b9 ci: Remove build variants that will never be used
Building for Qt5 is not necessary on Windows, MacOS or Ubuntu 22.04, as there are no supported OBS Studio versions that use these.
2023-04-05 18:59:04 +02:00
Michael Fabian 'Xaymar' Dirks
e8ec23c4d4 obs/source-tracker: Fix leaked source references
This functionality broke at some point in the past without anyone noticing, resulting in most dropdowns that rely on this functionality being blank.

Fixes #1025
2023-04-05 18:59:03 +02:00
Michael Fabian 'Xaymar' Dirks
5e307a8e36 project: Adjust clang-tidy configuration 2023-04-05 18:59:03 +02:00
tt2468
20e1a94eba util/threadpool: Initialize worker count to 0
Many platforms (and/or kernels) don't zero memory before it is acquired, resulting in uninitialized memory being used to store critical content. This made the threadpool assume it had an infinite number of threads to work with, despite actually having spawned none.

Fixes #1017
2023-04-05 18:59:03 +02:00
Michael Fabian 'Xaymar' Dirks
980c15efa6 ci: Improve/Fix MacOS and Ubuntu builds
Builds on Ubuntu incorrectly used gcc instead of g++ for C++ building, resulting in files that should never have worked. Switching this to g++ should drastically improve the stability of StreamFX on Linux.

Also on MacOS we use Homebrew to install the remaining tools, but failed to correctly install a specific version of it. As Homebrew only installs the latest version of a package to the global search path, this adjustment should fix the issue with clang-format.

Finally since I was already at it, I added clang-tidy integration and made the clang integration global. This way it does not need to be called on a per-project basis any more.
2023-04-05 18:59:03 +02:00
Michael Fabian 'Xaymar' Dirks
2871b9ccef cmake: Define global clang-tidy and clang-format targets 2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks
d55d086a6d ci: Use https instead of http 2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks
ad422895fa updater: Compare all parts of the version number
This should fix the case where comparing '0.12.0b164' with '0.12.0a169' results in it claiming the former is newer. Also should fix the case where stable releases would always be treated as older.

Fixes #1015
2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks
b15fd787b6 cmake: Require generation of PATCH and TWEAK variables
Might fix the missing PROJECT_VERSION_TWEAK issue that has been encountered.
2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks
b48c1db138 third-party: OBS Studio 29.0.0 uses 2023-01-06
The repository is still pointing at the previous obs-deps version, resulting in runtime link resolving errors.
2023-04-05 18:59:01 +02:00
Michael Fabian 'Xaymar' Dirks
64aeba7e14 ci: Allow manual OBS Deps Version and remove all set-output 2023-04-05 18:58:59 +02:00