aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/switches.inc
blob: ba028f579793c1ccf478e8a90ba7d4dbd4577019 (plain) (blame)
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
// Comment by eddie:
// The mac port currently also uses the WIN32 define.
// Once I get the beast compiled, linked and running
// I will change this.
// There are some parts where the WIN32 define could not
// be used. I changed the WIN32 to MSWINDOWS.
// So, for Windows-only code use the MSWINDOWS define.

{$IFDEF FPC}
  {$DEFINE CONSOLE}
  {$IFDEF DARWIN}
    {$H+}
    {$R-}
    {$DEFINE WIN32}
    {$DEFINE TRANSLATE}
		{$DEFINE UTF8_FILENAMES}
  {$ELSE}
    {$DEFINE LAZARUS}
    {$IFNDEF LCL}
      // LCL should be defined already
      {$MESSAGE Warn 'LCL undefined, compile with "fpc -dLCL ..."!'}
      {$DEFINE LCL}
    {$ENDIF}
  {$ENDIF}

  {$DEFINE DLL_CDECL}
  {$DEFINE HasInline}
  {$UNDEF UseSerialPort}
{$ELSE}
  {$UNDEF CONSOLE}  // Delphi requires a special app type... no thanks ! :)
  // {$DEFINE CONSOLE} // -- use for development only !
  {$DEFINE Delphi}

  // Delphi version numbers (ignore versions released before Delphi 6 as they miss the $IF directive):
  // Delphi 6 (VER140), Delphi 7 (VER150), Delphi 8 (VER160)
  // Delphi 9/2005 (VER170), Delphi 10/2006 (VER180)

  // the inline-procedure directive was introduced with Delphi 2005
  {$IF not (Defined(VER140) or Defined(VER150) or Defined(VER160))}
    {$DEFINE HasInline}
  {$IFEND}

  {$DEFINE DLL_STDCALL}
  {$UNDEF UseSerialPort}
{$ENDIF}


{$IF Defined(win32)}
  // include defines but no constants
	{$IFDEF DARWIN}
    {$I config-macosx.inc}
	{$ELSE}
    {$I config-win.inc}
	{$ENDIF}

  // audio config
  {$DEFINE WinAudioLib_BASS}
  {$IFDEF WinAudioLib_BASS}
    {$DEFINE UseBASSPlayback}
    {$DEFINE UseBASSInput}
  {$ELSE}
    {$DEFINE UseFFMpegDecoder}
    //{$DEFINE UsePortaudioPlayback}
    {$DEFINE UseSDLPlayback}
    {$DEFINE UsePortaudioInput}
    {$DEFINE UsePortmixer}
  {$ENDIF}
  {$UNDEF WinAudioLib_BASS}

  // video config
  {$IFDEF HaveFFMpeg}
    {$DEFINE UseFFMpegVideo}
    {$IFDEF HaveSWScale}
      {$DEFINE UseSWScale}
    {$ENDIF}
  {$ENDIF}

  // misc defines

  {$IF Defined(HaveProjectM_0_9)}
    {$DEFINE UseProjectM_0_9}
  {$ELSEIF Defined(HaveProjectM_1_0_PLUS)}
    {$DEFINE UseProjectM_1_0_PLUS}
  {$IFEND}

  {$IFDEF DEBUG}
    {$IFNDEF DARWIN}
      {$IFDEF CONSOLE}
        {$APPTYPE CONSOLE}
      {$ENDIF}
    {$ENDIF}
  {$ENDIF}

  {$IFDEF MSWINDOWS}
    {$DEFINE UseMIDIPort}
  {$ENDIF}
{$ELSEIF Defined(Linux)}
  // include defines but no constants
  {$I config-linux.inc}

  // audio config
  {$IFDEF HaveFFMpeg}
    {$DEFINE UseFFMpegDecoder}
    {$IFDEF HavePortaudio}
      //{$DEFINE UsePortaudioPlayback}
      {$DEFINE UseSDLPlayback}
      {$DEFINE UsePortaudioInput}
    {$ENDIF}
  {$ENDIF}

  // video config
  {$IFDEF HaveFFMpeg}
    {$DEFINE UseFFMpegVideo}
    {$IFDEF HaveSWScale}
      {$DEFINE UseSWScale}
    {$ENDIF}
  {$ENDIF}

  // misc defines
  {$IFDEF HaveProjectM}
    // this causes trouble at the moment
    //{$DEFINE UseProjectM_0_9}
  {$ENDIF}
{$IFEND}

{$IF Defined(UseFFMpegVideo) or Defined(UseFFMpegDecoder)}
  {$DEFINE UseFFMpeg}
{$IFEND}

{$IF Defined(UseBASSInput) or Defined(UseBASSPlayback)}
  {$DEFINE UseBASS}
{$IFEND}

{$IF Defined(UsePortaudioInput) or Defined(UsePortaudioPlayback)}
  {$DEFINE UsePortaudio}
{$IFEND}

{$IF Defined(UseProjectM_0_9) or Defined(UseProjectM_1_0_PLUS)}
  {$DEFINE UseProjectM}
{$IFEND}