Permalink
Browse files

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).
  • Loading branch information...
1 parent 48ccbb8 commit b84d7218871082b5b614abeace54030dc5fb7f9c @masonmark masonmark committed May 11, 2011
Showing with 17 additions and 2 deletions.
  1. +1 −1 Tools/NativeHost/Jakefile
  2. +1 −1 Tools/fontinfo/Jakefile
  3. +15 −0 common.jake
@@ -11,7 +11,7 @@ task ("build", function()
{
var args = "-alltargets -configuration Release";
- if (FILE.exists(FILE.join("/", "Developer", "SDKs", "MacOSX10.5.sdk")))
+ if (xcodebuildHasTenPointFiveSDK())
args = "-sdk macosx10.5 " + args;
else
View
@@ -10,7 +10,7 @@ task ("build", function()
{
var args = "-alltargets -configuration " + $CONFIGURATION;
- if (FILE.exists(FILE.join("/", "Developer", "SDKs", "MacOSX10.5.sdk")))
+ if (xcodebuildHasTenPointFiveSDK())
args = "-sdk macosx10.5 " + args;
else
View
@@ -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

0 comments on commit b84d721

Please sign in to comment.