X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fshared%2Fa_modes.inc;h=d018fa0ddcc1f35ba5b88ab36e9fde8028a4c8de;hb=bb931202515154fd56edaa5657d0f69f1cce0e75;hp=35e29d6ec289341da8ddd68f270baa17b10ce5d6;hpb=dd0d8ac4cc2a0aa774f25c8a1a774f7358acfae7;p=d2df-sdl.git diff --git a/src/shared/a_modes.inc b/src/shared/a_modes.inc index 35e29d6..d018fa0 100644 --- a/src/shared/a_modes.inc +++ b/src/shared/a_modes.inc @@ -1,22 +1,290 @@ // compiler options, common for all game modules -{$MODE DELPHI} -{$MODESWITCH NESTEDPROCVARS+} -{$MODESWITCH DUPLICATELOCALS-} -{.$MODESWITCH CBLOCKS+} +{$MODE OBJFPC} + {$MODESWITCH ADVANCEDRECORDS+} +{$MODESWITCH ALLOWINLINE+} +{$MODESWITCH ANSISTRINGS+} // Allow use of ansistrings. +{$MODESWITCH AUTODEREF+} // Automatic (silent) dereferencing of typed pointers. +{$MODESWITCH CLASS+} +{$MODESWITCH CLASSICPROCVARS+} // Use classical procedural variables. +{$MODESWITCH DEFAULTPARAMETERS+} // Allow use of default parameter values. +{$MODESWITCH DUPLICATELOCALS-} // Allow local variables in class methods to have the same names as properties of the class. +{$MODESWITCH EXCEPTIONS+} +{$MODESWITCH HINTDIRECTIVE+} // Support the hint directives (deprecated, platform etc.) +{$MODESWITCH INITFINAL+} // Allow use of Initialization and Finalization +{.$MODESWITCH ISOUNARYMINUS-} // Unary minus as required by ISO pascal. +{$MODESWITCH MACPROCVARS-} // Use mac-style procedural variables. +{$MODESWITCH NESTEDCOMMENTS-} +{$MODESWITCH NESTEDPROCVARS+} +{$MODESWITCH OBJPAS+} +{$MODESWITCH OUT+} // Allow use of the out parameter type. +{$MODESWITCH PCHARTOSTRING+} +{$MODESWITCH POINTERTOPROCVAR+} // Allow silent conversion of pointers to procedural variables. +{$MODESWITCH PROPERTIES+} +{$MODESWITCH REPEATFORWARD+} // Implementation and Forward declaration must match completely. +{$MODESWITCH RESULT+} +{$MODESWITCH TYPEHELPERS+} // Allow the use of type helpers. +{$MODESWITCH UNICODESTRINGS-} + +{$IFDEF DARWIN} + {$MODESWITCH OBJECTIVEC1} +{$ENDIF} + {$ASSERTIONS ON} +{$BITPACKING OFF} +{$BOOLEVAL OFF} +{$COPERATORS ON} +{$EXTENDEDSYNTAX ON} +{$IFDEF CPU386} + {$FPUTYPE SSE} +{$ENDIF} +{$GOTO ON} +{$IEEEERRORS OFF} +{$INLINE ON} {$LONGSTRINGS ON} +{$MACRO OFF} +{$OBJECTCHECKS OFF} {$OVERFLOWCHECKS OFF} +{$POINTERMATH ON} {$RANGECHECKS OFF} -{.$STATIC ON} -{$TYPEDADDRESS OFF} +{$SAFEFPUEXCEPTIONS OFF} +{$SCOPEDENUMS ON} // this may be changed later +{$SMARTLINK ON} +{$TYPEDADDRESS ON} +{$TYPEINFO ON} {$VARSTRINGCHECKS OFF} -{$EXTENDEDSYNTAX ON} -{$B-} -{$S-} + +{$S-} // disable stack checking +{$MMX-} // get lost, mmx + +{$IF DEFINED(D2F_DEBUG)} + {$STACKFRAMES ON} + {$HINTS OFF} +{$ELSE} + {$STACKFRAMES OFF} + {$HINTS OFF} + {$DEFINE D2F_MORE_OPTIM} +{$ENDIF} +{$WARNINGS ON} +{$NOTES ON} + +{$IF DEFINED(D2F_DEBUG_OPTIM) or DEFINED(D2F_MORE_OPTIM)} + {$OPTIMIZATION DEADVALUES} + {$OPTIMIZATION CONSTPROP} + {$OPTIMIZATION DEADSTORE} +{$ENDIF} + +{$IFDEF WIN32} + {$IFNDEF MSWINDOWS} + {$DEFINE MSWINDOWS} + {$ENDIF} +{$ENDIF} {$IFDEF MSWINDOWS} {$IFNDEF WINDOWS} {$DEFINE WINDOWS} {$ENDIF WINDOWS} -{$ENDIF MSWINDOWS} +{$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} +{$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(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} + {$IFDEF USE_SDLMIXER} + {$ERROR SDL_mixer not supported with SDL 1.2.x} + {$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)} + {$ERROR Only one render driver must be selected!} + {$ENDIF} +{$ELSEIF DEFINED(USE_GLES1)} + {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_OPENGL)} + {$ERROR Only one render driver must be selected!} + {$ENDIF} +{$ELSEIF DEFINED(USE_OPENGL)} + {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_GLES1)} + {$ERROR Only one render driver must be selected!} + {$ENDIF} +{$ELSE} + {$DEFINE USE_OPENGL} + {.$ERROR Render driver not selected. Use -dUSE_GLSTUB or -dUSE_GLES1 or -dUSE_OPENGL} +{$ENDIF} + +{$IFDEF ENABLE_HOLMES} + {$IFNDEF USE_SDL2} + {$ERROR Holmes supported only with SDL2} + {$ENDIF} + {$IFNDEF USE_OPENGL} + {$ERROR Holmes supported only with desktop OpenGL} + {$ENDIF} +{$ENDIF}