From 4d24a1605938b847bf564ad87aea011cbc11f92d Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Mon, 21 Jul 2014 02:55:43 -0400 Subject: [PATCH] Qbs: Set cpp.xcodeSdkName and cpp.xcodeSdkVersion. Change-Id: I17ef8c60589208810e9427187249b7a56c46b623 Reviewed-by: Tobias Hunger --- .../qbsprojectmanager/defaultpropertyprovider.cpp | 13 ++++++++++++- src/plugins/qbsprojectmanager/qbsconstants.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp index 1e92dd3e8de..878f1676c87 100644 --- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp @@ -39,6 +39,7 @@ #include +#include #include namespace QbsProjectManager { @@ -60,8 +61,10 @@ QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, c { QTC_ASSERT(k, return defaultData); QVariantMap data = defaultData; + + const QString sysroot = ProjectExplorer::SysRootKitInformation::sysRoot(k).toUserOutput(); if (ProjectExplorer::SysRootKitInformation::hasSysRoot(k)) - data.insert(QLatin1String(QBS_SYSROOT), ProjectExplorer::SysRootKitInformation::sysRoot(k).toUserOutput()); + data.insert(QLatin1String(QBS_SYSROOT), sysroot); ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); if (tc) { @@ -122,6 +125,14 @@ QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, c << QLatin1String("llvm") << QLatin1String("gcc")); } + + // Set Xcode SDK name and version - required by Qbs if a sysroot is present + // Ideally this would be done in a better way... + QRegExp re(QLatin1String("(MacOSX|iPhoneOS|iPhoneSimulator)([0-9]+\\.[0-9]+)\\.sdk")); + if (re.exactMatch(QDir(sysroot).dirName())) { + data.insert(QLatin1String(CPP_XCODESDKNAME), re.cap(1).toLower() + re.cap(2)); + data.insert(QLatin1String(CPP_XCODESDKVERSION), re.cap(2)); + } } else if (targetAbi.os() == ProjectExplorer::Abi::LinuxOS) { data.insert(QLatin1String(QBS_TARGETOS), QStringList() << QLatin1String("linux") << QLatin1String("unix")); diff --git a/src/plugins/qbsprojectmanager/qbsconstants.h b/src/plugins/qbsprojectmanager/qbsconstants.h index 82d070abd5a..c0af1997b07 100644 --- a/src/plugins/qbsprojectmanager/qbsconstants.h +++ b/src/plugins/qbsprojectmanager/qbsconstants.h @@ -44,6 +44,8 @@ const char CPP_TOOLCHAINPREFIX[] = "cpp.toolchainPrefix"; const char CPP_COMPILERNAME[] = "cpp.compilerName"; const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags"; const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags"; +const char CPP_XCODESDKNAME[] = "cpp.xcodeSdkName"; +const char CPP_XCODESDKVERSION[] = "cpp.xcodeSdkVersion"; } // namespace Constants } // namespace QbsProjectManager