xpra icon
Bug tracker and wiki

Version 4 (modified by Smo, 9 months ago) (diff)


Building on Microsoft Windows


For general information, see wiki/Building first.


The new build system is a work in progress, see #678 for details.


  • install mingw-w64
  • run these commands:
    #choose your target build arch (or do each one in turn):
    #export XPKG="mingw-w64-i686-"
    export XPKG="mingw-w64-x86_64-"
    #most packages get installed here: (python, gtk, etc):
    pacman --noconfirm -S ${XPKG}python2 ${XPKG}python2-pygtk ${XPKG}gtkglext
    #media libraries (more than we actually need):
    pacman --noconfirm -S ${XPKG}ffmpeg ${XPKG}gst-plugins-good ${XPKG}gst-plugins-bad ${XPKG}gst-plugins-ugly
    #network layer libraries:
    pacman --noconfirm -S ${XPKG}lz4 ${XPKG}lzo2 ${XPKG}xxhash
    #python3 GStreamer bindings:
    pacman --noconfirm -S ${XPKG}gst-python
    #development tools and libs for building extra packages:
    pacman --noconfirm -S base-devel ${XPKG}yasm ${XPKG}nasm subversion rsync gtk-doc ${XPKG}cmake ${XPKG}gcc ${XPKG}pkg-config ${XPKG}libffi
    #python libraries and install and packaging tools:
    pacman --noconfirm -S ${XPKG}python2-numpy ${XPKG}python2-pillow ${XPKG}cython2 ${XPKG}python2-setuptools ${XPKG}python2-cx_Freeze
    #python3 versions (not all are really needed if just using python3 for sound):
    pacman --noconfirm -S ${XPKG}python3-numpy ${XPKG}python3-pillow ${XPKG}cython ${XPKG}python3-cx_Freeze
    #using easy-install for python libraries which are not packaged by mingw:
    for x in rencode xxhash netifaces lz4 websocket-client comtypes PyOpenGL PyOpenGL_accelerate websockify cffi pycparser cryptography nvidia-ml-py; do
        easy_install-2.7 -U -Z $x
        easy_install-3.5 -U -Z $x
    #for webcam support:
    pacman -S ${XPKG}opencv ${XPKG}hdf5 ${XPKG}tesseract-ocr

Not covered here yet (see #678):

The old build system is very hard to setup: follow these instructions to build all the required dependencies (and trim the parts that are only relevant to winswitch)


The MS Windows specific build scripts are here.

We use a combination of the setup.py file, BAT files and an innosetup script to generate the executable installer.