2 ******************************************************************************
5 * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2013.
6 * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009.
7 * @addtogroup GCSPlugins GCS Plugins
9 * @addtogroup CorePlugin Core Plugin
11 * @brief The Core GCS plugin
12 *****************************************************************************/
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 3 of the License, or
17 * (at your option) any later version.
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
21 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 #include "utils_global.h"
37 #define QTC_HOST_EXE_SUFFIX ".exe"
39 #define QTC_HOST_EXE_SUFFIX ""
43 class QTCREATOR_UTILS_EXPORT HostOsInfo
{
45 // Add more as needed.
46 enum HostOs
{ HostOsWindows
, HostOsLinux
, HostOsMac
, HostOsOtherUnix
, HostOsOther
};
47 static inline HostOs
hostOs();
49 enum HostArchitecture
{ HostArchitectureX86
, HostArchitectureAMD64
, HostArchitectureItanium
,
50 HostArchitectureArm
, HostArchitectureUnknown
};
51 static HostArchitecture
hostArchitecture();
53 static bool isWindowsHost()
55 return hostOs() == HostOsWindows
;
57 static bool isLinuxHost()
59 return hostOs() == HostOsLinux
;
61 static bool isMacHost()
63 return hostOs() == HostOsMac
;
65 static inline bool isAnyUnixHost();
67 static QString
withExecutableSuffix(const QString
&executable
)
69 QString finalName
= executable
;
71 if (isWindowsHost()) {
72 finalName
+= QLatin1String(QTC_HOST_EXE_SUFFIX
);
77 static Qt::CaseSensitivity
fileNameCaseSensitivity()
79 return isWindowsHost() ? Qt::CaseInsensitive
: Qt::CaseSensitive
;
82 static QChar
pathListSeparator()
84 return isWindowsHost() ? QLatin1Char(';') : QLatin1Char(':');
87 static Qt::KeyboardModifier
controlModifier()
89 return isMacHost() ? Qt::MetaModifier
: Qt::ControlModifier
;
93 HostOsInfo::HostOs
HostOsInfo::hostOs()
98 #elif defined(Q_OS_LINUX)
101 #elif defined(Q_OS_MAC)
104 #elif defined(Q_OS_UNIX)
105 return HostOsOtherUnix
;
113 bool HostOsInfo::isAnyUnixHost()
125 #endif // HOSTOSINFO_H