Skip to content
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
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

StefanStojanovic
Copy link
Contributor

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.

Prior to these changes compilation with ccache was broken because of
the .h file regeneration in each compilation.
@StefanStojanovic 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
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/gyp
  • @nodejs/security-wg
  • @nodejs/v8-update

@nodejs-github-bot 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 jasnell added the request-ci Add this label to start a Jenkins CI on a PR. label Jan 22, 2025
Copy link
Member

@BridgeAR BridgeAR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSLGTM

@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jan 22, 2025
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants