33
33
#include "utils_global.h"
35
#include "osspecificaspects.h"
38
#define QTC_HOST_EXE_SUFFIX ".exe"
40
#define QTC_HOST_EXE_SUFFIX QTC_WIN_EXE_SUFFIX
40
42
#define QTC_HOST_EXE_SUFFIX ""
45
47
class QTCREATOR_UTILS_EXPORT HostOsInfo
48
// Add more as needed.
49
enum HostOs { HostOsWindows, HostOsLinux, HostOsMac, HostOsOtherUnix, HostOsOther };
50
static inline HostOs hostOs();
50
static inline OsType hostOs();
52
52
enum HostArchitecture { HostArchitectureX86, HostArchitectureAMD64, HostArchitectureItanium,
53
53
HostArchitectureArm, HostArchitectureUnknown };
54
54
static HostArchitecture hostArchitecture();
56
static bool isWindowsHost() { return hostOs() == HostOsWindows; }
57
static bool isLinuxHost() { return hostOs() == HostOsLinux; }
58
static bool isMacHost() { return hostOs() == HostOsMac; }
56
static bool isWindowsHost() { return hostOs() == OsTypeWindows; }
57
static bool isLinuxHost() { return hostOs() == OsTypeLinux; }
58
static bool isMacHost() { return hostOs() == OsTypeMac; }
59
59
static inline bool isAnyUnixHost();
61
61
static QString withExecutableSuffix(const QString &executable)
63
QString finalName = executable;
65
finalName += QLatin1String(QTC_HOST_EXE_SUFFIX);
63
return hostOsAspects().withExecutableSuffix(executable);
69
66
static Qt::CaseSensitivity fileNameCaseSensitivity()
71
return isWindowsHost() ? Qt::CaseInsensitive: Qt::CaseSensitive;
68
return hostOsAspects().fileNameCaseSensitivity();
74
71
static QChar pathListSeparator()
76
return isWindowsHost() ? QLatin1Char(';') : QLatin1Char(':');
73
return hostOsAspects().pathListSeparator();
79
76
static Qt::KeyboardModifier controlModifier()
81
return isMacHost() ? Qt::MetaModifier : Qt::ControlModifier;
78
return hostOsAspects().controlModifier();
82
static OsSpecificAspects hostOsAspects() { return OsSpecificAspects(hostOs()); }
85
HostOsInfo::HostOs HostOsInfo::hostOs()
86
OsType HostOsInfo::hostOs()
87
88
#if defined(Q_OS_WIN)
89
90
#elif defined(Q_OS_LINUX)
91
92
#elif defined(Q_OS_MAC)
93
94
#elif defined(Q_OS_UNIX)
94
return HostOsOtherUnix;
95
return OsTypeOtherUnix;