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.
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.
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.
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.
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.
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.
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.
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.
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.