diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp index bc8c9efa4ec..69d87fd1b09 100644 --- a/src/plugins/projectexplorer/abi.cpp +++ b/src/plugins/projectexplorer/abi.cpp @@ -547,6 +547,27 @@ Abi Abi::abiFromTargetTriplet(const QString &triple) return Abi(arch, os, flavor, format, width); } +Utils::OsType Abi::abiOsToOsType(const Abi::OS os) +{ + switch (os) { + case ProjectExplorer::Abi::LinuxOS: + return Utils::OsType::OsTypeLinux; + case ProjectExplorer::Abi::DarwinOS: + return Utils::OsType::OsTypeMac; + case ProjectExplorer::Abi::BsdOS: + case ProjectExplorer::Abi::UnixOS: + return Utils::OsType::OsTypeOtherUnix; + case ProjectExplorer::Abi::WindowsOS: + return Utils::OsType::OsTypeWindows; + case ProjectExplorer::Abi::VxWorks: + case ProjectExplorer::Abi::QnxOS: + case ProjectExplorer::Abi::BareMetalOS: + case ProjectExplorer::Abi::UnknownOS: + return Utils::OsType::OsTypeOther; + } + return Utils::OsType::OsTypeOther; +} + QString Abi::toString() const { const QStringList dn = {toString(m_architecture), toString(m_os), toString(m_osFlavor), diff --git a/src/plugins/projectexplorer/abi.h b/src/plugins/projectexplorer/abi.h index 09cc284a5ca..e49df3348f8 100644 --- a/src/plugins/projectexplorer/abi.h +++ b/src/plugins/projectexplorer/abi.h @@ -27,6 +27,8 @@ #include "projectexplorer_export.h" +#include + #include #include @@ -112,6 +114,8 @@ public: static Abi abiFromTargetTriplet(const QString &machineTriple); + static Utils::OsType abiOsToOsType(const OS os); + bool operator != (const Abi &other) const; bool operator == (const Abi &other) const; bool isCompatibleWith(const Abi &other) const; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 25477977806..2ec401c1725 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -1347,7 +1347,7 @@ QString QmakeProject::executableFor(const QmakeProFile *file) } else { const QString extension = file->singleVariableValue(Variable::TargetExt); if (extension.isEmpty()) - target = HostOsInfo::withExecutableSuffix(ti.target); + target = OsSpecificAspects::withExecutableSuffix(Abi::abiOsToOsType(tc->targetAbi().os()), ti.target); else target = ti.target + extension; }