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 the "Unity Build" scons options
scu_build
andscu_limit
from the Godot build system. For the most part this works the same way as it does in Godot.It was pretty clear to me from looking at the ClangBuildAnalyzer results that 90% of the time spent compiling godot-cpp was spent parsing redundant header files in the 900+ generated cpp files that were getting compiled individually. It told me that
class_db.hpp
was being included over 1000 times and that clang was taking around 10x as much time in the frontend than it was in the backend, which usually means it's parsing the same headers over and over again instead of actually generating code.Compiling a clean build on my computer with
scons scu_build=yes scu_limit=256
takes 32.93 seconds.Just using
scons
takes 124.75 seconds.This makes compile time 73% faster on my computer.