-
Notifications
You must be signed in to change notification settings - Fork 30.3k
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
Enable ccache on Windows #56705
Open
StefanStojanovic
wants to merge
3
commits into
nodejs:main
Choose a base branch
from
JaneaSystems:mefi-ccache
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Enable ccache on Windows #56705
+55
−2
Conversation
This file contains 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
Prior to these changes compilation with ccache was broken because of the .h file regeneration in each compilation.
StefanStojanovic
added
doc
Issues and PRs related to the documentations.
windows
Issues and PRs related to the Windows platform.
build
Issues and PRs related to build files or the CI.
labels
Jan 22, 2025
Review requested:
|
nodejs-github-bot
added
install
Issues and PRs related to the installers.
needs-ci
PRs that need a full CI run.
tools
Issues and PRs related to the tools directory.
v8 engine
Issues and PRs related to the V8 dependency.
labels
Jan 22, 2025
jasnell
approved these changes
Jan 22, 2025
marco-ippolito
approved these changes
Jan 22, 2025
BridgeAR
approved these changes
Jan 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RSLGTM
github-actions
bot
removed
the
request-ci
Add this label to start a Jenkins CI on a PR.
label
Jan 22, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
build
Issues and PRs related to build files or the CI.
doc
Issues and PRs related to the documentations.
install
Issues and PRs related to the installers.
needs-ci
PRs that need a full CI run.
tools
Issues and PRs related to the tools directory.
v8 engine
Issues and PRs related to the V8 dependency.
windows
Issues and PRs related to the Windows platform.
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 continues an effort to enable Clang in the CI. While based on initial tests, it works, we want to make it as fast as possible. For that reason, this PR enables using ccache on Windows. The current cache we have in the CI, the clcache, is not compatible with Clang and is obsolete, so we could move fully to ccache in the CI in the future, but for Clang it is mandatory.
The initial work on this was done in #52126 and #52255 and that is the cornerstone of the changes suggested here. The main change is adding a new vcbuild option ccache which should be the path to the directory where ccache is installed (ccache.exe also needs to be renamed to cl.exe as explained in the docs).
When testing this, I noticed that one of the .h files, generated by V8 during the compilation was causing issues for ccache as its last modification time was later than cached PCH modification times. As a result, I made a simple patch to disable caching that file by using
__TIME__
.NOTE TO REVIEWERS - I know this is far from optimal, but was the only way I found to enable ccache on at least a part of the project. I'm looking forward to any suggestions on how to improve it. Thanks in advance.