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

Last change on this file since 139 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
RevLine 
[116]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 *
[132]65 * This value will be used in task file metadata.
[116]66 */
67#ifdef Q_OS_AIX
[133]68        #define OS "AIX"
[116]69        #define OSID quint8(1)
70#elif defined Q_OS_BSD4
[133]71        #define OS "BSD 4.4"
[116]72        #define OSID quint8(2)
73#elif defined Q_OS_BSDI
[133]74        #define OS "BSD/OS"
[116]75        #define OSID quint8(3)
76#elif defined Q_OS_CYGWIN
[133]77        #define OS "Cygwin"
[116]78        #define OSID quint8(4)
79#elif defined Q_OS_DGUX
[133]80        #define OS "DG/UX"
[116]81        #define OSID quint8(5)
82#elif defined Q_OS_DYNIX
[133]83        #define OS "DYNIX/ptx"
[116]84        #define OSID quint8(6)
85#elif defined Q_OS_FREEBSD
[133]86        #define OS "FreeBSD"
[116]87        #define OSID quint8(7)
88#elif defined Q_OS_HPUX
[133]89        #define OS "HP-UX"
[116]90        #define OSID quint8(8)
91#elif defined Q_OS_HURD
[133]92        #define OS "GNU Hurd"
[116]93        #define OSID quint8(9)
94#elif defined Q_OS_IRIX
[133]95        #define OS "SGI Irix"
[116]96        #define OSID quint8(10)
97#elif defined Q_OS_LINUX
[133]98        #define OS "Linux"
[116]99        #define OSID quint8(11)
100#elif defined Q_OS_LYNX
[133]101        #define OS "LynxOS"
[116]102        #define OSID quint8(12)
103#elif defined Q_OS_MAC
[133]104        #define OS "Mac OS (Darwin)"
[116]105        #define OSID quint8(13)
106#elif defined Q_OS_MSDOS
[133]107        #define OS "MS-DOS"
[116]108        #define OSID quint8(14)
109#elif defined Q_OS_NETBSD
[133]110        #define OS "NetBSD"
[116]111        #define OSID quint8(15)
112#elif defined Q_OS_OS2
[133]113        #define OS "OS/2"
[116]114        #define OSID quint8(16)
115#elif defined Q_OS_OPENBSD
[133]116        #define OS "OpenBSD"
[116]117        #define OSID quint8(17)
118#elif defined Q_OS_OS2EMX
[133]119        #define OS "OS/2"
[116]120        #define OSID quint8(18)
121#elif defined Q_OS_OSF
[133]122        #define OS "HP Tru64 UNIX"
[116]123        #define OSID quint8(19)
124#elif defined Q_OS_QNX
[133]125        #define OS "QNX Neutrino"
[116]126        #define OSID quint8(20)
127#elif defined Q_OS_RELIANT
[133]128        #define OS "Reliant UNIX"
[116]129        #define OSID quint8(21)
130#elif defined Q_OS_SCO
[133]131        #define OS "SCO OpenServer 5"
[116]132        #define OSID quint8(22)
133#elif defined Q_OS_SOLARIS
[133]134        #define OS "Sun Solaris"
[116]135        #define OSID quint8(23)
136#elif defined Q_OS_SYMBIAN
[133]137        #define OS "Symbian"
[116]138        #define OSID quint8(24)
139#elif defined Q_OS_ULTRIX
[133]140        #define OS "DEC Ultrix"
[116]141        #define OSID quint8(25)
142#elif defined Q_OS_UNIX
[133]143        #define OS "UNIX BSD/SYSV"
[116]144        #define OSID quint8(26)
145#elif defined Q_OS_UNIXWARE
[133]146        #define OS "UnixWare 7/Open UNIX 8"
[116]147        #define OSID quint8(27)
148#elif defined Q_OS_WIN32
[133]149        #define OS "Windows"
[116]150        #define OSID quint8(28)
151#elif defined Q_OS_WINCE_WM
[133]152        #define OS "Windows Mobile"
[116]153        #define OSID quint8(29)
154#elif defined Q_OS_WINCE
[133]155        #define OS "Windows CE"
[116]156        #define OSID quint8(30)
157#else
[133]158        #define OS "Unknown"
[116]159        #define OSID quint8(255)
160#endif // OS
161
[133]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
[116]185#endif // OS_H
Note: See TracBrowser for help on using the repository browser.