aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/hostosinfo.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-08-15 16:08:16 +0200
committerhjk <hjk121@nokiamail.com>2013-08-16 08:05:41 +0200
commit6d6842202606bd153bf8614bb4699ed45ac13d3e (patch)
tree21ff9cd97e419205cafaadbe277ab7f9b9cf15e0 /src/libs/utils/hostosinfo.h
parentffae1fcb24de9f39e860bd289b2f3b443e940c45 (diff)
Utils: Introduce new class OsSpecificAspects.
This is basically a generalization of HostOsInfo for a system that might not be the host system. HostOsInfo is now implemented in terms of the new class. Prospective use case: Untie Utils::Environment from the host system. Change-Id: If333b96674652109fcb0ad79f75aaaf5e86e17e3 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src/libs/utils/hostosinfo.h')
-rw-r--r--src/libs/utils/hostosinfo.h41
1 files changed, 21 insertions, 20 deletions
diff --git a/src/libs/utils/hostosinfo.h b/src/libs/utils/hostosinfo.h
index 0bb642561bf..10ad8785c87 100644
--- a/src/libs/utils/hostosinfo.h
+++ b/src/libs/utils/hostosinfo.h
@@ -32,10 +32,12 @@
#include "utils_global.h"
+#include "osspecificaspects.h"
+
#include <QString>
#ifdef Q_OS_WIN
-#define QTC_HOST_EXE_SUFFIX ".exe"
+#define QTC_HOST_EXE_SUFFIX QTC_WIN_EXE_SUFFIX
#else
#define QTC_HOST_EXE_SUFFIX ""
#endif // Q_OS_WIN
@@ -45,55 +47,54 @@ namespace Utils {
class QTCREATOR_UTILS_EXPORT HostOsInfo
{
public:
- // Add more as needed.
- enum HostOs { HostOsWindows, HostOsLinux, HostOsMac, HostOsOtherUnix, HostOsOther };
- static inline HostOs hostOs();
+ static inline OsType hostOs();
enum HostArchitecture { HostArchitectureX86, HostArchitectureAMD64, HostArchitectureItanium,
HostArchitectureArm, HostArchitectureUnknown };
static HostArchitecture hostArchitecture();
- static bool isWindowsHost() { return hostOs() == HostOsWindows; }
- static bool isLinuxHost() { return hostOs() == HostOsLinux; }
- static bool isMacHost() { return hostOs() == HostOsMac; }
+ static bool isWindowsHost() { return hostOs() == OsTypeWindows; }
+ static bool isLinuxHost() { return hostOs() == OsTypeLinux; }
+ static bool isMacHost() { return hostOs() == OsTypeMac; }
static inline bool isAnyUnixHost();
static QString withExecutableSuffix(const QString &executable)
{
- QString finalName = executable;
- if (isWindowsHost())
- finalName += QLatin1String(QTC_HOST_EXE_SUFFIX);
- return finalName;
+ return hostOsAspects().withExecutableSuffix(executable);
}
static Qt::CaseSensitivity fileNameCaseSensitivity()
{
- return isWindowsHost() ? Qt::CaseInsensitive: Qt::CaseSensitive;
+ return hostOsAspects().fileNameCaseSensitivity();
}
static QChar pathListSeparator()
{
- return isWindowsHost() ? QLatin1Char(';') : QLatin1Char(':');
+ return hostOsAspects().pathListSeparator();
}
static Qt::KeyboardModifier controlModifier()
{
- return isMacHost() ? Qt::MetaModifier : Qt::ControlModifier;
+ return hostOsAspects().controlModifier();
}
+
+private:
+ static OsSpecificAspects hostOsAspects() { return OsSpecificAspects(hostOs()); }
};
-HostOsInfo::HostOs HostOsInfo::hostOs()
+
+OsType HostOsInfo::hostOs()
{
#if defined(Q_OS_WIN)
- return HostOsWindows;
+ return OsTypeWindows;
#elif defined(Q_OS_LINUX)
- return HostOsLinux;
+ return OsTypeLinux;
#elif defined(Q_OS_MAC)
- return HostOsMac;
+ return OsTypeMac;
#elif defined(Q_OS_UNIX)
- return HostOsOtherUnix;
+ return OsTypeOtherUnix;
#else
- return HostOsOther;
+ return OsTypeOther;
#endif
}