2013-04-22 00:49:30 +02:00
# Aegisub
For binaries and general information [see the homepage ](http://www.aegisub.org ).
2020-11-21 21:51:59 +01:00
The bug tracker can be found at https://github.com/TypesettingTools/Aegisub/issues.
2013-04-22 00:49:30 +02:00
2020-11-21 21:51:59 +01:00
Support is available on [Discord ](https://discord.com/invite/AZaVyPr ) or [IRC ](irc://irc.rizon.net/aegisub ).
2013-04-22 00:49:30 +02:00
## Building Aegisub
### Windows
Prerequisites:
2020-11-21 21:51:59 +01:00
1. Visual Studio (Community edition of any recent version is fine)
2015-07-30 16:07:28 +02:00
2. The June 2010 DirectX SDK (the final release before DirectSound was dropped)
2020-11-21 21:51:59 +01:00
3. Python 3
4. Meson
2020-12-22 07:05:02 +01:00
5. CMake
6. Powershell execution policy set to Unrestricted
2013-04-22 00:49:30 +02:00
2020-12-22 07:05:02 +01:00
There are a few optional dependencies that must be installed and on your PATH:
2013-04-22 00:49:30 +02:00
1. msgfmt, to build the translations
2. WinRAR, to build the portable installer
3. InnoSetup, to build the regular installer
2020-12-22 07:05:02 +01:00
4. 7zip, to build the regular installer
5. Moonscript, to build the regular installer
2013-04-22 00:49:30 +02:00
All other dependencies are either stored in the repository or are included as submodules.
Building:
2020-11-21 21:51:59 +01:00
1. Clone Aegisub's repository: `git clone https://github.com/TypesettingTools/Aegisub.git`
2021-01-09 11:16:32 +01:00
2. From the Visual Studio "x64 Native Tools Command Prompt", generate the build directory: `meson build -Ddefault_library=static`
2020-11-21 21:51:59 +01:00
3. Build with `cd build` and `meson compile`
2013-04-22 00:49:30 +02:00
2020-11-21 21:51:59 +01:00
You should now have a binary at `src/aegisub.exe` .
2014-09-21 17:18:05 +02:00
2020-11-21 21:51:59 +01:00
Installer:
2014-09-21 17:18:05 +02:00
2020-12-22 07:05:02 +01:00
You can generate the installer with `ninja win-installer` after a successful build. This assumes a working internet connection and installation of the optional dependencies.
2014-09-21 17:18:05 +02:00
### OS X
A vaguely recent version of Xcode and the corresponding command-line tools are required.
For personal usage, you can use homebrew to install almost all of Aegisub's dependencies:
2019-05-16 20:46:26 +02:00
brew install autoconf automake ffmpeg ffms2 fftw freetype fribidi gettext icu4c libass m4 pkg-config boost
brew install luajit --HEAD
2018-03-31 01:54:38 +02:00
brew link --force gettext
2019-05-16 20:46:26 +02:00
export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
2017-11-26 06:22:57 +01:00
wxWidgets is located in vendor/wxWidgets, and can be built like so:
CPPFLAGS="$CPPFLAGS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \
./configure --disable-aboutdlg --disable-animatectrl --disable-aui --disable-any \
--disable-bannerwindow --disable-base64 --disable-calendar --disable-caret \
--disable-cmdline --disable-colourpicker --disable-compat28 --disable-config \
2018-03-31 01:54:38 +02:00
--disable-constraints --disable-datepick --disable-dctransform --disable-debugreport \
2017-11-26 06:22:57 +01:00
--disable-dialupman --disable-docview --disable-filehistory --disable-finddlg \
--disable-fs_archive --disable-fs_inet --disable-fs_zip --disable-fsvolume \
--disable-fswatcher --disable-gif --disable-help --disable-html --disable-ipc \
--disable-joystick --disable-jpeg --disable-largefile --disable-markup --disable-mdi \
--disable-mediactrl --disable-metafiles --disable-miniframe --disable-notifmsg \
--disable-numberdlg --disable-pcx --disable-pnm --disable-postscript \
--disable-prefseditor --disable-printarch --disable-progressdlg --disable-propgrid \
--disable-protocol --disable-protocols --disable-rearrangectrl --disable-ribbon \
--disable-richtext --disable-richtooltip --disable-snglinst --disable-sockets \
--disable-sockets --disable-sound --disable-splash --disable-splines \
--disable-std_iostreams --disable-svg --disable-tarstream --disable-tiff \
--disable-tipdlg --disable-tipwindow --disable-url --disable-webkit --disable-webview \
--disable-wizarddlg --disable-xrc \
--enable-geometry --enable-imaglist --enable-listctrl --enable-stc --with-cocoa \
--with-libpng=yes --with-macosx-version-min=10.9 \
--with-opengl \
--without-libjpeg --without-libtiff --without-regex \
& & make
Once the dependencies are installed, build Aegisub with `autoreconf && ./configure --with-wxdir=/path/to/Aegisub/vendor/wxWidgets && make && make osx-bundle` .
2014-09-21 17:18:05 +02:00
`autoreconf` should be skipped if you are building from a source tarball rather than `git` .
2013-04-22 00:49:30 +02:00
2018-02-26 07:37:54 +01:00
## Updating Moonscript
From within the Moonscript repository, run `bin/moon bin/splat.moon -l moonscript moonscript/ > bin/moonscript.lua` .
Open the newly created `bin/moonscript.lua` , and within it make the following changes:
1. Prepend the final line of the file, `package.preload["moonscript"]()` , with a `return` , producing `return package.preload["moonscript"]()` .
2. Within the function at `package.preload['moonscript.base']` , remove references to `moon_loader` , `insert_loader` , and `remove_loader` . This means removing their declarations, definitions, and entries in the returned table.
3. Within the function at `package.preload['moonscript']` , remove the line `_with_0.insert_loader()` .
The file is now ready for use, to be placed in `automation/include` within the Aegisub repo.
2013-04-22 00:49:30 +02:00
## License
2014-09-21 17:18:05 +02:00
All files in this repository are licensed under various GPL-compatible BSD-style licenses; see LICENCE and the individual source files for more information.
The official Windows and OS X builds are GPLv2 due to including fftw3.