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++") +