Hush Documentation for all levels of users
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6 KiB

Cross-Compiling SilentDragon for Windows with MXE

This document explains how to build Windows binaries from a Linux system. This was tested and created on Debian 11 (Bullseye).

Install Build dependencies

sudo apt-get -y install clang g++ build-essential make mingw-w64 git pkg-config libc6-dev m4 g++-multilib autoconf libncurses-dev libtool-bin unzip python zlib1g-dev wget curl bsdmainutils automake libgl1-mesa-dev libglu1-mesa-dev libfontconfig1-dev autopoint libssl-dev

Install QT packages

sudo apt-get -y install qtdeclarative5-dev qt5-qmake qt5-default libqt5websockets5-dev qtcreator

Install MXE dependencies

Current list of dependencies is here: http://mxe.cc/#requirements-debian

sudo apt-get install \
    autoconf \
    automake \
    autopoint \
    bash \
    bison \
    bzip2 \
    flex \
    g++ \
    g++-multilib \
    gettext \
    git \
    gperf \
    intltool \
    libc6-dev-i386 \
    libgdk-pixbuf2.0-dev \
    libltdl-dev \
    libgl-dev \
    libpcre3-dev \
    libssl-dev \
    libtool-bin \
    libxml-parser-perl \
    lzip \
    make \
    openssl \
    p7zip-full \
    patch \
    perl \
    python3 \
    python3-distutils \
    python3-mako \
    python3-pkg-resources \
    python-is-python3 \
    ruby \
    sed \
    unzip \
    wget \
    xz-utils

Clone MXE

git clone https://github.com/mxe/mxe.git

Build MXE

Add MXE_TARGETS so we get both 32-bit and 64-bit Windows binaries.

cd mxe
make MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static' openssl qtbase qtwebsockets

Add path to MXE and /usr/bin

export PATH=$PATH:/your/mxe/path/usr/bin

Clone SilentDragon source

git clone https://git.hush.is/hush/SilentDragon.git
cd SilentDragon

Build latest translations

Either ./build.sh linguist Or ./win-build.sh linguist

Build SilentDragon Windows binaries

Within your SilentDragon repository run build script:

./win-build.sh release

Executable should be created and located within SilentDragon repository, IE: SilentDragon/release/silentdragon.exe

Note: Options for win-build.sh include: clean, cleanbuild, linguist, and release. No option specified will build debug version by default. winbuild.sh compiles 64-bit binary only, but can be modified to compile 32-bit.

Targeting 32-bit or 64-bit Modify qbuild_release target in winbuild.sh to specify 32-bit or 64-bit

To make 32-bit Windows GUI executable i686-w64-mingw32.static-qmake-qt5 $CONF CONFIG+=release

To make 64-bit Windows GUI executable (default) x86_64-w64-mingw32.static-qmake-qt5 $CONF CONFIG+=release