Repository navigation
Always run cmake --build for Fantom's tester - #59725
Merged
Merged
Conversation
Manishram-ai
approved these changes
Nov 1, 2026
Manishram-ai
left a comment
There was a problem hiding this comment.
I made a small Gradle project with a task set up like buildFantomTester. Its only inputs were generated .cmake files and its only output was a log file, like the log files CustomExecTask declares. After I changed a source file outside the inputs, Gradle still marked the task UP-TO-DATE and skipped it. With outputs.upToDateWhen { false } it ran every time and picked up the change. Letting CMake decide what to rebuild makes sense to me.
javache
approved these changes
Nov 2, 2026
|
@javache has imported this pull request. If you are a Meta employee, you can view this in D129046660. |
javache
enabled auto-merge (squash)
November 2, 2026 10:40
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary:
yarn workspace @react-native/fantom builddoesn't rebuild the tester after a change to ReactCommon, ReactCxxPlatform or a third-party dependency, soyarn fantomkeeps running the old binary.buildFantomTesteronly declares the CMake build tree's generated files (*.cmake,Makefile,link.txt, ...) as inputs, and none of those change when a source outsidetester/does, so Gradle marks the task up to date and never calls CMake.This marks
buildFantomTesterwithoutputs.upToDateWhen { false }, socmake --buildalways runs and CMake, which already tracks every source and header, decides what to rebuild. When nothing changed it's a no-op.Fixes #59723
Changelog:
[INTERNAL] [FIXED] - Rebuild Fantom's tester when sources outside the tester folder change
Test Plan:
I don't have the Android SDK and Hermes build Fantom needs on this machine, so I copied the
configureFantomTester/buildFantomTesterwiring (same inputs, outputs andCustomExecTasklog outputs) into a small Gradle 9.4.1 project that builds a CMake executable from a source file outside the tester folder. Before the change, editing that file and runningbuildFantomTesteragain reportsUP-TO-DATEand the binary keeps printing the old value. Withoutputs.upToDateWhen { false }, the task runs, the binary is rebuilt with the new value, and a second run with no changes just printsBuilt target fantom_tester.