~bzoltan/kubuntu-packaging/decouple_cmake_plugin

« back to all changes in this revision

Viewing changes to src/shared/qbs/src/app/detect-toolchains/probe.cpp

  • Committer: Timo Jyrinki
  • Date: 2013-11-15 12:25:23 UTC
  • mfrom: (1.1.28)
  • Revision ID: timo.jyrinki@canonical.com-20131115122523-i2kyamsu4gs2mu1m
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
    QString cxx        = QString::fromLocal8Bit(qgetenv("CXX"));
89
89
    QString ld         = QString::fromLocal8Bit(qgetenv("LD"));
90
90
    QString cross      = QString::fromLocal8Bit(qgetenv("CROSS_COMPILE"));
91
 
    QString arch       = QString::fromLocal8Bit(qgetenv("ARCH"));
92
91
 
93
92
    QString pathToGcc;
94
93
    QString architecture;
95
94
    QString endianness;
96
95
 
97
 
    QString uname = qsystem("uname", QStringList() << "-m").simplified();
98
 
 
99
 
    if (arch.isEmpty())
100
 
        arch = uname;
101
 
 
102
 
    // HACK: "uname -m" reports "i386" but "gcc -dumpmachine" reports "i686" on OS X.
103
 
    if (HostOsInfo::isOsxHost() && arch == "i386")
104
 
        arch = "i686";
105
 
 
106
96
    if (ld.isEmpty())
107
97
        ld = "ld";
108
98
    if (cxx.isEmpty()) {
166
156
    profile.removeProfile();
167
157
 
168
158
    profile.setValue("qbs.toolchain", toolchainTypes);
169
 
    profile.setValue("qbs.architecture", architecture);
 
159
    profile.setValue("qbs.architecture", canonicalizeArchitecture(architecture));
170
160
    profile.setValue("qbs.endianness", endianness);
171
161
 
172
162
    if (compilerName.contains('-')) {
247
237
    }
248
238
    return 0;
249
239
}
 
240
 
 
241
QString canonicalizeArchitecture(const QString &arch)
 
242
{
 
243
    QMap<QString, QStringList> archMap;
 
244
    archMap.insert(QLatin1String("x86"), QStringList()
 
245
        << QLatin1String("i386")
 
246
        << QLatin1String("i486")
 
247
        << QLatin1String("i586")
 
248
        << QLatin1String("i686")
 
249
        << QLatin1String("ia32")
 
250
        << QLatin1String("ia-32")
 
251
        << QLatin1String("x86_32")
 
252
        << QLatin1String("x86-32")
 
253
        << QLatin1String("intel32"));
 
254
 
 
255
    archMap.insert(QLatin1String("x86_64"), QStringList()
 
256
        << QLatin1String("x86-64")
 
257
        << QLatin1String("x64")
 
258
        << QLatin1String("amd64")
 
259
        << QLatin1String("ia32e")
 
260
        << QLatin1String("em64t")
 
261
        << QLatin1String("intel64"));
 
262
 
 
263
    archMap.insert(QLatin1String("ia64"), QStringList()
 
264
        << QLatin1String("ia-64")
 
265
        << QLatin1String("itanium"));
 
266
 
 
267
    QMapIterator<QString, QStringList> i(archMap);
 
268
    while (i.hasNext())
 
269
    {
 
270
        i.next();
 
271
        if (i.value().contains(arch))
 
272
            return i.key();
 
273
    }
 
274
 
 
275
    return arch;
 
276
}