For binaries and general information see the homepage.
The bug tracker can be found at https://github.com/TypesettingTools/Aegisub/issues.
Support is available on Discord or IRC.
Prerequisites:
- Visual Studio (Community edition of any recent version is fine, needs the Windows SDK included)
- Python 3
- Meson
- CMake
There are a few optional dependencies that must be installed and on your PATH:
- msgfmt, to build the translations (installing from https://mlocati.github.io/articles/gettext-iconv-windows.html seems to be the easiest option)
- InnoSetup, to build the regular installer (iscc.exe on your PATH)
- 7zip, to build the regular installer (7z.exe on your PATH)
- Moonscript, to build the regular installer (moonc.exe on your PATH)
All other dependencies are either stored in the repository or are included as submodules.
Building:
- Clone Aegisub's repository:
git clone https://github.com/TypesettingTools/Aegisub.git - From the Visual Studio "x64 Native Tools Command Prompt", generate the build directory:
meson build -Ddefault_library=static(if building for release, add--buildtype=release) - Build with
cd buildandninja
You should now have a binary: aegisub.exe.
Installer:
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.
You can generate the portable zip with ninja win-portable after a successful build.
A vaguely recent version of Xcode and the corresponding command-line tools are required.
For personal usage, you can use pip and homebrew to install almost all of Aegisub's dependencies:
pip3 install meson # or brew install meson if you installed Python via brew
brew install cmake ninja pkg-config libass boost zlib ffms2 fftw hunspell uchardet
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"
When compiling on Apple Silicon, replace /usr/local with /opt/homebrew.
When compiling on macOS 15.0 (Sequoia) or later, you may also want to export MACOS_X_DEPLOYMENT_TARGET=14.0 to make the color picker work.
Once the dependencies are installed, build Aegisub with meson build && meson compile -C build.
meson build_static -Ddefault_library=static -Dbuildtype=debugoptimized -Dbuild_osx_bundle=true -Dlocal_boost=true
meson compile -C build_static
meson test -C build_static --verbose
meson compile osx-bundle -C build_static
meson compile osx-build-dmg -C build_staticcompiler: build-essential
pkgconfig: pkg-config or pkgconf
meson: meson ninja-build
gettext: gettext intltool
fontconfig: libfontconfig1-dev
libass: libass-dev
boost: libboost-chrono-dev libboost-locale-dev libboost-regex-dev libboost-system-dev libboost-thread-dev
zlib: zlib1g-dev
WxWidgets: libwxgtk3.0-gtk3-dev
ICU: icu-devtools libicu-dev or libwxgtk3.2-dev
pulse-audio: libpulse-dev
ALSA: libasound2-dev
OpenAL: libopenal-dev
ffms2: libffms2-dev
fftw3: libfftw3-dev
hunspell: libhunspell-dev
uchardet: libuchardet-dev
libcurl: libcurl4-openssl-dev or libcurl4-gnutls-dev
opengl: libgl1-mesa-dev
gtest: libgtest-dev
gmock: libgmock-dev
I.e. to install on Ubuntu 20.04 run this command:
sudo apt install build-essential pkg-config meson ninja-build gettext intltool libfontconfig1-dev libass-dev libboost-chrono-dev libboost-locale-dev libboost-regex-dev libboost-system-dev libboost-thread-dev zlib1g-dev libwxgtk3.0-gtk3-dev icu-devtools libicu-dev libpulse-dev libasound2-dev libopenal-dev libffms2-dev libfftw3-dev libhunspell-dev libuchardet-dev libcurl4-gnutls-dev libgl1-mesa-dev libgtest-dev libgmock-devGCC-11 is needed for compilation.
sudo apt install build-essential manpages-dev software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install gcc-11 g++-11KDE-based Ubuntu needs to install gtk3
sudo apt-get install libgtk-3-devmeson setup build --prefix=/usr/local --buildtype=release --strip -Dsystem_luajit=false
meson compile -C build
meson install -C build --skip-subprojects luajitFrom 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:
- Prepend the final line of the file,
package.preload["moonscript"](), with areturn, producingreturn package.preload["moonscript"](). - Within the function at
package.preload['moonscript.base'], remove references tomoon_loader,insert_loader, andremove_loader. This means removing their declarations, definitions, and entries in the returned table. - 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.
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.