Bug 90096 - Building within Xcode sometimes does a full rebuild after building via build-webkit
Summary: Building within Xcode sometimes does a full rebuild after building via build-...
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Mark Rowe (bdash)
Depends on:
Reported: 2012-06-27 13:11 PDT by Mark Rowe (bdash)
Modified: 2012-06-28 02:30 PDT (History)
1 user (show)

See Also:

Patch v1 (2.87 KB, patch)
2012-06-27 13:19 PDT, Mark Rowe (bdash)
mitz: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Rowe (bdash) 2012-06-27 13:11:23 PDT
If Xcode's build directories are set to an absolute path at the project or workspace level rather than the application level then builds from the command-line and GUI can use different values for SHARED_PRECOMPS_DIR. This can cause the appearance of full rebuilds when switching between the command-line and GUI the precompiled headers built in one context will not be used by the other. webkitdirs.pm contains logic to set SHARED_PRECOMPS_DIR to the same value that the Xcode GUI uses, but currently only sets it if the build directory is set at the application level. If we were to always set it when using Xcode 4 then this would allow the precompiled headers to be shared between command-line and GUI builds, avoiding the extra rebuilds.

One downside is that if Xcode's build directory is configured to use the "Legacy" setting then builds within Xcode don't override SHARED_PRECOMPS_DIR. We can accommodate this setting when set at the application level, but we have no way of detecting it on individual projects. This means that fixing the absolute path case will introduce the same problem for users of the "Legacy" setting at the project or workspace level. I think that's a reasonable trade-off to make though given that "Legacy" is intended for legacy projects, and that a solution exists (switch to using absolute paths).

Comment 1 Mark Rowe (bdash) 2012-06-27 13:19:51 PDT
Created attachment 149789 [details]
Patch v1
Comment 2 Mark Rowe (bdash) 2012-06-28 02:30:46 PDT
Landed in r121422.