Title: [103659] trunk/Tools
- Revision
- 103659
- Author
- [email protected]
- Date
- 2011-12-24 11:30:08 -0800 (Sat, 24 Dec 2011)
Log Message
Make build-webkit aware of additional Xcode build location defaults.
Reviewed by Anders Carlsson.
* Scripts/webkitdirs.pm:
(determineXcodeVersion): Added. This was previously in determineBaseProductDir().
(readXcodeUserDefault): Added. Factored out from determineBaseProductDir().
(determineBaseProductDir): Changed to check for a custom build location
style specified as an absolute location.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (103658 => 103659)
--- trunk/Tools/ChangeLog 2011-12-24 19:26:09 UTC (rev 103658)
+++ trunk/Tools/ChangeLog 2011-12-24 19:30:08 UTC (rev 103659)
@@ -1,3 +1,15 @@
+2011-12-24 Dan Bernstein <[email protected]>
+
+ Make build-webkit aware of additional Xcode build location defaults.
+
+ Reviewed by Anders Carlsson.
+
+ * Scripts/webkitdirs.pm:
+ (determineXcodeVersion): Added. This was previously in determineBaseProductDir().
+ (readXcodeUserDefault): Added. Factored out from determineBaseProductDir().
+ (determineBaseProductDir): Changed to check for a custom build location
+ style specified as an absolute location.
+
2011-12-24 Ryosuke Niwa <[email protected]>
Unreviewed, rolling out r103619.
Modified: trunk/Tools/Scripts/webkitdirs.pm (103658 => 103659)
--- trunk/Tools/Scripts/webkitdirs.pm 2011-12-24 19:26:09 UTC (rev 103658)
+++ trunk/Tools/Scripts/webkitdirs.pm 2011-12-24 19:30:08 UTC (rev 103659)
@@ -98,6 +98,7 @@
my $forceChromiumUpdate;
my $isInspectorFrontend;
my $isWK2;
+my $xcodeVersion;
# Variables for Win32 support
my $vcBuildPath;
@@ -146,6 +147,30 @@
($sourceDir) = @_;
}
+sub determineXcodeVersion
+{
+ return if defined $xcodeVersion;
+ my $xcodebuildVersionOutput = `xcodebuild -version`;
+ $xcodeVersion = ($xcodebuildVersionOutput =~ /Xcode ([0-9](\.[0-9]+)*)/) ? $1 : "3.0";
+}
+
+sub readXcodeUserDefault($)
+{
+ my ($unprefixedKey) = @_;
+
+ determineXcodeVersion();
+
+ my $xcodeDefaultsDomain = (eval "v$xcodeVersion" lt v4) ? "com.apple.Xcode" : "com.apple.dt.Xcode";
+ my $xcodeDefaultsPrefix = (eval "v$xcodeVersion" lt v4) ? "PBX" : "IDE";
+ my $devnull = File::Spec->devnull();
+
+ my $value = `defaults read $xcodeDefaultsDomain ${xcodeDefaultsPrefix}${unprefixedKey} 2> ${devnull}`;
+ return if $?;
+
+ chomp $value;
+ return $value;
+}
+
sub determineBaseProductDir
{
return if defined $baseProductDir;
@@ -164,16 +189,21 @@
unlink($personalPlistFile) || die "Could not delete $personalPlistFile: $!";
}
- my $xcodebuildVersionOutput = `xcodebuild -version`;
- my $xcodeVersion = ($xcodebuildVersionOutput =~ /Xcode ([0-9](\.[0-9]+)*)/) ? $1 : "3.0";
- my $xcodeDefaultsDomain = (eval "v$xcodeVersion" lt v4) ? "com.apple.Xcode" : "com.apple.dt.Xcode";
- my $xcodeDefaultsPrefix = (eval "v$xcodeVersion" lt v4) ? "PBX" : "IDE";
+ determineXcodeVersion();
- open PRODUCT, "defaults read $xcodeDefaultsDomain ${xcodeDefaultsPrefix}ApplicationwideBuildSettings 2> " . File::Spec->devnull() . " |" or die;
- $baseProductDir = join '', <PRODUCT>;
- close PRODUCT;
+ if (eval "v$xcodeVersion" ge v4) {
+ my $buildLocationStyle = join '', readXcodeUserDefault("BuildLocationStyle");
+ if ($buildLocationStyle eq "Custom") {
+ my $buildLocationType = join '', readXcodeUserDefault("CustomBuildLocationType");
+ $baseProductDir = readXcodeUserDefault("CustomBuildProductsPath") if $buildLocationType eq "Absolute";
+ }
+ }
- $baseProductDir = $1 if $baseProductDir =~ /SYMROOT\s*=\s*\"(.*?)\";/s;
+ if (!defined($baseProductDir)) {
+ $baseProductDir = join '', readXcodeUserDefault("ApplicationwideBuildSettings");
+ $baseProductDir = $1 if $baseProductDir =~ /SYMROOT\s*=\s*\"(.*?)\";/s;
+ }
+
undef $baseProductDir unless $baseProductDir =~ /^\//;
} elsif (isChromium()) {
if (isLinux() || isChromiumAndroid() || isChromiumMacMake()) {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes