-
Notifications
You must be signed in to change notification settings - Fork 283
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
build(port): CMake improvements #3457
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
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. |
91175cb
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:
upload
only)brotli
feature fromfreetype
pulled in by vcpkg because I couldn't get the executable to properly link tolibbrotli
on one of the platforms, and disabling features of dependencies is broken in vcpkgendif()
does not repeat the check inif()
).upload
rather 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.