From b84d7218871082b5b614abeace54030dc5fb7f9c Mon Sep 17 00:00:00 2001 From: Mason Mark Date: Wed, 11 May 2011 13:15:12 +0900 Subject: [PATCH] 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). --- Tools/NativeHost/Jakefile | 2 +- Tools/fontinfo/Jakefile | 2 +- common.jake | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Tools/NativeHost/Jakefile b/Tools/NativeHost/Jakefile index a092ea137..8df9bce4b 100644 --- a/Tools/NativeHost/Jakefile +++ b/Tools/NativeHost/Jakefile @@ -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 diff --git a/Tools/fontinfo/Jakefile b/Tools/fontinfo/Jakefile index 4ab6d6c6e..38d02b91c 100644 --- a/Tools/fontinfo/Jakefile +++ b/Tools/fontinfo/Jakefile @@ -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 diff --git a/common.jake b/common.jake index f1fa62f74..9331f5dba 100644 --- a/common.jake +++ b/common.jake @@ -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