1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
/*
* libtcod
* Copyright (c) 2008-2018 Jice & Mingos & rmtew
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * The name of Jice or Mingos may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY JICE, MINGOS AND RMTEW ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL JICE, MINGOS OR RMTEW BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBTCOD_PORTABILITY_H
#define LIBTCOD_PORTABILITY_H
/* uncomment to disable unicode support */
/*#define NO_UNICODE */
/* uncomment to disable opengl support */
/*#define NO_OPENGL */
/* os identification
TCOD_WINDOWS : OS is windows
TCOD_LINUX : OS is Linux
TCOD_MACOSX : OS is Mac OS X
TCOD_HAIKU : OS is Haiku */
/* compiler identification
TCOD_VISUAL_STUDIO : compiler is Microsoft Visual Studio
TCOD_MINGW32 : compiler is Mingw32
TCOD_GCC : compiler is gcc/g++ */
/* word size
TCOD_64BITS : 64 bits OS
TCOD_WIN64 : 64 bits Windows
TCOD_WIN32 : 32 bits Windows
TCOD_LINUX64 : 64 bits Linux
TCOD_LINUX32 : 32 bits Linux
TCOD_FREEBSD64 : 64 bits FreeBSD
TCOD_FREEBSD32 : 32 bits FreeBSD */
#if defined( _MSC_VER )
# define TCOD_VISUAL_STUDIO
# define TCOD_WINDOWS
# ifdef _WIN64
# define TCOD_WIN64
# define TCOD_64BITS
# else
# define TCOD_WIN32
# endif
#elif defined( __MINGW32__ )
# define TCOD_WINDOWS
# define TCOD_MINGW32
# ifdef _WIN64
# define TCOD_WIN64
# define TCOD_64BITS
# else
# define TCOD_WIN32
# endif
#elif defined( __HAIKU__ )
# define TCOD_HAIKU
# define TCOD_GCC
# if __WORDSIZE == 64
# define TCOD_64BITS
# endif
#elif defined( __linux )
# define TCOD_LINUX
# define TCOD_GCC
# if __WORDSIZE == 64
# define TCOD_LINUX64
# define TCOD_64BITS
# else
# define TCOD_LINUX32
# endif
#elif defined( __FreeBSD__ )
# define TCOD_FREEBSD
# define TCOD_GCC
# if __WORDSIZE == 64
# define TCOD_FREEBSD64
# define TCOD_64BITS
# else
# define TCOD_FREEBSD32
# endif
#elif defined (__APPLE__) && defined (__MACH__)
# define TCOD_MACOSX
# define TCOD_GCC
# if __WORDSIZE == 64
# define TCOD_64BITS
# endif
#endif
/* unicode rendering functions support */
#ifndef NO_UNICODE
#include <wchar.h>
#endif
/* DLL export */
#ifndef TCODLIB_API
#ifdef TCOD_WINDOWS
#ifdef LIBTCOD_EXPORTS
#define TCODLIB_API __declspec(dllexport)
#else
#define TCODLIB_API __declspec(dllimport)
#endif
#else
#define TCODLIB_API
#endif
#endif
/* For now this encapsulates mouse, keyboard, and consoles themselves. */
#undef TCOD_CONSOLE_SUPPORT
#undef TCOD_IMAGE_SUPPORT
#undef TCOD_OSUTIL_SUPPORT
#ifndef TCOD_BARE
#define TCOD_CONSOLE_SUPPORT
#define TCOD_IMAGE_SUPPORT
#define TCOD_OSUTIL_SUPPORT
#endif
/* int types */
#include "external/pstdint.h"
/* bool type */
#ifndef __bool_true_false_are_defined
#ifndef __cplusplus
#if defined(_MSC_VER) && _MSC_VER < 1800
typedef uint8_t bool;
#define true 1
#define false 0
#define __bool_true_false_are_defined 1
#else
#include <stdbool.h>
#endif
#endif /* __cplusplus */
#endif /* __bool_true_false_are_defined */
#ifdef __cplusplus
extern "C" {
#endif
/* ansi C lacks support for those functions */
TCODLIB_API char *TCOD_strdup(const char *s);
TCODLIB_API int TCOD_strcasecmp(const char *s1, const char *s2);
TCODLIB_API int TCOD_strncasecmp(const char *s1, const char *s2, size_t n);
#if defined(TCOD_WINDOWS)
char *strcasestr (const char *haystack, const char *needle);
#endif
#define vsnwprintf vswprintf
/* cross platform deprecation */
#if defined(_MSC_VER)
#define TCOD_DEPRECATED __declspec(deprecated)
#elif defined(__GNUC__)
#define TCOD_DEPRECATED __attribute__ ((deprecated))
#else
#define TCOD_DEPRECATED
#endif
#ifdef __cplusplus
}
#endif
#endif /* LIBTCOD_PORTABILITY_H */
|