Build Valve Proton on macOS

Evshiron Magicka
2 min readAug 26, 2018

--

Recently Valve has released Proton on their Steam for Linux client, a Wine modification with DirectX 11/12 to Vulkan support, enabling running 3A games like NieR: Automata on Linux directly without performance impacts.

Wine has been ported to macOS too, but it’s has a few limitations like setting locale doesn’t always working, and x64 support is broken forever, making Wine not that useful on macOS platforms.

Although Proton has no plan for macOS users at the moment, their repo has an introduction for building Proton on macOS, so let’s see how far it goes.

First, let’s install Xcode from App Store, as it’s needed for compiling complex apps.

Then, install command line tools via HomeBrew:

brew install wget mingw-w64 cmake nasm libtool automake meson glslang

Now we clone the repo and init the submodules:

git clone https://github.com/ValveSoftware/Proton
cd Proton
git submodule update --init

The glslang in the repo root is for Linux and will not run on macOS, so we remove it and use the global one installed by HomeBrew:

rm -rf glslang

In the build process, meson install is used to move Windows DLLs to the right places, but when meson discovers that we are on macOS, the DLLs are moved using install_name_tool, which only works will macOS *.dylibs and resulting in failures. We have to fix it by replacing the last line with a pass:

# save and exit using :wq! as it's readonly
vi /usr/local/lib/python3.7/site-packages/mesonbuild/scripts/depfixer.py

Now everything is done, we can run ./build_proton.sh and take a coffee. When it finishes, the binaries are stored in /dist/, to run a Windows executable with it, using:

STEAM_COMPAT_DATA_PATH=%HOME/.proton/ ./proton run THE/PATH/TO/EXE

Currently I don’t have any Windows 3A games to test, if you have read this article and managed to get it working, please share your experience with me and I am happy to learn about it.

--

--