Bug 117081 - DerivedSources.make: any rules that use $(FEATURE_DEFINES) should be rebuilt when FeatureDefines.xcconfig changes
Summary: DerivedSources.make: any rules that use $(FEATURE_DEFINES) should be rebuilt ...
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: David Kilzer (:ddkilzer)
Depends on:
Reported: 2013-05-31 09:05 PDT by David Kilzer (:ddkilzer)
Modified: 2013-05-31 13:27 PDT (History)
13 users (show)

See Also:

Patch v1 (5.64 KB, patch)
2013-05-31 09:33 PDT, David Kilzer (:ddkilzer)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description David Kilzer (:ddkilzer) 2013-05-31 09:05:42 PDT
Because FeatureDefines.xcconfig contains configuration options that enable and disable CSS properties, CSSGrammar.{cpp|h} should be rebuilt whenever it changes (which shouldn't be that often).

Other ports will need to add their own configuration files as needed.

Note that this only affects non-clean builds as a clean build will always rebuild CSSGrammar.{cpp|h}.
Comment 1 David Kilzer (:ddkilzer) 2013-05-31 09:28:45 PDT
After looking at use of $(FEATURE_DEFINES) in DerivedSources.make, I realized that any rule that uses $(FEATURE_DEFINES) to process files should be re-run if Configurations/FeatureDefines.xcconfig changes.

The alternative is to do a full clean world build when this happens (or randomly delete generated files until the build works).

It's also possible to split up FeatureDefines.xcconfig into pieces (one for CSS features, etc.) so that only the file with the related features needs to have a make rule dependency.  However, it's already hard enough to keep FeatureDefines.xcconfig in sync across all four projects (JavaScriptCore, WebCore, WebKit, WebKit2), so splitting it into N files would make that problem (4 * N) times worse.
Comment 2 David Kilzer (:ddkilzer) 2013-05-31 09:33:58 PDT
Created attachment 203453 [details]
Patch v1
Comment 3 David Kilzer (:ddkilzer) 2013-05-31 09:38:10 PDT
Running "touch Source/WebCore/Configurations/FeatureDefines.xcconfig" and building does rebuild a number of files (similar to what happens when touching Source/WTF/wtf/Platform.h), although I would argue this behavior is more correct, and should result in fewer failed builds on local engineering builds and buildbots.
Comment 4 WebKit Commit Bot 2013-05-31 13:27:31 PDT
Comment on attachment 203453 [details]
Patch v1

Clearing flags on attachment: 203453

Committed r151036: <http://trac.webkit.org/changeset/151036>
Comment 5 WebKit Commit Bot 2013-05-31 13:27:34 PDT
All reviewed patches have been landed.  Closing bug.