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 PR adds ccache support to the framework and improves general build performance.
Of particular importance is keeping the CI runs efficient to conserve resources without sacrificing effectiveness. If they complete a bit faster too, that's a bonus :-)
Reduce CI installation overhead
Since we're using more CI cache space to cache builds, it's at a premium. Fortunately there's quite a lot of stuff we can remove so running a script (
clean-tools.py
) after tool installation (CI only) clears this out so it doesn't end up in the cache. In practice this saves about 1.4GB of (compressed) cache space.Also, for IDF4.3 we can reduce that to a single run for the standard
esp32
SOC.Installer improvements
Optional packages (e.g. clang-format) only required for Host builds, so don't install them otherwise.
Review Windows install scripts:
Add ccache support
I've never used ccache so wondered what it was doing in the install scripts. Certainly didn't seem to be used anywhere so thinking we could remove it...
Nope. Let's use it. Add
ENABLE_CCACHE
setting, and enable in CI builds.Stats (
ccache -sv
) shows half of the calls aren't cacheable.Turns out ccache doesn't support
-MM
which we use for generating header build dependency files. After some investigations turns out we can just use-MMD
which has several benefits:.d
files are generated at the same time as.o
filesNo rule to make target '...file.cpp', needed by '...file.cpp.d'. Stop.
. This no longer happens.sed
workaround for paths so makefile is simpler/faster.Note that a typical ccache installation may add soft links which override system compilers.
For example,
gcc
would actually run/usr/lib64/ccache/gcc
instead of/usr/bin/gcc
.If
ENABLE_CCACHE
isn't set then Sming overrides this behaviour (usingCCACHE_DISABLE
) to ensure behaviour consistent with other (cross-compiled) architectures.Fixes
Update ws_parser submodule. During testing I was getting some complaints about the particular commit not being available.
It looks like this repo. got rebased at some point and the current master has changed.
No change to content.
Python script fixes:
make ide-vscode
fails in Windows, and there's a regex fix toboardtool.py
.Fix fallthrough warning in LiveDebug sample.