6e8fbca745
match the genesis editor version 1.3.0.653.
155 lines
4.2 KiB
C
155 lines
4.2 KiB
C
/*!
|
|
@file
|
|
@author Denis Koronchik
|
|
@author Georgiy Evmenov
|
|
@author Albert Semenov
|
|
@date 09/2007
|
|
*/
|
|
/*
|
|
This file is part of MyGUI.
|
|
|
|
MyGUI is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
MyGUI is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef __MYGUI_PLATFORM_H__
|
|
#define __MYGUI_PLATFORM_H__
|
|
|
|
// Definition of platforms
|
|
#define MYGUI_PLATFORM_WIN32 1
|
|
#define MYGUI_PLATFORM_LINUX 2
|
|
#define MYGUI_PLATFORM_APPLE 3
|
|
|
|
// Definition of compilers
|
|
#define MYGUI_COMPILER_MSVC 1
|
|
#define MYGUI_COMPILER_GNUC 2
|
|
|
|
// ========================================== ÁÙʱÌí¼Ó [2012/4/9 zhongdaohuan] ==============================================
|
|
#define MYGUI_STATIC //¾²Ì¬Á´½Ó[2012/4/9 zhongdaohuan]
|
|
#define _CRT_SECURE_NO_WARNINGS //[2012/4/9 zhongdaohuan]
|
|
#define MYGUI_USE_FREETYPE //[2012/4/9 zhongdaohuan]
|
|
// ==========================================================================================================================
|
|
|
|
|
|
// Find platform
|
|
#if defined (__WIN32__) || defined (_WIN32)
|
|
# define MYGUI_PLATFORM MYGUI_PLATFORM_WIN32
|
|
#elif defined (__APPLE_CC__)
|
|
# define MYGUI_PLATFORM MYGUI_PLATFORM_APPLE
|
|
#else
|
|
# define MYGUI_PLATFORM MYGUI_PLATFORM_LINUX
|
|
#endif
|
|
|
|
// Find compiler
|
|
#if defined( _MSC_VER )
|
|
# define MYGUI_COMPILER MYGUI_COMPILER_MSVC
|
|
# define MYGUI_COMP_VER _MSC_VER
|
|
|
|
#elif defined( __GNUC__ )
|
|
# define MYGUI_COMPILER MYGUI_COMPILER_GNUC
|
|
# define MYGUI_COMP_VER (((__GNUC__)*100) + \
|
|
(__GNUC_MINOR__*10) + \
|
|
__GNUC_PATCHLEVEL__)
|
|
#else
|
|
# pragma error "Unknown compiler! Stop building!!!"
|
|
#endif
|
|
|
|
// See if we can use __forceinline or if we need to use __inline instead
|
|
#if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
|
|
# if MYGUI_COMP_VER >= 1200
|
|
# define MYGUI_FORCEINLINE __forceinline
|
|
# endif
|
|
#elif defined(__MINGW32__)
|
|
# if !defined(MYGUI_FORCEINLINE)
|
|
# define MYGUI_FORCEINLINE __inline
|
|
# endif
|
|
#else
|
|
# define MYGUI_FORCEINLINE __inline
|
|
#endif
|
|
|
|
|
|
// Windows settings
|
|
#if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
|
|
#
|
|
# if defined( MYGUI_STATIC )
|
|
# define MYGUI_EXPORT
|
|
# elif defined( MYGUI_BUILD )
|
|
# define MYGUI_EXPORT __declspec( dllexport )
|
|
# else
|
|
# if defined( __MINGW32__ )
|
|
# define MYGUI_EXPORT
|
|
# else
|
|
# define MYGUI_EXPORT __declspec( dllimport )
|
|
# endif
|
|
# endif
|
|
#
|
|
# if defined( MYGUI_STATIC )
|
|
# define MYGUI_EXPORT_DLL
|
|
# elif defined( MYGUI_BUILD_DLL )
|
|
# define MYGUI_EXPORT_DLL __declspec( dllexport )
|
|
# else
|
|
# if defined( __MINGW32__ )
|
|
# define MYGUI_EXPORT_DLL
|
|
# else
|
|
# define MYGUI_EXPORT_DLL __declspec( dllimport )
|
|
# endif
|
|
# endif
|
|
#
|
|
#// Win32 compilers use _DEBUG for specifying debug builds.
|
|
# ifdef _DEBUG
|
|
# define MYGUI_DEBUG_MODE 1
|
|
# else
|
|
# define MYGUI_DEBUG_MODE 0
|
|
# endif
|
|
#endif
|
|
|
|
|
|
// Linux/Apple Settings
|
|
#if MYGUI_PLATFORM == MYGUI_PLATFORM_LINUX || MYGUI_PLATFORM == MYGUI_PLATFORM_APPLE
|
|
#
|
|
// Add -fvisibility=hidden to compiler options. With -fvisibility=hidden, you are telling
|
|
// GCC that every declaration not explicitly marked with a visibility attribute (MYGUI_EXPORT)
|
|
// has a hidden visibility (like in windows).
|
|
# if __GNUC__ >= 4
|
|
# define MYGUI_EXPORT __attribute__ ((visibility("default")))
|
|
# else
|
|
# define MYGUI_EXPORT
|
|
# endif
|
|
#
|
|
# if __GNUC__ >= 4
|
|
# define MYGUI_EXPORT_DLL __attribute__ ((visibility("default")))
|
|
# else
|
|
# define MYGUI_EXPORT_DLL
|
|
# endif
|
|
#
|
|
// Unlike the Win32 compilers, Linux compilers seem to use DEBUG for when
|
|
// specifying a debug build.
|
|
// (??? this is wrong, on Linux debug builds aren't marked in any way unless
|
|
// you mark it yourself any way you like it -- zap ???)
|
|
# ifdef DEBUG
|
|
# define MYGUI_DEBUG_MODE 1
|
|
# else
|
|
# define MYGUI_DEBUG_MODE 0
|
|
# endif
|
|
|
|
# if MYGUI_PLATFORM == MYGUI_PLATFORM_APPLE
|
|
# define MYGUI_PLATFORM_LIB "MYGUIPlatform.bundle"
|
|
# else // if MYGUI_PLATFORM_LINUX
|
|
# define MYGUI_PLATFORM_LIB "libMYGUIPlatform.so"
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
#endif // __MYGUI_PLATFORM_H__
|