e58e4a9149
* [mac/build] update build steps * [macos] bundle app * [macos] build dmg * [ci] setup macOS CI * [i18n] TODO: rm WX locale files * [deps] set main branch to main * Fix osx-fix-libs.py Create symbolic links, to make libicu happy Rewrite the script in python3, as python2 is deprecated * Add write permission before install_name_tool when doing osx-bundle Fix wangqr/Aegisub#39 * Handle @loader_path in libboost on macOS See wangqr/Aegisub#39 * [tools/mac] use python3 * [ci/mac] install & using system deps * [ci/win] don't build fribidi:docs * [ci/mac] trying openal-soft * [ci/mac] use pulseaudio in CI * [ci/win] only run aeg's test * [ci/win] fix CI * [ci/win] fix CI: not use dict `{}` * [ci] run ci * [ci/win] don't build docs * [ci/win] remove args tail newline * [ci/win] false->disabled * Use md title format Co-authored-by: Ryan Lucia <ryan@luciaonline.net> * Recover file permissions. * [ci/win] disable fontconfig Co-Authored-By: Ryan Lucia <ryan@luciaonline.net> * [ci/win] disable libass:fontconfig Co-authored-by: wangqr <wangqr@wangqr.tk> Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
83 lines
3.4 KiB
Markdown
83 lines
3.4 KiB
Markdown
# Aegisub
|
|
|
|
For binaries and general information [see the homepage](http://www.aegisub.org).
|
|
|
|
The bug tracker can be found at https://github.com/Aegisub/Aegisub/issues.
|
|
|
|
Support is available on [Discord](https://discord.com/invite/AZaVyPr) or [IRC](irc://irc.rizon.net/aegisub).
|
|
|
|
## Building Aegisub
|
|
|
|
### Windows
|
|
|
|
Prerequisites:
|
|
|
|
1. Visual Studio (Community edition of any recent version is fine)
|
|
2. The June 2010 DirectX SDK (the final release before DirectSound was dropped)
|
|
3. Python 3
|
|
4. Meson
|
|
5. CMake
|
|
6. Powershell execution policy set to Unrestricted
|
|
|
|
There are a few optional dependencies that must be installed and on your PATH:
|
|
|
|
1. msgfmt, to build the translations
|
|
2. InnoSetup, to build the regular installer
|
|
3. 7zip, to build the regular installer
|
|
4. Moonscript, to build the regular installer
|
|
|
|
All other dependencies are either stored in the repository or are included as submodules.
|
|
|
|
Building:
|
|
|
|
1. Clone Aegisub's repository: `git clone https://github.com/TypesettingTools/Aegisub.git`
|
|
2. 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`)
|
|
3. Build with `cd build` and `ninja`
|
|
|
|
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.
|
|
|
|
### OS X
|
|
|
|
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
|
|
brew install cmake ninja pkg-config libass boost zlib ffms2 fftw hunspell
|
|
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"
|
|
|
|
Once the dependencies are installed, build Aegisub with `meson build && meson compile -C build`.
|
|
|
|
#### Build dmg
|
|
|
|
```bash
|
|
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_static
|
|
```
|
|
|
|
## 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.
|
|
|
|
## License
|
|
|
|
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.
|