From d0054473024758fe31a2c90e05989dc957f6db75 Mon Sep 17 00:00:00 2001 From: tobid7 Date: Sun, 2 Nov 2025 17:35:53 +0100 Subject: [PATCH] Add support for WIndows 32-Bit --- README.md | 14 ++++++++++++++ cmake/windows-mingw-i386.cmake | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 cmake/windows-mingw-i386.cmake diff --git a/README.md b/README.md index f6adf0b..0d890de 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,17 @@ # Cross Build Cmake toolchain files for cross platform building on linux ci containers + +## Tools required + +### Ubuntu + +```bash +apt install -y build-essential git cmake \ + gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \ + gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ + gcc-x86-64-linux-gnu g++-x86-64-linux-gnu \ + gcc-i686-linux-gnu g++-i686-linux-gnu \ + gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 \ + gcc-mingw-w64-i686 g++-mingw-w64-i686 +``` diff --git a/cmake/windows-mingw-i386.cmake b/cmake/windows-mingw-i386.cmake new file mode 100644 index 0000000..da23a4e --- /dev/null +++ b/cmake/windows-mingw-i386.cmake @@ -0,0 +1,17 @@ +# Toolchain for cross-compiling to Windows 32-bit +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR i686) + +set(CMAKE_C_COMPILER i686-w64-mingw32-gcc) +set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++) +set(CMAKE_RC_COMPILER i686-w64-mingw32-windres) + +set(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +# Force static linking +set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -static-libstdc++") +