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

Last change on this file since 76 was 67, checked in by laleppa, 15 years ago
  • Finished documentation.
  • Sorted all functions in .cpp files according to order of their declaration in .h files.
  • Property svn:keywords set to Id URL
File size: 4.4 KB
RevLine 
[67]1/*!
2 * \file os.h
3 * \author Copyright (C) 2007-2009 Lёppa <contacts[at]oleksii[dot]name>
[31]4 *
5 *  $Id: os.h 67 2009-10-24 13:37:48Z laleppa $
6 *  $URL: https://tspsg.svn.sourceforge.net/svnroot/tspsg/trunk/src/os.h $
7 *
[67]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 *
[31]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
[41]34// Some target arch detection.
[64]35/*!
36 * \def ARCH
37 * \brief The target CPU architecture TSPSG was built for.
[66]38 * \warning NOTE: Only for <b>GNU C</b>, <b>Visual Studio</b>, <b>Intel C/C++</b> and <b>MinGW32</b> compilers.
[64]39 */
[41]40#if defined(__amd64__) || defined(_M_X64)
41        #define ARCH " (AMD 64-bit)"
42#elif defined(__ia64__) || defined(_M_IA64)
43        #define ARCH " (Intel 64-bit)"
[40]44#elif defined(__i386__) || defined(_M_IX86) || defined(_X86_)
[41]45        #define ARCH " (Intel x86)"
46#elif defined(__powerpc__) || defined(_M_PPC)
47        #define ARCH " (PowerPC)"
48#elif defined(__arm__) || defined(_M_ARM)
49        #define ARCH " (ARM)"
50#elif defined(__mips__) || defined(_M_MRX000)
51        #define ARCH " (MIPS)"
[37]52#else
[41]53        #define ARCH ""
54#endif // ARCH
[37]55
[66]56// Target OS detection. Done by Qt, so should work for any compiler.
[64]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 *
65 * This value is used in task file metadata.
66 */
[31]67#ifdef Q_OS_AIX
[41]68        #define OS "AIX"ARCH
[31]69        #define OSID quint8(1)
70#elif defined Q_OS_BSD4
[41]71        #define OS "BSD 4.4"ARCH
[31]72        #define OSID quint8(2)
73#elif defined Q_OS_BSDI
[41]74        #define OS "BSD/OS"ARCH
[31]75        #define OSID quint8(3)
76#elif defined Q_OS_CYGWIN
[41]77        #define OS "Cygwin"ARCH
[31]78        #define OSID quint8(4)
79#elif defined Q_OS_DARWIN
[41]80        #define OS "Darwin OS"ARCH
[31]81        #define OSID quint8(5)
82#elif defined Q_OS_DGUX
[41]83        #define OS "DG/UX"ARCH
[31]84        #define OSID quint8(6)
85#elif defined Q_OS_DYNIX
[41]86        #define OS "DYNIX/ptx"ARCH
[31]87        #define OSID quint8(7)
88#elif defined Q_OS_FREEBSD
[41]89        #define OS "FreeBSD"ARCH
[31]90        #define OSID quint8(8)
91#elif defined Q_OS_HPUX
[41]92        #define OS "HP-UX"ARCH
[31]93        #define OSID quint8(9)
94#elif defined Q_OS_HURD
[41]95        #define OS "GNU Hurd"ARCH
[31]96        #define OSID quint8(10)
97#elif defined Q_OS_IRIX
[41]98        #define OS "SGI Irix"ARCH
[31]99        #define OSID quint8(11)
100#elif defined Q_OS_LINUX
[41]101        #define OS "Linux"ARCH
[31]102        #define OSID quint8(12)
103#elif defined Q_OS_LYNX
[41]104        #define OS "LynxOS"ARCH
[31]105        #define OSID quint8(13)
106#elif defined Q_OS_MSDOS
[41]107        #define OS "MS-DOS"ARCH
[31]108        #define OSID quint8(14)
109#elif defined Q_OS_NETBSD
[41]110        #define OS "NetBSD"ARCH
[31]111        #define OSID quint8(15)
112#elif defined Q_OS_OS2
[41]113        #define OS "OS/2"ARCH
[31]114        #define OSID quint8(16)
115#elif defined Q_OS_OPENBSD
[41]116        #define OS "OpenBSD"ARCH
[31]117        #define OSID quint8(17)
118#elif defined Q_OS_OS2EMX
[41]119        #define OS "OS/2"ARCH
[31]120        #define OSID quint8(18)
121#elif defined Q_OS_OSF
[41]122        #define OS "HP Tru64 UNIX"ARCH
[31]123        #define OSID quint8(19)
124#elif defined Q_OS_QNX6
[41]125        #define OS "QNX RTP 6.1"ARCH
[31]126        #define OSID quint8(20)
127#elif defined Q_OS_QNX
[41]128        #define OS "QNX"ARCH
[31]129        #define OSID quint8(21)
130#elif defined Q_OS_RELIANT
[41]131        #define OS "Reliant UNIX"ARCH
[31]132        #define OSID quint8(22)
133#elif defined Q_OS_SCO
[41]134        #define OS "SCO OpenServer 5"ARCH
[31]135        #define OSID quint8(23)
136#elif defined Q_OS_SOLARIS
[41]137        #define OS "Sun Solaris"ARCH
[31]138        #define OSID quint8(24)
139#elif defined Q_OS_ULTRIX
[41]140        #define OS "DEC Ultrix"ARCH
[31]141        #define OSID quint8(25)
142#elif defined Q_OS_UNIX
[41]143        #define OS "UNIX BSD/SYSV"ARCH
[31]144        #define OSID quint8(26)
145#elif defined Q_OS_UNIXWARE
[41]146        #define OS "UnixWare 7/Open UNIX 8"ARCH
[31]147        #define OSID quint8(27)
148#elif defined Q_OS_WIN32
[41]149        #define OS "Windows"ARCH
[31]150        #define OSID quint8(28)
151#elif defined Q_OS_WINCE
[41]152        #define OS "Windows CE"ARCH
[31]153        #define OSID quint8(29)
154#else
[41]155        #define OS "Unknown"ARCH
[31]156        #define OSID quint8(255)
[37]157#endif // OS
[31]158
159#endif // OS_H
Note: See TracBrowser for help on using the repository browser.