source: tspsg-svn/trunk/src/os.h @ 173

Last change on this file since 173 was 151, checked in by laleppa, 14 years ago

Changed 2010 to 2011 in the source code copyrights.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id URL
File size: 4.9 KB
RevLine 
[116]1/*!
2 * \file os.h
[151]3 * \author Copyright &copy; 2007-2011 Lёppa <contacts[at]oleksii[dot]name>
[116]4 *
5 *  $Id: os.h 151 2011-01-19 22:27:49Z laleppa $
6 *  $URL: https://tspsg.svn.sourceforge.net/svnroot/tspsg/trunk/src/os.h $
7 *
8 * \warning Arch detection works only for <b>GNU C</b>, <b>Visual Studio</b>, <b>Intel C/C++</b> and <b>MinGW32</b> compilers.
9 *  OS detection should work for any compiler.
10 *
11 * \brief Contains TSPSG target CPU architecture and OS detection.
12 *
13 *  <b>TSPSG: TSP Solver and Generator</b>
14 *
15 *  This file is part of TSPSG.
16 *
17 *  TSPSG is free software: you can redistribute it and/or modify
18 *  it under the terms of the GNU General Public License as published by
19 *  the Free Software Foundation, either version 3 of the License, or
20 *  (at your option) any later version.
21 *
22 *  TSPSG is distributed in the hope that it will be useful,
23 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
24 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25 *  GNU General Public License for more details.
26 *
27 *  You should have received a copy of the GNU General Public License
28 *  along with TSPSG.  If not, see <http://www.gnu.org/licenses/>.
29 */
30
31#ifndef OS_H
32#define OS_H
33
34// Some target arch detection.
35/*!
36 * \def ARCH
37 * \brief The target CPU architecture TSPSG was built for.
38 * \warning NOTE: Only for <b>GNU C</b>, <b>Visual Studio</b>, <b>Intel C/C++</b> and <b>MinGW32</b> compilers.
39 */
40#if defined(__amd64__) || defined(_M_X64)
[149]41#   define ARCH " (AMD 64-bit)"
[116]42#elif defined(__ia64__) || defined(_M_IA64)
[149]43#   define ARCH " (Intel 64-bit)"
[116]44#elif defined(__i386__) || defined(_M_IX86) || defined(_X86_)
[149]45#   define ARCH " (Intel x86)"
[116]46#elif defined(__powerpc__) || defined(_M_PPC)
[149]47#   define ARCH " (PowerPC)"
[116]48#elif defined(__arm__) || defined(_M_ARM)
[149]49#   define ARCH " (ARM)"
[116]50#elif defined(__mips__) || defined(_M_MRX000)
[149]51#   define ARCH " (MIPS)"
[116]52#else
[149]53#   define ARCH ""
[116]54#endif // ARCH
55
56// Target OS detection. Done by Qt, so should work for any compiler.
57/*!
58 * \def OS
59 * \brief The target operating system TSPSG was built for.
60 */
61/*!
62 * \def OSID
63 * \brief The target operating system ID.
64 *
[132]65 * This value will be used in task file metadata.
[116]66 */
67#ifdef Q_OS_AIX
[149]68#   define OS "AIX"
69#   define OSID quint8(1)
[141]70#elif defined(Q_OS_BSDI)
[149]71#   define OS "BSD/OS"
72#   define OSID quint8(2)
[141]73#elif defined(Q_OS_CYGWIN)
[149]74#   define OS "Cygwin"
75#   define OSID quint8(3)
[141]76#elif defined(Q_OS_DARWIN)
[149]77#   define OS "Mac OS (Darwin)"
78#   define OSID quint8(4)
[141]79#elif defined(Q_OS_DGUX)
[149]80#   define OS "DG/UX"
81#   define OSID quint8(5)
[141]82#elif defined(Q_OS_DYNIX)
[149]83#   define OS "DYNIX/ptx"
84#   define OSID quint8(6)
[141]85#elif defined(Q_OS_FREEBSD)
[149]86#   define OS "FreeBSD"
87#   define OSID quint8(7)
[141]88#elif defined(Q_OS_HPUX)
[149]89#   define OS "HP-UX"
90#   define OSID quint8(8)
[141]91#elif defined(Q_OS_HURD)
[149]92#   define OS "GNU Hurd"
93#   define OSID quint8(9)
[141]94#elif defined(Q_OS_IRIX)
[149]95#   define OS "SGI Irix"
96#   define OSID quint8(10)
[141]97#elif defined(Q_OS_LINUX)
[149]98#   define OS "Linux"
99#   define OSID quint8(11)
[141]100#elif defined(Q_OS_LYNX)
[149]101#   define OS "LynxOS"
102#   define OSID quint8(12)
[141]103#elif defined(Q_OS_NETBSD)
[149]104#   define OS "NetBSD"
105#   define OSID quint8(13)
[141]106#elif defined(Q_OS_OPENBSD)
[149]107#   define OS "OpenBSD"
108#   define OSID quint8(14)
[141]109#elif defined(Q_OS_OS2EMX)
[149]110#   define OS "OS/2"
111#   define OSID quint8(15)
[141]112#elif defined(Q_OS_OSF)
[149]113#   define OS "HP Tru64 UNIX"
114#   define OSID quint8(16)
[141]115#elif defined(Q_OS_QNX)
[149]116#   define OS "QNX Neutrino"
117#   define OSID quint8(17)
[141]118#elif defined(Q_OS_RELIANT)
[149]119#   define OS "Reliant UNIX"
120#   define OSID quint8(18)
[141]121#elif defined(Q_OS_SCO)
[149]122#   define OS "SCO OpenServer 5"
123#   define OSID quint8(19)
[141]124#elif defined(Q_OS_SOLARIS)
[149]125#   define OS "Sun Solaris"
126#   define OSID quint8(20)
[141]127#elif defined(Q_OS_SYMBIAN)
[149]128#   define OS "Symbian"
129#   define OSID quint8(21)
[141]130#elif defined(Q_OS_ULTRIX)
[149]131#   define OS "DEC Ultrix"
132#   define OSID quint8(22)
[141]133#elif defined(Q_OS_UNIXWARE)
[149]134#   define OS "UnixWare 7/Open UNIX 8"
135#   define OSID quint8(23)
[141]136#elif defined(Q_OS_WIN32)
[149]137#   define OS "Windows"
138#   define OSID quint8(24)
[141]139#elif defined(Q_OS_WINCE_WM)
[149]140#   define OS "Windows Mobile"
141#   define OSID quint8(25)
[141]142#elif defined(Q_OS_WINCE)
[149]143#   define OS "Windows CE"
144#   define OSID quint8(26)
[141]145#elif defined(Q_OS_BSD4)
[149]146#   define OS "BSD 4.4"
147#   define OSID quint8(253)
[141]148#elif defined(Q_OS_UNIX)
[149]149#   define OS "UNIX BSD/SYSV"
150#   define OSID quint8(254)
[116]151#else
[149]152#   define OS "Unknown"
153#   define OSID quint8(255)
[116]154#endif // OS
155
[133]156//! The target platform in the form OS ARCH
157#define PLATFROM OS ARCH
158
159/*!
160 * \def COMPILER
161 * \brief The compiler TSPSG was built with.
162 */
[141]163#ifdef Q_CC_INTEL
[149]164#   define COMPILER "Intel C++"
[141]165#elif defined(Q_CC_MSVC)
[149]166#   define COMPILER "Microsoft Visual C/C++"
[141]167#elif defined(Q_CC_MINGW)
[149]168#   define COMPILER "MinGW GCC"
[133]169#elif defined(Q_CC_GNU)
[149]170#   define COMPILER "GNU C++"
[133]171#elif defined(Q_CC_GCCE)
[149]172#   define COMPILER "GCCE (Symbian GCCE builds)"
[133]173#elif defined(Q_CC_RVCT)
[149]174#   define COMPILER "ARM Realview Compiler Suite"
[133]175#elif defined(Q_CC_NOKIAX86)
[149]176#   define COMPILER "Nokia x86 (Symbian WINSCW builds)"
[133]177#else
[149]178#   define COMPILER "Unknown"
[133]179#endif
180
[116]181#endif // OS_H
Note: See TracBrowser for help on using the repository browser.