-
-
Notifications
You must be signed in to change notification settings - Fork 9k
cmake: Clean-up pass and code optimization to prepare for Linux update #9769
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
f6284e6 to
98f792b
Compare
|
Some changes around shared UI code might conflicts with #9350. |
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.
Mostly questions seeking rationale and clarification. Builds locally on Windows 11. Haven't done any further in-depth testing.
98f792b to
430c85b
Compare
|
Force-pushed an update to address some reviews, also:
|
430c85b to
23a727a
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.
Second pass.
9d072ea to
df3ae0f
Compare
df3ae0f to
d11b33f
Compare
d11b33f to
dec1427
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.
Quick review of files I hadn't marked viewed since last review.
3aa635a to
ac34889
Compare
I think this was left in for now to ease the transition of submodules to removing their use of it. We can remove the actual CMake function in the next major release. In any case, the PR description may need updating. |
Updated the description - Qt5 was indeed removed in the parts that resolve dependencies of the main app but the helper function is still there. |
ac34889 to
2eb0862
Compare
|
Rebased and squashed commits into logical units. |
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.
Local tests seemed fine. CI is green.
2eb0862 to
dd60f14
Compare
find_qt was necessary during the transitional period between Qt5 and Qt6. With Qt6 being the only supported Qt version (for open source) for the time being, code complexity can be reduced for easier maintenance.
Also manually updates some CMake script files to make code more readable.
Allows the customized UI elements used by OBS Studio to more cleanly be integrated into consumers of the same elements, mainly frontend plugins in the main source tree.
Also updates CMake formatting with manual format choices.
dd60f14 to
9e7bddb
Compare
Description
Cleans up the CMake code-base based on experience after the recent CMake build system updates:
cmake-formator for updated CMake functions whose updated signatures it doesn't supportNEWby CMake 3.22+ anyway.Important
An accompanying update of
obs-browserwill alsorequires the CEF wrapper library to be re-built for Windows following the proper procedure outlined in the documentation: https://bitbucket.org/chromiumembedded/cef/wiki/LinkingDifferentRunTimeLibraries.md
Without updating the submodule the project will still build without issues.
Motivation and Context
Moving platform-specific source file and library dependency information into global blocks with generator expressions makes the requirements more explicit (and also groups all source code dependencies into one logical place), removing the need to search for their inclusion in other parts of the file (and reduces amount if code branches, which also improves
cmake-lintchecks).Changes are mostly cosmetic or attempt to reduce complexity by removing seldom-used options or features introduced in recent updates. Windows-specific changes also aim to make more informed decisions about which warnings are suppressed and why.
How Has This Been Tested?
Preliminary tests looked fine, specific tests are still pending:
Types of changes
Checklist: