Skip to content

Details of building Tango 32bit Windows builds #188

@HikariCalyx

Description

@HikariCalyx

Here's how I built Tango for 32bit Windows. Entire procedure is done on Debian 11 amd64.

  1. Install Rust.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Install the Rust target and toolchain for x86_64-pc-windows-gnu.

    rustup target add i686-pc-windows-gnu
    rustup toolchain install stable-i686-pc-windows-gnu
  3. Install mingw-w64 and all other required dependencies.

    sudo apt-get install -y libssl-dev libglib2.0-dev pkg-config cmake build-essential libclang-dev libgtk-3-dev librust-alsa-sys-dev libasound2-dev curl wget git mingw-w64 clang nsis python3-pip python3-dev p7zip-full
    pip install mako semver toml
  4. Ensure mingw-w64 is using the POSIX threading model.

    sudo update-alternatives --install /usr/bin/i686-w64-mingw32-gcc i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-win32 60 &&
    sudo update-alternatives --install /usr/bin/i686-w64-mingw32-gcc i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix 90 &&
    sudo update-alternatives --config i686-w64-mingw32-gcc &&
    sudo update-alternatives --install /usr/bin/i686-w64-mingw32-g++ i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-win32 60 &&
    sudo update-alternatives --install /usr/bin/i686-w64-mingw32-g++ i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix 90 &&
    sudo update-alternatives --config i686-w64-mingw32-g++
  5. Build the installer.

    bash ./win/build_i686.sh

Details about updated files:

build_i686.sh: https://github.com/HikariCalyx/tango/blob/master/win/build_i686.sh
installer_i686.nsi.mako: https://github.com/HikariCalyx/tango/blob/master/win/installer_i686.nsi.mako

  • Since it's now targeted to 32bit platform, you have to use libgcc_s_dw2-1.dll instead of libgcc_s_seh-1.dll.
  • Unlike x86_64 build, 32bit libEGL.dll and libGLESv2.dll were extracted from 32bit Google Chrome 109.0.5414.120 installer.

Build Result

In my experiment, it doesn't work on Windows 7, due to lack of CoIncrementMTAUsage function in ole32.dll.
image

However, it runs on Windows 8, with following known issue:

  • Closing Tango will freeze Tango, however you can force terminate it.
    image

The experimental 32bit Windows build can be downloaded here:
https://github.com/HikariCalyx/tango/releases/tag/v4.1.5-win32_r2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions