build(port): CMake improvements#3457
Merged
scarf005 merged 188 commits intocataclysmbn:uploadfrom Nov 15, 2023
Merged
Conversation
216ad8f to
9e56d53
Compare
00302db to
e7286d7
Compare
612a047 to
ff14808
Compare
b884c50 to
d68920c
Compare
b298f7e to
ecefac1
Compare
style(autofix.ci): automated formatting
4df8f31 to
f6f5ed9
Compare
1f45428 to
858bbe3
Compare
Contributor
Author
|
Aaaand it's done. 1 month, 20+ force-pushes and 180+ commits (after squashing). The new CMake builds pass all checks and are roughly equivalent to existing Makefile / Visual Studio builds. Clang-tidy failures are unrelated to changes here. |
scarf005
approved these changes
Nov 14, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SUMMARY: Build "[DDA Port] CMake improvements"
Purpose of change
Working towards #3113
Describe the solution
Cherry-pick almost everything from the following PRs:
I had to temporarily revert #3248 because of conflicts; I'll have to figure out how to reapply it in the future.
Additional changes:
uploadonly)brotlifeature fromfreetypepulled in by vcpkg because I couldn't get the executable to properly link tolibbrotlion one of the platforms, and disabling features of dependencies is broken in vcpkgendif()does not repeat the check inif()).uploadrather than on every PRTODO list
-DNDEBUG,-g1, optimization levels). Most likely I'm missing something there, doing test builds in VM gave very inconsistent results (up to being 10% faster then Makefile). Same inconsistent results were present when running jobs on this PR. MSYS2 is low-priority, since our main builds are MXE and MSVC, so I'm willing to overlook this for now.Reapply build(cmake): deduplicate library setup #3248- This will have to come later, when it's time to reorganize the project. I'd rather not introduce additional changes to the build structure while we're still burdened by the other build systems.Check out ccache crash on MSYS2Nevermind, it works now. Must've been the wind?Describe alternatives you've considered
Figuring all of this out by myself.
Testing
Things that were NOT tested because I plan to deal with them in later PRs:
Builds that have been tested manually in the process:
CI has tested the rest of CMake builds.
Additional context
In VSCode, I had to disable use of presets in the the Microsoft's CMake extension because it forced me to choose a preset and picked the default GCC toolchain, but didn't let me switch over to Clang while still using preset.