(Proof of concept) Re-implement scu_build without globbing.
#112548
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.
Our current SCU (single compile unit) implementation uses globbing to put files into shared targets.
In my mind, this is too complicated. Instead, I propose to simply use the
add_source_filescalls to group files.This simplifies the SCU system, and gives it a speed boost too:
masterscu-no-glob(17% / 45s improvement)In the future, this implementation could be expanded to auto-group subsequent
add_source_filescalls, to further reduce how many SCU files are generated.Or, we simply reduce the amount of subsequent
add_source_filescalls by grouping manually.TODO
This implementation needs to be cleaned up. In particular, the code probably needs a better home, the scu files need better names / paths, and we could probably use the new semantics to squeeze out more speed. I'm also not sure how expected it is to generate those
cppfiles on the fly.It also looks like it's failing on other systems. Probably just some internal paths that are SCU incompatible due to weird headers. Notably, it works on macOS.