1 module dlangui.core.config; 2 3 //version = USE_CONSOLE; 4 5 version(USE_CONSOLE) { 6 version = NO_OPENGL; 7 version = NO_FREETYPE; 8 enum ENABLE_OPENGL = false; 9 enum ENABLE_FREETYPE = false; 10 enum BACKEND_CONSOLE = true; 11 enum BACKEND_GUI = false; 12 enum BACKEND_SDL = false; 13 enum BACKEND_X11 = false; 14 enum BACKEND_DSFML = false; 15 enum BACKEND_WIN32 = false; 16 enum BACKEND_ANDROID = false; 17 } else { 18 enum BACKEND_GUI = true; 19 version (NO_FREETYPE) { 20 enum ENABLE_FREETYPE = false; 21 } else version (USE_FREETYPE) { 22 enum ENABLE_FREETYPE = true; 23 } else { 24 version (Windows) { 25 enum ENABLE_FREETYPE = false; 26 } else { 27 enum ENABLE_FREETYPE = true; 28 } 29 } 30 31 // provide default configuratino definitions 32 version (USE_SDL) { 33 // SDL backend already selected using version identifier 34 version (USE_OPENGL) { 35 enum ENABLE_OPENGL = true; 36 } else { 37 enum ENABLE_OPENGL = false; 38 } 39 enum BACKEND_SDL = true; 40 enum BACKEND_X11 = false; 41 enum BACKEND_DSFML = false; 42 enum BACKEND_WIN32 = false; 43 enum BACKEND_ANDROID = false; 44 enum BACKEND_CONSOLE = false; 45 } else version (USE_ANDROID) { 46 // Android backend already selected using version identifier 47 version (USE_OPENGL) { 48 enum ENABLE_OPENGL = true; 49 } else { 50 enum ENABLE_OPENGL = false; 51 } 52 enum BACKEND_SDL = false; 53 enum BACKEND_X11 = false; 54 enum BACKEND_DSFML = false; 55 enum BACKEND_WIN32 = false; 56 enum BACKEND_ANDROID = true; 57 enum BACKEND_CONSOLE = false; 58 } else version (USE_X11) { 59 // X11 backend already selected using version identifier 60 version (USE_OPENGL) { 61 enum ENABLE_OPENGL = true; 62 } else { 63 enum ENABLE_OPENGL = false; 64 } 65 enum BACKEND_SDL = false; 66 enum BACKEND_X11 = true; 67 enum BACKEND_DSFML = false; 68 enum BACKEND_WIN32 = false; 69 enum BACKEND_CONSOLE = false; 70 } else version (USE_WIN32) { 71 // Win32 backend already selected using version identifier 72 version (USE_OPENGL) { 73 enum ENABLE_OPENGL = true; 74 } else { 75 enum ENABLE_OPENGL = false; 76 } 77 enum BACKEND_SDL = false; 78 enum BACKEND_X11 = false; 79 enum BACKEND_DSFML = false; 80 enum BACKEND_WIN32 = true; 81 enum BACKEND_ANDROID = false; 82 enum BACKEND_CONSOLE = false; 83 } else version (USE_DSFML) { 84 // DSFML backend already selected using version identifier 85 version (USE_OPENGL) { 86 enum ENABLE_OPENGL = true; 87 } else { 88 enum ENABLE_OPENGL = false; 89 } 90 enum BACKEND_SDL = false; 91 enum BACKEND_X11 = false; 92 enum BACKEND_DSFML = true; 93 enum BACKEND_WIN32 = false; 94 enum BACKEND_ANDROID = false; 95 enum BACKEND_CONSOLE = false; 96 } else { 97 // no backend selected: set default based on platform 98 version (Windows) { 99 // For Windows 100 version (NO_OPENGL) { 101 enum ENABLE_OPENGL = false; 102 } else { 103 enum ENABLE_OPENGL = true; 104 } 105 enum BACKEND_SDL = false; 106 enum BACKEND_X11 = false; 107 enum BACKEND_DSFML = false; 108 enum BACKEND_WIN32 = true; 109 enum BACKEND_ANDROID = false; 110 enum BACKEND_CONSOLE = false; 111 } else version(Android) { 112 // Default for Linux: use SDL and OpenGL 113 enum ENABLE_OPENGL = true; 114 enum BACKEND_SDL = true; 115 enum BACKEND_X11 = false; 116 enum BACKEND_DSFML = false; 117 enum BACKEND_WIN32 = false; 118 enum BACKEND_ANDROID = true; 119 enum BACKEND_CONSOLE = false; 120 } else version(linux) { 121 // Default for Linux: use SDL and OpenGL 122 version (NO_OPENGL) { 123 enum ENABLE_OPENGL = false; 124 } else { 125 enum ENABLE_OPENGL = true; 126 } 127 enum BACKEND_SDL = true; 128 enum BACKEND_X11 = false; 129 enum BACKEND_DSFML = false; 130 enum BACKEND_WIN32 = false; 131 enum BACKEND_ANDROID = false; 132 enum BACKEND_CONSOLE = false; 133 } else version(OSX) { 134 // Default: use SDL and OpenGL 135 version (NO_OPENGL) { 136 enum ENABLE_OPENGL = false; 137 } else { 138 enum ENABLE_OPENGL = true; 139 } 140 enum BACKEND_SDL = true; 141 enum BACKEND_X11 = false; 142 enum BACKEND_DSFML = false; 143 enum BACKEND_WIN32 = false; 144 enum BACKEND_ANDROID = false; 145 enum BACKEND_CONSOLE = false; 146 } else { 147 // Unknown platform: use SDL and OpenGL 148 version (NO_OPENGL) { 149 enum ENABLE_OPENGL = false; 150 } else { 151 enum ENABLE_OPENGL = true; 152 } 153 enum BACKEND_SDL = true; 154 enum BACKEND_X11 = false; 155 enum BACKEND_DSFML = false; 156 enum BACKEND_WIN32 = false; 157 enum BACKEND_ANDROID = false; 158 enum BACKEND_CONSOLE = false; 159 } 160 } 161 }