]> git.lizzy.rs Git - irrlicht.git/blob - include/IrrCompileConfig.h
Move platform detection to CMake
[irrlicht.git] / include / IrrCompileConfig.h
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #ifndef __IRR_COMPILE_CONFIG_H_INCLUDED__\r
6 #define __IRR_COMPILE_CONFIG_H_INCLUDED__\r
7 \r
8 //! Identifies the IrrlichtMt fork customized for the Minetest engine\r
9 #define IRRLICHT_VERSION_MT_REVISION 9\r
10 #define IRRLICHT_VERSION_MT "mt9"\r
11 \r
12 //! Irrlicht SDK Version\r
13 #define IRRLICHT_VERSION_MAJOR 1\r
14 #define IRRLICHT_VERSION_MINOR 9\r
15 #define IRRLICHT_VERSION_REVISION 0\r
16 // This flag will be defined only in SVN, the official release code will have\r
17 // it undefined\r
18 #define IRRLICHT_VERSION_SVN alpha\r
19 #define IRRLICHT_SDK_VERSION "1.9.0" IRRLICHT_VERSION_MT\r
20 \r
21 #include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw\r
22 \r
23 \r
24 //! Maximum number of texture an SMaterial can have, up to 8 are supported by Irrlicht.\r
25 #define _IRR_MATERIAL_MAX_TEXTURES_ 4\r
26 \r
27 \r
28 #ifdef _IRR_WINDOWS_API_\r
29 \r
30 // To build Irrlicht as a static library, you must define _IRR_STATIC_LIB_ in both the\r
31 // Irrlicht build, *and* in the user application, before #including <irrlicht.h>\r
32 #ifndef _IRR_STATIC_LIB_\r
33 #ifdef IRRLICHT_EXPORTS\r
34 #define IRRLICHT_API __declspec(dllexport)\r
35 #else\r
36 #define IRRLICHT_API __declspec(dllimport)\r
37 #endif // IRRLICHT_EXPORT\r
38 #else\r
39 #define IRRLICHT_API\r
40 #endif // _IRR_STATIC_LIB_\r
41 \r
42 // Declare the calling convention.\r
43 #if defined(_STDCALL_SUPPORTED)\r
44 #define IRRCALLCONV __stdcall\r
45 #else\r
46 #define IRRCALLCONV __cdecl\r
47 #endif // STDCALL_SUPPORTED\r
48 \r
49 #else // _IRR_WINDOWS_API_\r
50 \r
51 // Force symbol export in shared libraries built with gcc.\r
52 #if defined(__GNUC__) && !defined(_IRR_STATIC_LIB_) && defined(IRRLICHT_EXPORTS)\r
53 #define IRRLICHT_API __attribute__ ((visibility("default")))\r
54 #else\r
55 #define IRRLICHT_API\r
56 #endif\r
57 \r
58 #define IRRCALLCONV\r
59 \r
60 #endif // _IRR_WINDOWS_API_\r
61 \r
62 \r
63 #define _IRR_COMPILE_WITH_GUI_\r
64 #define _IRR_COMPILE_WITH_LIBJPEG_\r
65 #define _IRR_COMPILE_WITH_LIBPNG_\r
66 #define _IRR_COMPILE_WITH_BILLBOARD_SCENENODE_\r
67 #define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_\r
68 #define _IRR_COMPILE_WITH_B3D_LOADER_\r
69 #define _IRR_COMPILE_WITH_X_LOADER_\r
70 #define _IRR_COMPILE_WITH_OBJ_LOADER_\r
71 #define _IRR_COMPILE_WITH_BMP_LOADER_\r
72 #define _IRR_COMPILE_WITH_JPG_LOADER_\r
73 #define _IRR_COMPILE_WITH_PNG_LOADER_\r
74 #define _IRR_COMPILE_WITH_TGA_LOADER_\r
75 #define _IRR_COMPILE_WITH_JPG_WRITER_\r
76 #define _IRR_COMPILE_WITH_PNG_WRITER_\r
77 #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_\r
78 #define _IRR_COMPILE_WITH_ZLIB_\r
79 #define __IRR_HAS_S64\r
80 \r
81 \r
82 #ifdef _DEBUG\r
83         //! A few attributes are written in CSceneManager when _IRR_SCENEMANAGER_DEBUG is enabled\r
84         // NOTE: Those attributes were used always until 1.8.0 and became a global define for 1.8.1\r
85         // which is only enabled in debug because it had a large (sometimes >5%) impact on speed.\r
86         // A better solution in the long run is to break the interface and remove _all_ attribute\r
87         // access in functions like CSceneManager::drawAll and instead put that information in some\r
88         // own struct/class or in CSceneManager.\r
89         // See http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=48211 for the discussion.\r
90         #define _IRR_SCENEMANAGER_DEBUG\r
91         #ifdef NO_IRR_SCENEMANAGER_DEBUG\r
92                 #undef _IRR_SCENEMANAGER_DEBUG\r
93         #endif\r
94 #endif\r
95 \r
96 #endif // __IRR_COMPILE_CONFIG_H_INCLUDED__\r