1
// Copyright (c) 2007, Rodrigo Braz Monteiro
2
// All rights reserved.
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met:
7
// * Redistributions of source code must retain the above copyright notice,
8
// this list of conditions and the following disclaimer.
9
// * Redistributions in binary form must reproduce the above copyright notice,
10
// this list of conditions and the following disclaimer in the documentation
11
// and/or other materials provided with the distribution.
12
// * Neither the name of the Aegisub Group nor the names of its contributors
13
// may be used to endorse or promote products derived from this software
14
// without specific prior written permission.
16
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
// POSSIBILITY OF SUCH DAMAGE.
28
// -----------------------------------------------------------------------------
32
// Website: http://aegisub.cellosoft.com
33
// Contact: mailto:zeratul@cellosoft.com
40
// Build credit: Set this to a string with your name as you want it to appear on the program
42
#define BUILD_CREDIT "Anonymous"
46
// Endianness: We don't support any Windows version that runs on big endian
47
#define HAVE_LITTLE_ENDIAN
48
#undef HAVE_BIG_ENDIAN
51
////////////// HIGH PRIORITY /////////////
53
// You seriously want these.
54
// Aegisub might be impossible to build without some of these,
55
// or just be nearly useless without them.
59
// All this does is allow Automation libraries to be built at all,
60
// and makes the GUI for Automation stuff show up.
61
// (It should be possible to build WITH_AUTOMATION but without any
62
// Automation engines enabled, albeit not interesting.)
64
#define WITH_AUTOMATION
67
// Enable Automation 4 Lua
68
// Requires: Lua 5.1 (in repository)
69
#define WITH_AUTO4_LUA
72
// Enable DirectSound audio player
73
// This enables both the new and old DSound player implementations.
74
// The new DSound player (DirectSoundPlayer2) is the recommended
75
// audio player on Windows.
76
// Requires: DirectX SDK (or Windows SDK 7.0)
77
#define WITH_DIRECTSOUND
80
// Enable Avisynth video and audio providers
81
// Requires: nothing (just the Avisynth DLLs at runtime)
85
// Enable CSRI (Common Subtitle Renderer Interface)
86
// Used to interface with VSFilter and potentially other subtitle renderers
87
// supporting the CSRI API, though none other do.
89
// Requires: csri helper library (in repository) or another CSRI implementation
91
// Easiest is to include the CSRI helper library in your solution and make
92
// Aegisub depend on it, so it gets linked in.
93
// Alternatively, link VSFilter directly and avoid the CSRI helper library, like so:
94
//#pragma comment(lib,"vsfilter-aegisub32.lib")
97
// Enable FreeType2 font lister for the fonts collector
98
// (You cannot build without having a font lister, and the FT2-based
99
// one is the only currently working on Windows.)
100
// Make sure to replace the library name by the actual one you use,
101
// or otherwise ensure the FT2 library gets linked to Aegisub.
102
// Requires: FreeType2
103
#define WITH_FREETYPE2
104
#ifdef WITH_FREETYPE2
106
# pragma comment(lib,"freetype235.lib")
108
# pragma comment(lib,"freetype235_D.lib")
114
///////////// MEDIUM PRIORITY ////////////
116
// Nice to have things, easy to get working.
119
// Enable Automation 3
120
// Requires: auto3 dll (in repository), Lua 5.0 (in repository)
124
// Enable ffmpegsource video and audio providers
125
// Requires: ffmpegsource version 2 .lib file
126
//#define WITH_FFMPEGSOURCE
127
#ifdef WITH_FFMPEGSOURCE
128
# pragma comment(lib, "ffms2.lib")
132
// Enable universal charset detector, so Aegisub can automatically detect the encoding of non-unicode subtitles
133
// Requires: universalcharset (in repository)
134
#define WITH_UNIVCHARDET
137
// Enable Hunspell-based spellchecker
138
// Requires: hunspell (in repository for Win32)
139
// If you have an old version of Hunspell (that uses Hunspell::put_word() instead of Hunspell::add()),
140
// uncomment the second line as well.
141
#define WITH_HUNSPELL
142
//#define WITH_OLD_HUNSPELL
145
// Enable "final release" mode
146
// Displays different version numbers in About box and title bar, and omits detailed version information from
147
// the title bar. Only core developers should enable this, and only when making builds for mass consumption.
148
//#define FINAL_RELEASE
151
// Specify tags the update checker accepts
152
// See <http://devel.aegisub.org/wiki/Technical/UpdateChecker> for details on tags.
153
// Depending on who will be using your build, you may or may not want to have the
154
// "source" tag in here. If the string is empty, the update checker will reject any
157
# define UPDATE_CHECKER_ACCEPT_TAGS "windows source"
158
#elif defined(_M_X64)
159
# define UPDATE_CHECKER_ACCEPT_TAGS "win64 source"
164
///////////// NOT RECOMMENDED /////////////
166
// The options in this section are generally deprecated or just not
167
// suited for Windows builds. They might not be compileable at all.
170
// Enable DirectShow video provider, unmaintained
171
// Requires: DirectShow "baseclasses", DirectX SDK, luck
172
//#define WITH_DIRECTSHOW
173
#ifdef WITH_DIRECTSHOW
174
# pragma comment(lib, "strmiids.lib")
176
# pragma comment(lib, "strmbasdu.lib")
178
# pragma comment(lib, "strmbaseu.lib")
183
// Enable Perl scripting, unmaintainted
184
// Requires: perl library (ActivePerl comes with one for Visual C++ under lib\core\), luck
187
# pragma comment(lib,"perl510.lib")
190
// Enable PerlConsole (a debug tool for the perl engine)
192
//#define WITH_PERLCONSOLE
196
// Alternate font lister for fonts collector, probably doesn't work on Windows.
197
// Requires: fontconfig
198
//#define WITH_FONTCONFIG
199
#ifdef WITH_FONTCONFIG
200
# pragma comment(lib,"libfontconfig.lib")
206
//#define WITH_LIBASS
209
// Enable Ruby support for Automation, unmaintained
210
// Requires: Ruby 1.9
213
# pragma comment(lib,"ws2_32.lib")
214
# pragma comment(lib,"msvcrt-ruby18-static.lib")
218
// Enable PortAudio audio player
219
// Requires PortAudio release 18
220
//#define WITH_PORTAUDIO
221
#ifdef WITH_PORTAUDIO
222
# pragma comment(lib,"portaudio_x86.lib")
226
// Enable PortAudio audio player version 2
227
// Requires PortAudio release 19
228
//#define WITH_PORTAUDIO2
231
// Enable ALSA audio player
232
// Requires Linux and libasound
236
// Enable OpenAL audio player
237
// Works on Windows, but no real advantage of using it over DSound.
238
// Requires OpenAL development libraries and headers
239
//#define WITH_OPENAL
242
// Enable Pulse Audio audio player
243
// Requires libpulse (and a *NIX compatible system and a running sound server to actually use)
244
//#define WITH_PULSEAUDIO
247
// Display trace-level diagnostic messages during startup
248
// Only enable for making special builds for end users having trouble with starting Aegisub
249
//#define WITH_STARTUPLOG