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

Fix mozjs-sys always being out of date #524

Merged
merged 2 commits into from
Nov 22, 2024
Merged

Conversation

jschwe
Copy link
Member

@jschwe jschwe commented Nov 12, 2024

  • src/rustfmt.toml does not exist, so always out of date
  • the configure script is touched by the makefile, so the second build will always be out of date, even without changes.
  • bindgen::CargoCallbacks will by default tell Cargo to rerun the build-script if any of the included files change.
    In our case some of the included files are generated by the build-script, so their mtime will always be newer than
    when the build-script last ran causing cargo to needlessly rerun the build-script. Writing a customized Callback that ignores generated include files avoids this problem

@mrobinson
Copy link
Member

Great investigation work. I'm really looking forward to this change.

@jschwe jschwe changed the title Draft. Fix mozjs-sys always being out of date: Fix mozjs-sys always being out of date: Nov 22, 2024
@jschwe jschwe marked this pull request as ready for review November 22, 2024 10:44
jschwe and others added 2 commits November 22, 2024 13:04
- `src/rustfmt.toml` does not exist, so always out of date
- the configure script is touched by the makefile, so the
  second build will always be out of date, even without changes.
- bindgen::CargoCallbacks will by default tell Cargo to rerun
  the build-script if any of the included files change.
  In our case some of the included files are generated by the
  build-script, so their mtime will always be newer than
  when the build-script last ran causing cargo to needlessly
  rerun the build-script.
  Writing a customized Callback that ignores generated include
  files avoids this problem

Signed-off-by: Jonathan Schwender <[email protected]>
Signed-off-by: Jonathan Schwender <[email protected]>
@jschwe jschwe changed the title Fix mozjs-sys always being out of date: Fix mozjs-sys always being out of date Nov 22, 2024
Copy link
Member

@jdm jdm left a comment

Choose a reason for hiding this comment

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

Very nice!

@mrobinson mrobinson added this pull request to the merge queue Nov 22, 2024
Merged via the queue into servo:main with commit 18ab014 Nov 22, 2024
27 checks passed
@jschwe jschwe deleted the build-system branch November 22, 2024 15:07
jschwe added a commit to jschwe/servo that referenced this pull request Nov 22, 2024
Companion PR to servo/mozjs#524
This should reduce rebuilds when not using the prebuilt
artifact (e.g. when `debug-mozjs` is true)

Signed-off-by: Jonathan Schwender <[email protected]>
github-merge-queue bot pushed a commit to servo/servo that referenced this pull request Nov 22, 2024
Companion PR to servo/mozjs#524
This should reduce rebuilds when not using the prebuilt
artifact (e.g. when `debug-mozjs` is true)

Signed-off-by: Jonathan Schwender <[email protected]>
github-merge-queue bot pushed a commit to servo/servo that referenced this pull request Nov 22, 2024
Companion PR to servo/mozjs#524
This should reduce rebuilds when not using the prebuilt
artifact (e.g. when `debug-mozjs` is true)

Signed-off-by: Jonathan Schwender <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants