Fix build-time test for presence of Mac OS X 10.5 SDK

Some jake build tasks test whether the 10.5 SDK is present, and if so, they build using it. However, the path to the SDK is not necessarily consistent across installations, so testing for path existence is not the best way to check whether the SDK is present. Doing it that way caused build failures on machines with both Xcode 3 and Xcode 4 installed. In this fix, we now ask xcodebuild what SDKs are present, and only fall back on the path existence test if the local copy of xcodebuild does not support listing SDKs (as is the case for old versions of xcodebuild).
This commit is contained in:
Mason Mark
2011-05-11 13:15:12 +09:00
parent 48ccbb8883
commit b84d721887
3 changed files with 17 additions and 2 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ task ("build", function()
{ {
var args = "-alltargets -configuration Release"; var args = "-alltargets -configuration Release";
if (FILE.exists(FILE.join("/", "Developer", "SDKs", "MacOSX10.5.sdk"))) if (xcodebuildHasTenPointFiveSDK())
args = "-sdk macosx10.5 " + args; args = "-sdk macosx10.5 " + args;
else else
+1 -1
View File
@@ -10,7 +10,7 @@ task ("build", function()
{ {
var args = "-alltargets -configuration " + $CONFIGURATION; var args = "-alltargets -configuration " + $CONFIGURATION;
if (FILE.exists(FILE.join("/", "Developer", "SDKs", "MacOSX10.5.sdk"))) if (xcodebuildHasTenPointFiveSDK())
args = "-sdk macosx10.5 " + args; args = "-sdk macosx10.5 " + args;
else else
+15
View File
@@ -456,6 +456,21 @@ global.copyManPage = function(/*String*/ name, /*int*/ section)
} }
} }
global.xcodebuildCanListSDKs = function ()
{
return OS.system("xcodebuild -showsdks > /dev/null 2>&1") == 0;
}
global.xcodebuildHasTenPointFiveSDK = function ()
{
if (xcodebuildCanListSDKs()) {
return OS.system("xcodebuild -showsdks | grep 'macosx10.5' > /dev/null 2>&1") == 0;
} else {
return (FILE.exists(FILE.join("/", "Developer", "SDKs", "MacOSX10.5.sdk")));
}
}
// built in tasks // built in tasks