-
-
Notifications
You must be signed in to change notification settings - Fork 9k
cmake: Update Linux build scripts to new 3.0 build path #9787
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
35f2103 to
84d4c4f
Compare
|
CMake 3.0 does not provide support for system ftl-sdk install. |
|
Made a packaging test build on Arch Linux and many headers are missing as it is.
I didn't dig further but for some reason obs-browser-page locale file are no longer installed, |
|
I forgot to mention, the pkg-config file for libobs is no longer installed. |
We should add a handcrafted pkg-config file - generating it from CMake will break the moment generator expressions are used in the dependency graph (or at the very least make it complicated to generate one). Some elements might be generated automatically (e.g. version) but I'm happy to add that if someone can provide me the template file for it. |
ba5b83a to
73ec829
Compare
|
You should force the Flatpak to build with CMake 3.0 (without preset), there is many issues not revealed in CI because of that. |
I deliberately not updated that yet because I wanted to leave that to you or @GeorgesStavracas to update when you can support the migration. |
I will not debug this post merge, this should pass all Linux CI with CMake 3.0. Also what migration ? |
When this PR is merged, it will not automatically default to the new CMake build variant if no preset is selected, it is "opt-in" (like it is on Windows right now). That way packagers/maintainers can chose when to make the switch and report bugs that might not have been discovered during review without breaking the ability to still generate packages. That timeframe until either a preset is required or the legacy code paths are removed is the migration period (so far we waited a full release cycle to remove the legacy path for macOS, Windows legacy and x86 slices might be removed with the version after the next) so the Flatpak update does not have to occur at the same time but can happen at a later point. That's up to the Flatpak maintainers to decide and adapt. |
|
AJA is broken, on Flatpak and Arch Linux. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review of the GIO finder with suggestions to make it work correctly.
That might require explicitly setting the |
|
Fails to build on linux? |
73ec829 to
3d626f2
Compare
|
PR has been rebased and updated but still requires the browser and websocket submodules to be updated first. |
975e1b8 to
15f890a
Compare
|
@PatTheMav and I did some off-thread testing and debugging and found a few lingering items to fix up. Will re-check this "soon". |
f52ab63 to
197659a
Compare
197659a to
c490439
Compare
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or greater, old functionality remains unchanged.
Also silences acknowledged compile warnings introduced by the updated compiler settings in the CMake update.
Also adds source package generation and updates Cirrus CI script.
c490439 to
218a9f2
Compare
RytoEX
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good on Windows 11. I tested on Ubuntu earlier today. If we missed something or if anything is not working it will surely be brought to our attention.


Description
Completes the migration of OBS Studio's build system to the updated CMake 3.0 build path introduced to macOS and Windows before.
Important
This PR is directly based on top of #9769, which should be reviewed and merged first, at which point a rebase will reduce the amount of changes introduced by this PR.
Additional squashing of commits will be done after reviews are finished.
This PR builds on all the systems and methods introduced for other platforms before and extends it:
ffversion.h)x264_config.h)mbedtls/version.h)pkg-confighints or CMake's build in dependency detectionNote
Lower CMake version boundary is not increased by this PR, the minimum required version on Linux will still be CMake 3.22.
Fixes #7407.
Fixes #7972.
Closes #10008.
Motivation and Context
Remove legacy code and improve CMake codebase for Linux (and FreeBSD) and achieve parity with Windows and macOS.
How Has This Been Tested?
Tested on Ubuntu 23.04 and FreeBSD 13.2.
Types of changes
Checklist: