<aside> 🌐 https://mupdf.com/r/Change-Build-System

</aside>

Changing the MuPDF build System

At the moment, the MuPDF team provides separate build files for each of our supported platforms.

For Windows, we provide a VS2019 solution. For Unix, we provide a (gnu) Makefile. For Android, we provide a gradle file. The core team undertakes to keep these up to date.

The SO team was using a VS2010, and so had to have a hacky way of backtracking the version of the solution used. I believe they have just moved to using VS2019. Xcode support has also been requested.

The problem with proliferating build system requests is that it’s impossible to expect them to all be kept up to date, all the time. Given that not all of our developers have ready access to a windows box, the VS solution is frequently broken as it is - to expect several versions of the solution to be kept up to date seems even more unlikely to work.

Accordingly, it has been suggested that we maybe consider the use of a tool to generate us our build files. One suggested tool is CMake.

Current Solution

Requirements for a future ā€œimprovedā€ solution.

The suggestion is that for a future solution, we’d move to have a top-level meta build file. Developers would make changes to that, and run a script, and that would automatically generate new standard build files for our platforms (VS solution, Unix makefile, gradle files etc). All these files (both the top-level meta file, and the generated ones) would then be checked into git.

Requirements