*Backed out changeset 3be01fb200a5
--HG-- branch : trunk
This commit is contained in:
@@ -1,26 +1,35 @@
|
||||
/**
|
||||
@file platform.h
|
||||
|
||||
#defines for platform specific issues.
|
||||
|
||||
@maintainer Morgan McGuire, [email protected]
|
||||
|
||||
@created 2003-06-09
|
||||
@edited 2006-01-16
|
||||
*/
|
||||
|
||||
#ifndef G3D_PLATFORM_H
|
||||
#define G3D_PLATFORM_H
|
||||
|
||||
/**
|
||||
The version number of G3D in the form: MmmBB ->
|
||||
version M.mm [beta BB]
|
||||
*/
|
||||
#define G3D_VER 61000
|
||||
|
||||
#if defined(G3D_RELEASEDEBUG)
|
||||
# define G3D_DEBUGRELEASE
|
||||
#endif
|
||||
|
||||
#if defined(G3D_DEBUGRELEASE) && defined(_DEBUG)
|
||||
# undef _DEBUG
|
||||
#endif
|
||||
|
||||
#if !defined(G3D_DEBUG) && (defined(_DEBUG) || defined(G3D_DEBUGRELEASE))
|
||||
# define G3D_DEBUG
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define G3D_WIN32
|
||||
#elif defined(__MINGW32__)
|
||||
@@ -40,52 +49,65 @@
|
||||
#error Unknown platform
|
||||
#endif
|
||||
|
||||
|
||||
// Default to compiling with SSE, but if you want to compile
|
||||
// without installing SP5.0 and the Processor Pack on Windows, compile with NO_SSE
|
||||
// defined (can be passed to the compiler command line with /D "NO_SSE")
|
||||
#if !defined(NO_SSE)
|
||||
#define SSE
|
||||
#endif
|
||||
|
||||
#ifdef G3D_WIN32
|
||||
// Turn off warnings about deprecated C routines (TODO: revisit)
|
||||
# pragma warning (disable : 4996)
|
||||
#endif
|
||||
|
||||
// On g++, recognize cases where the -msse2 flag was not specified
|
||||
#if defined(SSE) && defined(__GNUC__) && ! defined (__SSE__)
|
||||
# undef SSE
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__)
|
||||
# if __STDC_VERSION__ < 199901
|
||||
# define restrict __restrict__
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
// Verify that the supported compilers are being used and that this is a known
|
||||
// processor.
|
||||
|
||||
#ifdef G3D_LINUX
|
||||
# ifndef __GNUC__
|
||||
# error G3D only supports the gcc compiler on Linux.
|
||||
# endif
|
||||
|
||||
//# ifndef __i386__
|
||||
//# error G3D only supports x86 machines on Linux.
|
||||
//# endif
|
||||
|
||||
# define G3D_DEPRECATED __attribute__((__deprecated__))
|
||||
|
||||
# ifndef __cdecl
|
||||
# define __cdecl __attribute__((cdecl))
|
||||
# endif
|
||||
|
||||
# ifndef __stdcall
|
||||
# define __stdcall __attribute__((stdcall))
|
||||
# endif
|
||||
|
||||
# define G3D_CHECK_PRINTF_METHOD_ARGS __attribute__((__format__(__printf__, 2, 3)))
|
||||
# define G3D_CHECK_VPRINTF_METHOD_ARGS __attribute__((__format__(__printf__, 2, 0)))
|
||||
# define G3D_CHECK_PRINTF_ARGS __attribute__((__format__(__printf__, 1, 2)))
|
||||
# define G3D_CHECK_VPRINTF_ARGS __attribute__((__format__(__printf__, 1, 0)))
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef G3D_OSX
|
||||
#ifndef __GNUC__
|
||||
#error G3D only supports the gcc compiler on OS X.
|
||||
#endif
|
||||
|
||||
#if defined(__i386__)
|
||||
#define G3D_OSX_INTEL
|
||||
#elif defined(__PPC__)
|
||||
@@ -93,24 +115,30 @@
|
||||
#else
|
||||
#define G3D_OSX_UNKNOWN
|
||||
#endif
|
||||
|
||||
# ifndef __cdecl
|
||||
# define __cdecl __attribute__((cdecl))
|
||||
# endif
|
||||
|
||||
# ifndef __stdcall
|
||||
# define __stdcall __attribute__((stdcall))
|
||||
# endif
|
||||
|
||||
# define G3D_DEPRECATED __attribute__((__deprecated__))
|
||||
|
||||
# define G3D_CHECK_PRINTF_METHOD_ARGS __attribute__((__format__(__printf__, 2, 3)))
|
||||
# define G3D_CHECK_VPRINTF_METHOD_ARGS __attribute__((__format__(__printf__, 2, 0)))
|
||||
# define G3D_CHECK_PRINTF_ARGS __attribute__((__format__(__printf__, 1, 2)))
|
||||
# define G3D_CHECK_VPRINTF_ARGS __attribute__((__format__(__printf__, 1, 0)))
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef G3D_WIN32
|
||||
// Microsoft Visual C++ 7.1 _MSC_VER = 1310
|
||||
// Microsoft Visual C++ 7.0 _MSC_VER = 1300
|
||||
// Microsoft Visual C++ 6.0 _MSC_VER = 1200
|
||||
// Microsoft Visual C++ 5.0 _MSC_VER = 1100
|
||||
|
||||
// Old versions of MSVC (6.0 and previous) don't
|
||||
// support C99 for loop scoping rules. This fixes them.
|
||||
# if (_MSC_VER <= 1200)
|
||||
@@ -118,34 +146,42 @@
|
||||
# pragma warning (disable : 4127)
|
||||
# define for if (false) {} else for
|
||||
# endif
|
||||
|
||||
# if (_MSC_VER <= 1200)
|
||||
// Nothing we can do on VC6 for deprecated functions
|
||||
# define G3D_DEPRECATED
|
||||
# else
|
||||
# define G3D_DEPRECATED __declspec(deprecated)
|
||||
# endif
|
||||
|
||||
// Prevent Winsock conflicts by hiding the winsock API
|
||||
#ifndef _WINSOCKAPI_
|
||||
# define _G3D_INTERNAL_HIDE_WINSOCK_
|
||||
# define _WINSOCKAPI_
|
||||
# endif
|
||||
|
||||
// Disable 'name too long for browse information' warning
|
||||
# pragma warning (disable : 4786)
|
||||
// TODO: remove
|
||||
# pragma warning (disable : 4244)
|
||||
|
||||
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||
// VC6 std:: has signed problems in it
|
||||
# pragma warning (disable : 4018)
|
||||
# endif
|
||||
|
||||
# define ZLIB_WINAPI
|
||||
|
||||
// Mingw32 defines restrict
|
||||
# ifndef G3D_MINGW32
|
||||
# define restrict
|
||||
# endif
|
||||
|
||||
# define G3D_CHECK_PRINTF_ARGS
|
||||
# define G3D_CHECK_VPRINTF_ARGS
|
||||
# define G3D_CHECK_PRINTF_METHOD_ARGS
|
||||
# define G3D_CHECK_VPRINTF_METHOD_ARGS
|
||||
|
||||
// On MSVC, we need to link against the multithreaded DLL version of
|
||||
// the C++ runtime because that is what SDL and ZLIB are compiled
|
||||
// against. This is not the default for MSVC, so we set the following
|
||||
@@ -155,11 +191,13 @@
|
||||
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_.2f.md.2c_2f.ml.2c_2f.mt.2c_2f.ld.asp
|
||||
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_core_Compiler_Reference.asp
|
||||
//
|
||||
|
||||
#if 0 //ignore that for Trinity
|
||||
// DLL runtime
|
||||
#ifndef _DLL
|
||||
#define _DLL
|
||||
#endif
|
||||
|
||||
// Multithreaded runtime
|
||||
#ifndef _MT
|
||||
#define _MT 1
|
||||
@@ -169,6 +207,7 @@
|
||||
#undef _STATIC_CPPLIB
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _DEBUG
|
||||
#pragma comment (linker, "/NODEFAULTLIB:libc.lib")
|
||||
#pragma comment (linker, "/NODEFAULTLIB:libcmt.lib")
|
||||
@@ -182,38 +221,50 @@
|
||||
#pragma comment(linker, "/NODEFAULTLIB:libcmtd.lib")
|
||||
#pragma comment(linker, "/NODEFAULTLIB:msvcrtd.lib")
|
||||
#endif
|
||||
|
||||
// Now set up external linking
|
||||
|
||||
#ifdef _DEBUG
|
||||
// zlib and SDL were linked against the release MSVCRT; force
|
||||
// the debug version.
|
||||
#pragma comment(linker, "/NODEFAULTLIB:MSVCRT.LIB")
|
||||
# endif
|
||||
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN 1
|
||||
# endif
|
||||
|
||||
|
||||
# define NOMINMAX 1
|
||||
# include <windows.h>
|
||||
# undef WIN32_LEAN_AND_MEAN
|
||||
# undef NOMINMAX
|
||||
|
||||
#ifdef _G3D_INTERNAL_HIDE_WINSOCK_
|
||||
# undef _G3D_INTERNAL_HIDE_WINSOCK_
|
||||
# undef _WINSOCKAPI_
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||
// VC6 std:: has signed/unsigned problems
|
||||
# pragma warning (disable : 4018)
|
||||
# endif
|
||||
|
||||
/**
|
||||
@def STR(expression)
|
||||
|
||||
Creates a string from the expression. Frequently used with G3D::Shader
|
||||
to express shading programs inline.
|
||||
|
||||
<CODE>STR(this becomes a string)<PRE> evaluates the same as <CODE>"this becomes a string"</CODE>
|
||||
*/
|
||||
#define STR(x) #x
|
||||
|
||||
#undef G3D_DEPRECATED
|
||||
#define G3D_DEPRECATED
|
||||
|
||||
// Header guard
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user