upplay macos 1 thumb

Current version

If you don’t like or don’t have the time for tinkering, we have a binary version built on Mac OS Big Sur 11.3.1, using Xcode 12, Qt 5.15.2 and Qt WebEngine: upplay-1.4.10-20211017-714fbf7b-webengine.dmg

There is also an older version based on qt webkit: upplay-1.4.10-webkit.dmg This was reported to have trouble working on newer Mac OS releases.

It seems that upplay sometimes crash on first execution when there are several screens connected. The current workaround is to only keep one screen and run upplay once and exit, then re-connect the screens. Further executions run fine with multiple screens connected. Thanks to Juan Pablo for finding the workaround ! Hopefully I’ll find a way to fix this…​


You can build the software with two approaches:

  • Use macports or homebrew: npupnp, libupnpp and upplay build just fine, using Qt 5.13 and other tools from the ports (and using the configure scripts).

  • Use a more native approach, using Qt creator and the .pro files of each project (in the macos directories for npupnp and libupnpp, and the default upplay one). Details follow.

Building without a ports tree

Install Qt with Qt Creator, and XCode (see the Qt docs for this).

Get the webkit install: https://github.com/qtwebkit/qtwebkit/releases Unpack it inside the qt directory (the bin lib etc inside the archive must overlay the existing ones), so move the contents to, e.g. Qt/5.14.2/clang_64/

Extract and build libmicrohttpd 0.9.71. The regular configure/make method bundled with the lib source "just works":

./configure --prefix=/usr

It appears that the rest of the necessary libs (e.g. expat, libcurl) are bundled with Macos.

Extract the source for libnpupnp, libupnppp, and upplay in the same directory where you extracted libmicrohttpd.

  • Copy libnpupnp-x.y.z/macos/autoconfig-macos.h to libnpupnp-x.y.z/autoconfig.h

  • Copy libnpupnp-x.y.z/macos/upnpconfig-macos.h to libnpupnp-x.y.z/inc/upnpconfig.h

  • Copy libupnpp-n.m.p/macos/config-macos.h to libupnpp-n.m.p/libupnpp/config.h

Create a directory libnpupnp-x.y.z/inc/upnp, and copy or link libnpupnp-xxx/inc/*.h into it. Also copy src/inc/netif.h to inc/upnp. This is to mimick what a linux installation would do and allow the build of libupnpp to proceed normally.

Start QtCreator and open libnpupnp-x.y.z/macos/qmk/libnpupnp.pro, libupnpp-n.m.p/macos/qmk/libupnpp.pro and upplay-t.u.v/upplay.pro, then build the three projects. There will possibly some paths to adjust inside the '.pro' files.

Finally, if needed, generate a .dmg distribution with something like:

./Qt/5.14.2/clang_64/bin/macdeployqt build-upplay-Desktop_Qt_5_14_2_clang_64bit-Release/upplay.app -dmg