Qbs: write toolchainPrefix to qbs profile

Task-number: QTCREATORBUG-12133
Change-Id: I9d68c9900b7f701b788953fae334b581d7127386
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
This commit is contained in:
Joerg Bornemann
2014-04-25 15:21:18 +02:00
committed by Christian Kandeler
parent 79b89a55d4
commit 39ae35cd81
2 changed files with 20 additions and 2 deletions

View File

@@ -42,6 +42,18 @@
namespace QbsProjectManager { namespace QbsProjectManager {
using namespace Constants; using namespace Constants;
static QString extractToolchainPrefix(QString *compilerName)
{
QString prefix;
if (compilerName->endsWith(QLatin1String("-g++"))
|| compilerName->endsWith(QLatin1String("-clang++"))) {
const int idx = compilerName->lastIndexOf(QLatin1Char('-')) + 1;
prefix = compilerName->left(idx);
compilerName->remove(0, idx);
}
return prefix;
}
QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, const QVariantMap &defaultData) const QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, const QVariantMap &defaultData) const
{ {
QTC_ASSERT(k, return defaultData); QTC_ASSERT(k, return defaultData);
@@ -116,8 +128,13 @@ QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, c
} }
} }
Utils::FileName cxx = tc->compilerCommand(); Utils::FileName cxx = tc->compilerCommand();
data.insert(QLatin1String(CPP_TOOLCHAINPATH), cxx.toFileInfo().absolutePath()); const QFileInfo cxxFileInfo = cxx.toFileInfo();
data.insert(QLatin1String(CPP_COMPILERNAME), cxx.toFileInfo().fileName()); QString compilerName = cxxFileInfo.fileName();
const QString toolchainPrefix = extractToolchainPrefix(&compilerName);
if (!toolchainPrefix.isEmpty())
data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), toolchainPrefix);
data.insert(QLatin1String(CPP_COMPILERNAME), compilerName);
data.insert(QLatin1String(CPP_TOOLCHAINPATH), cxxFileInfo.absolutePath());
if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) { if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) {
const QLatin1String flags("/FS"); const QLatin1String flags("/FS");
data.insert(QLatin1String(CPP_PLATFORMCFLAGS), flags); data.insert(QLatin1String(CPP_PLATFORMCFLAGS), flags);

View File

@@ -40,6 +40,7 @@ const char QBS_ARCHITECTURE[] = "qbs.architecture";
const char QBS_ENDIANNESS[] = "qbs.endianness"; const char QBS_ENDIANNESS[] = "qbs.endianness";
const char QBS_TOOLCHAIN[] = "qbs.toolchain"; const char QBS_TOOLCHAIN[] = "qbs.toolchain";
const char CPP_TOOLCHAINPATH[] = "cpp.toolchainInstallPath"; const char CPP_TOOLCHAINPATH[] = "cpp.toolchainInstallPath";
const char CPP_TOOLCHAINPREFIX[] = "cpp.toolchainPrefix";
const char CPP_COMPILERNAME[] = "cpp.compilerName"; const char CPP_COMPILERNAME[] = "cpp.compilerName";
const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags"; const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags";
const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags"; const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags";