Build System Improvements#663
Merged
Merged
Conversation
wvpm
previously approved these changes
May 11, 2026
a5a7953 to
f3e90d0
Compare
Added Variant-dir-aware glob Added deterministic platform option order Added deterministic build module resolution Added Precompiled Header for MSVC
f3e90d0 to
69d0784
Compare
Spartan322
approved these changes
May 12, 2026
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.
This adds:
Adds CRT aware file suffix
Per config build dir
Out-of source build dir
Variant only CPPPATH
Precompiled header for MSVC
This improves the build time a lot.
The following steps were ran in order once before and after this PR:
Iterative builds are way faster, saving up to 96% on incremental builds.
It stores object files not next to source files anymore but stores them in a separate build directory which different directories for different build configurations. This means if you compile a debug build, then a release build and then a debug build the second debug build is fast now because the object files of the last debug build were still kept.
On Windows one issue was that obj files did not have the CRT (MD/MT) in their file names which is now added. On windows if you build and run the simulations tests they build with MT, the GDExtension builds with MD though. Building the extension after the tests causes a compile error as it tries to reuse the object files that were built with the wrong CRT instead of rebuilding them.
This pull request requires the following PRs to be merged first:
OpenVicProject/lexy-vdf#30
OpenVicProject/OpenVic-Dataloader#105
OpenVicProject/scripts#33
OpenVicProject/OpenVic-Simulation#722