1bd426f69a
This makes the internal juggling of fold data even more complicated, but it has a number of advantages: - Folds will preserved even when opening the file with Aegisub builds that don't know about folding. - Folds will be preserved by automation scripts that re-insert every line. - Folds do not break when adding or deleting lines in a text editor or some other editor, as long as the lines involving folds aren't touched. - In particular, merging changes using tools like git will not break folds. - Copy/pasting folds also keeps the folds to some extent. This is impossible to solve in full generality, but simple cases like cut/pasting a folded section somewhere else work, as long as the file isn't saved in between. - This will give automation scripts full access to folding without needing to set up any additional API functions. |
||
---|---|---|
.github/workflows | ||
automation | ||
docs | ||
libaegisub | ||
packages | ||
po | ||
src | ||
subprojects | ||
tests | ||
tools | ||
.gitignore | ||
LICENCE | ||
meson.build | ||
meson_options.txt | ||
README.md |
Aegisub
For binaries and general information see the homepage.
The bug tracker can be found at https://github.com/Aegisub/Aegisub/issues.
Support is available on Discord or IRC.
Building Aegisub
Windows
Prerequisites:
- Visual Studio (Community edition of any recent version is fine)
- The June 2010 DirectX SDK (the final release before DirectSound was dropped)
- Python 3
- Meson
- CMake
- Powershell execution policy set to Unrestricted
There are a few optional dependencies that must be installed and on your PATH:
- msgfmt, to build the translations
- InnoSetup, to build the regular installer
- 7zip, to build the regular installer
- Moonscript, to build the regular installer
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 build
andninja
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
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:
- 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.
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.