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

Last change on this file since 138 was 133, checked in by laleppa, 14 years ago

Save platform dependent settings (e.g., paths) per platform. This enables sharing of the settings file.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id URL
File size: 4.9 KB
Line 
1/*!
2 * \file os.h
3 * \author Copyright &copy; 2007-2010 Lёppa <contacts[at]oleksii[dot]name>
4 *
5 *  $Id: os.h 133 2010-09-05 21:03:48Z 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)
41        #define ARCH " (AMD 64-bit)"
42#elif defined(__ia64__) || defined(_M_IA64)
43        #define ARCH " (Intel 64-bit)"
44#elif defined(__i386__) || defined(_M_IX86) || defined(_X86_)
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)"
52#else
53        #define ARCH ""
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 *
65 * This value will be used in task file metadata.
66 */
67#ifdef Q_OS_AIX
68        #define OS "AIX"
69        #define OSID quint8(1)
70#elif defined Q_OS_BSD4
71        #define OS "BSD 4.4"
72        #define OSID quint8(2)
73#elif defined Q_OS_BSDI
74        #define OS "BSD/OS"
75        #define OSID quint8(3)
76#elif defined Q_OS_CYGWIN
77        #define OS "Cygwin"
78        #define OSID quint8(4)
79#elif defined Q_OS_DGUX
80        #define OS "DG/UX"
81        #define OSID quint8(5)
82#elif defined Q_OS_DYNIX
83        #define OS "DYNIX/ptx"
84        #define OSID quint8(6)
85#elif defined Q_OS_FREEBSD
86        #define OS "FreeBSD"
87        #define OSID quint8(7)
88#elif defined Q_OS_HPUX
89        #define OS "HP-UX"
90        #define OSID quint8(8)
91#elif defined Q_OS_HURD
92        #define OS "GNU Hurd"
93        #define OSID quint8(9)
94#elif defined Q_OS_IRIX
95        #define OS "SGI Irix"
96        #define OSID quint8(10)
97#elif defined Q_OS_LINUX
98        #define OS "Linux"
99        #define OSID quint8(11)
100#elif defined Q_OS_LYNX
101        #define OS "LynxOS"
102        #define OSID quint8(12)
103#elif defined Q_OS_MAC
104        #define OS "Mac OS (Darwin)"
105        #define OSID quint8(13)
106#elif defined Q_OS_MSDOS
107        #define OS "MS-DOS"
108        #define OSID quint8(14)
109#elif defined Q_OS_NETBSD
110        #define OS "NetBSD"
111        #define OSID quint8(15)
112#elif defined Q_OS_OS2
113        #define OS "OS/2"
114        #define OSID quint8(16)
115#elif defined Q_OS_OPENBSD
116        #define OS "OpenBSD"
117        #define OSID quint8(17)
118#elif defined Q_OS_OS2EMX
119        #define OS "OS/2"
120        #define OSID quint8(18)
121#elif defined Q_OS_OSF
122        #define OS "HP Tru64 UNIX"
123        #define OSID quint8(19)
124#elif defined Q_OS_QNX
125        #define OS "QNX Neutrino"
126        #define OSID quint8(20)
127#elif defined Q_OS_RELIANT
128        #define OS "Reliant UNIX"
129        #define OSID quint8(21)
130#elif defined Q_OS_SCO
131        #define OS "SCO OpenServer 5"
132        #define OSID quint8(22)
133#elif defined Q_OS_SOLARIS
134        #define OS "Sun Solaris"
135        #define OSID quint8(23)
136#elif defined Q_OS_SYMBIAN
137        #define OS "Symbian"
138        #define OSID quint8(24)
139#elif defined Q_OS_ULTRIX
140        #define OS "DEC Ultrix"
141        #define OSID quint8(25)
142#elif defined Q_OS_UNIX
143        #define OS "UNIX BSD/SYSV"
144        #define OSID quint8(26)
145#elif defined Q_OS_UNIXWARE
146        #define OS "UnixWare 7/Open UNIX 8"
147        #define OSID quint8(27)
148#elif defined Q_OS_WIN32
149        #define OS "Windows"
150        #define OSID quint8(28)
151#elif defined Q_OS_WINCE_WM
152        #define OS "Windows Mobile"
153        #define OSID quint8(29)
154#elif defined Q_OS_WINCE
155        #define OS "Windows CE"
156        #define OSID quint8(30)
157#else
158        #define OS "Unknown"
159        #define OSID quint8(255)
160#endif // OS
161
162//! The target platform in the form OS ARCH
163#define PLATFROM OS ARCH
164
165/*!
166 * \def COMPILER
167 * \brief The compiler TSPSG was built with.
168 */
169#ifdef Q_CC_MSVC
170        #define COMPILER "Microsoft Visual C/C++ or Intel C++ for Windows"
171#elif defined(Q_CC_GNU)
172        #define COMPILER "GNU C++"
173#elif defined(Q_CC_INTEL)
174        #define COMPILER "Intel C++ for Linux or Intel C++ for Windows"
175#elif defined(Q_CC_GCCE)
176        #define COMPILER "GCCE (Symbian GCCE builds)"
177#elif defined(Q_CC_RVCT)
178        #define COMPILER "ARM Realview Compiler Suite"
179#elif defined(Q_CC_NOKIAX86)
180        #define COMPILER "Nokia x86 (Symbian WINSCW builds)"
181#else
182        #define COMPILER "Unknown"
183#endif
184
185#endif // OS_H
Note: See TracBrowser for help on using the repository browser.