Porting Aegisub to Meson | Red Vice

submited by
Style Pass
2021-06-13 15:30:03

Over the past couple years, there has been a continual effort to fully port Aegisub and the DependencyControl modules to Meson. At the time of this post, the port is now fully functional, with the exception of MacOS bundles (a later milestone). This post will discuss the goals, rationale, process, current state, and various reflections on Meson and software development as a whole.

To start off, I’d like to thank everyone involved in the process. Four people had a disproportionate impact and deserve particular note:

After Plorkyeran stopped maintaining Aegisub, a variety of people seemed interested in taking up the mantle. However, various build system-related contribution bars were quickly discovered.

For one, the project used a fully separate build system for MacOS/Linux (Autotools + Makefiles + Bash and Python scripts) from Windows (manual Visual Studio solution). Maintaining two separate build systems is extra effort and adds to the potential for bugs. Additionally, while I’m personally fine working with Autotools having spent years in the swamp, this was very clearly not true for many less experienced contributors. From the start a unified, modern build system was a major goal.

Both legacy build systems, but in particular the Windows one, relied on generated files that were either downloaded off Plork’s server, checked in to the build tree, generated on MacOS and copied over to Windows(!), or downloaded from across the internet and arranged in an specific structure inside the build tree(!!). In almost none of these cases was the method to produce this documented anywhere. This meant another goal was to avoid abusing generated files like that, generating them locally when possible and otherwise documenting their creation.

Leave a Comment