diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/qbs/modules/xcode/xcode.js | 16 | ||||
-rw-r--r-- | share/qbs/modules/xcode/xcode.qbs | 16 |
2 files changed, 13 insertions, 19 deletions
diff --git a/share/qbs/modules/xcode/xcode.js b/share/qbs/modules/xcode/xcode.js index bda41ade9..d20d9cf0c 100644 --- a/share/qbs/modules/xcode/xcode.js +++ b/share/qbs/modules/xcode/xcode.js @@ -114,7 +114,7 @@ function sdkInfoList(sdksPath) { if (!plist || !plist["CanonicalName"] || !plist["Version"]) return false; - var re = /^([0-9]+)\.([0-9]+)$/; + var re = /^[0-9]+\.[0-9]+(\.[0-9]+)?$/; return plist["Version"].match(re); } @@ -132,19 +132,7 @@ function sdkInfoList(sdksPath) { } // Sort by SDK version number - sdkInfo.sort(function (a, b) { - var re = /^([0-9]+)\.([0-9]+)$/; - a = a["Version"].match(re); - if (a) - a = {major: a[1], minor: a[2]}; - b = b["Version"].match(re); - if (b) - b = {major: b[1], minor: b[2]}; - - if (a.major === b.major) - return a.minor - b.minor; - return a.major - b.major; - }); + sdkInfo.sort(function (a, b) { return Utilities.versionCompare(a["Version"], b["Version"]); }); return sdkInfo; } diff --git a/share/qbs/modules/xcode/xcode.qbs b/share/qbs/modules/xcode/xcode.qbs index 648948192..7bbb29c6e 100644 --- a/share/qbs/modules/xcode/xcode.qbs +++ b/share/qbs/modules/xcode/xcode.qbs @@ -49,6 +49,12 @@ Module { return _sdkSettings["Version"]; } } + readonly property string shortSdkVersion: { + var v = sdkVersion; + if (v && v.split('.').length > 2) + v = v.slice(0, v.lastIndexOf('.')); + return v; + } readonly property string latestSdkName: { if (_latestSdk) { @@ -117,8 +123,8 @@ Module { + ".platform") readonly property path sdkPath: FileInfo.joinPaths(sdksPath, DarwinTools.applePlatformDirectoryName( - qbs.targetOS, platformType, sdkVersion) - + ".sdk") + qbs.targetOS, platformType, + shortSdkVersion) + ".sdk") // private properties readonly property path toolchainsPath: FileInfo.joinPaths(developerPath, "Toolchains") @@ -206,14 +212,14 @@ Module { validator.setRequiredProperty("platformPath", platformPath); validator.setRequiredProperty("sdksPath", sdkPath); validator.setRequiredProperty("sdkPath", sdkPath); - validator.addVersionValidator("sdkVersion", sdkVersion, 2, 2); + validator.addVersionValidator("sdkVersion", sdkVersion, 2, 3); validator.addCustomValidator("sdkName", sdkName, function (value) { return value === DarwinTools.applePlatformDirectoryName( - qbs.targetOS, platformType, sdkVersion, false).toLowerCase(); + qbs.targetOS, platformType, shortSdkVersion, false).toLowerCase(); }, "is '" + sdkName + "', but target OS is [" + qbs.targetOS.join(",") + "] and Xcode SDK version is '" + sdkVersion + "'"); validator.addCustomValidator("sdk", sdk, function (value) { - return value === sdkName || (value + sdkVersion) === sdkName; + return value === sdkName || (value + shortSdkVersion) === sdkName; }, "is '" + sdk + "', but canonical SDK name is '" + sdkName + "'"); validator.validate(); } |