DEADSOFTWARE

build: move dependency check to modules where they used
[d2df-sdl.git] / src / shared / a_modes.inc
index fc8cc51c991dc635defab80fef4b0e2aacbc1f7e..fd1463334de5a7da10f6fb8016aa42d72b9cf164 100644 (file)
@@ -26,6 +26,9 @@
 {$MODESWITCH TYPEHELPERS+} // Allow the use of type helpers.
 {$MODESWITCH UNICODESTRINGS-}
 
+{$IFDEF DARWIN}
+  {$MODESWITCH OBJECTIVEC1}
+{$ENDIF}
 
 {$ASSERTIONS ON}
 {$BITPACKING OFF}
@@ -63,7 +66,7 @@
   {$DEFINE D2F_MORE_OPTIM}
 {$ENDIF}
 {$WARNINGS ON}
-{$NOTES ON}
+{.$NOTES ON}
 
 {$IF DEFINED(D2F_DEBUG_OPTIM) or DEFINED(D2F_MORE_OPTIM)}
   {$OPTIMIZATION DEADVALUES}
     {$DEFINE WINDOWS}
   {$ENDIF WINDOWS}
 {$ENDIF}
+
+(* --------- Build options check --------- *)
+
+{$IFDEF HEADLESS}
+  {$DEFINE USE_SYSSTUB}
+  {$IF DEFINED(USE_SDL) OR DEFINED(USE_SDL2)}
+    {$WARNING System drivers not supported in headless mode. Force stub driver...}
+    {$UNDEF USE_SDL}
+    {$UNDEF USE_SDL2}
+  {$ENDIF}
+  {$DEFINE USE_GLSTUB}
+  {$IF DEFINED(USE_GLES1) OR DEFINED(USE_OPENGL)}
+    {$WARNING Render drivers not needed in headless mode. Force stub driver...}
+    {$UNDEF USE_GLES1}
+    {$UNDEF USE_OPENGL}
+  {$ENDIF}
+  {$IFDEF ENABLE_HOLMES}
+    {$WARNING Holmes in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_HOLMES}
+  {$ENDIF}
+  {$IFDEF ENABLE_MENU}
+    {$WARNING Menu in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_MENU}
+    {$DEFINE DISABLE_MENU}
+  {$ENDIF}
+  {$IFDEF ENABLE_TOUCH}
+    {$WARNING Touch screen in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_TOUCH}
+    {$DEFINE DISABLE_TOUCH}
+  {$ENDIF}
+  {$IFDEF ENABLE_GFX}
+    {$WARNING GFX in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_GFX}
+    {$DEFINE DISABLE_GFX}
+  {$ENDIF}
+  {$IFDEF ENABLE_GIBS}
+    {$WARNING Gibs in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_GIBS}
+    {$DEFINE DISABLE_GIBS}
+  {$ENDIF}
+  {$IFDEF ENABLE_SHELLS}
+    {$WARNING Shells in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_SHELLS}
+    {$DEFINE DISABLE_SHELLS}
+  {$ENDIF}
+  {$IFDEF ENABLE_CORPSES}
+    {$WARNING Corpses in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_CORPSES}
+    {$DEFINE DISABLE_CORPSES}
+  {$ENDIF}
+  {$IFDEF ENABLE_RENDER}
+    {$WARNING Render in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_RENDER}
+    {$DEFINE DISABLE_RENDER}
+  {$ENDIF}
+  {$IFDEF ENABLE_SYSTEM}
+    {$WARNING System in headless mode has no sense. Disabled.}
+    {$UNDEF ENABLE_SYSTEM}
+    {$DEFINE DISABLE_SYSTEM}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_MENU) AND DEFINED(DISABLE_MENU)}
+  {$ERROR Select ENABLE_MENU or DISABLE_MENU}
+{$ELSEIF NOT DEFINED(ENABLE_MENU) AND NOT DEFINED(DISABLE_MENU)}
+  // defaut ENABLE/DISABLE menu
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_MENU}
+  {$ELSE}
+    {$DEFINE ENABLE_MENU}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_TOUCH) AND DEFINED(DISABLE_TOUCH)}
+  {$ERROR Select ENABLE_TOUCH or DISABLE_TOUCH}
+{$ELSEIF NOT DEFINED(ENABLE_TOUCH) AND NOT DEFINED(DISABLE_TOUCH)}
+  // defaut ENABLE/DISABLE touch
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_TOUCH}
+  {$ELSE}
+    {$DEFINE ENABLE_TOUCH}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_GFX) AND DEFINED(DISABLE_GFX)}
+  {$ERROR Select ENABLE_GFX or DISABLE_GFX}
+{$ELSEIF NOT DEFINED(ENABLE_GFX) AND NOT DEFINED(DISABLE_GFX)}
+  // default ENABLE/DISABLE gfx
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_GFX}
+  {$ELSE}
+    {$DEFINE ENABLE_GFX}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_GIBS) AND DEFINED(DISABLE_GIBS)}
+  {$ERROR Select ENABLE_GIBS or DISABLE_GIBS}
+{$ELSEIF NOT DEFINED(ENABLE_GIBS) AND NOT DEFINED(DISABLE_GIBS)}
+  // default ENABLE/DISABLE gibs
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_GIBS}
+  {$ELSE}
+    {$DEFINE ENABLE_GIBS}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_SHELLS) AND DEFINED(DISABLE_SHELLS)}
+  {$ERROR Select ENABLE_SHELLS or DISABLE_SHELLS}
+{$ELSEIF NOT DEFINED(ENABLE_SHELLS) AND NOT DEFINED(DISABLE_SHELLS)}
+  // default ENABLE/DISABLE gibs
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_SHELLS}
+  {$ELSE}
+    {$DEFINE ENABLE_SHELLS}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_CORPSES) AND DEFINED(DISABLE_CORPSES)}
+  {$ERROR Select ENABLE_CORPSES or DISABLE_CORPSES}
+{$ELSEIF NOT DEFINED(ENABLE_CORPSES) AND NOT DEFINED(DISABLE_CORPSES)}
+  // default ENABLE/DISABLE corpses
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_CORPSES}
+  {$ELSE}
+    {$DEFINE ENABLE_CORPSES}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_RENDER) AND DEFINED(DISABLE_RENDER)}
+  {$ERROR Select ENABLE_RENDER or DISABLE_RENDER}
+{$ELSEIF NOT DEFINED(ENABLE_RENDER) AND NOT DEFINED(DISABLE_RENDER)}
+  // default ENABLE/DISABLE render
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_RENDER}
+  {$ELSE}
+    {$DEFINE ENABLE_RENDER}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(ENABLE_SYSTEM) AND DEFINED(DISABLE_SYSTEM)}
+  {$ERROR Select ENABLE_SYSTEM or DISABLE_SYSTEM}
+{$ELSEIF NOT DEFINED(ENABLE_SYSTEM) AND NOT DEFINED(DISABLE_SYSTEM)}
+  // default ENABLE/DISABLE system driver
+  {$IFDEF HEADLESS}
+    {$DEFINE DISABLE_SYSTEM}
+  {$ELSE}
+    {$DEFINE ENABLE_SYSTEM}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(USE_SYSSTUB)}
+  {$IF DEFINED(USE_SDL) OR DEFINED(USE_SDL2)}
+    {$ERROR Only one system driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_SDL)}
+  {$IF DEFINED(USE_SYSSTUB) OR DEFINED(USE_SDL2)}
+    {$ERROR Only one system driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_SDL2)}
+  {$IF DEFINED(USE_SYSSTUB) OR DEFINED(USE_SDL)}
+    {$ERROR Only one system driver must be selected!}
+  {$ENDIF}
+{$ELSE}
+  {$DEFINE USE_SDL2}
+  {.$ERROR System driver not selected. Use -dUSE_SYSSTUB or -dUSE_SDL or -dUSE_SDL2}
+{$ENDIF}
+
+{$IF DEFINED(USE_SOUNDSTUB)}
+  {$IF DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_SDLMIXER)}
+  {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_FMOD)}
+  {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_SDLMIXER) OR DEFINED(USE_OPENAL)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_OPENAL)}
+  {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD)}
+    {$ERROR Only one sound driver must be selected!}
+  {$ENDIF}
+{$ELSE}
+  {$IFDEF IN_TOOLS}
+    {$DEFINE USE_SOUNDSTUB}
+  {$ELSE}
+    {$ERROR Sound driver not selected. Use -dUSE_SOUNDSTUB or -dUSE_SDLMIXER or -dUSE_FMOD or -dUSE_OPENAL}
+  {$ENDIF}
+{$ENDIF}
+
+{$IF DEFINED(USE_GLSTUB)}
+  {$IF DEFINED(USE_GLES1) OR DEFINED(USE_OPENGL) OR DEFINED(USE_STUBRENDER) OR DEFINED(USE_NEWGL)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_GLES1)}
+  {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_OPENGL) OR DEFINED(USE_STUBRENDER) OR DEFINED(USE_NEWGL)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_OPENGL)}
+  {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_GLES1) OR DEFINED(USE_STUBRENDER) OR DEFINED(USE_NEWGL)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_STUBRENDER)}
+  {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_OPENGL) OR DEFINED(USE_GLES1) OR DEFINED(USE_NEWGL)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(USE_NEWGL)}
+  {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_OPENGL) OR DEFINED(USE_GLES1) OR DEFINED(USE_STUBRENDER)}
+    {$ERROR Only one render driver must be selected!}
+  {$ENDIF}
+{$ELSEIF DEFINED(ENABLE_RENDER)}
+  {$DEFINE USE_OPENGL}
+  {.$ERROR Render driver not selected. Use -dUSE_OPENGL or -dUSE_GLES1}
+{$ENDIF}
+
+{$IFDEF DISABLE_RENDER}
+  {$UNDEF USE_GLSTUB}
+  {$UNDEF USE_GLES1}
+  {$UNDEF USE_OPENGL}
+  {$UNDEF USE_STUBRENDER}
+{$ENDIF}