<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