1set(CMAKE_SYSTEM_NAME Windows)
2
3set(CMAKE_C_COMPILER_TARGET i686)
4set(CMAKE_CXX_COMPILER_TARGET i686)
5set(CMAKE_RC_COMPILER_TARGET i686)
6
7set(CMAKE_CROSSCOMPILING TRUE)
8set(CMAKE_CROSSCOMPILING_EMULATOR wine)
9
10set(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
11set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
12set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
13set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
14
15# Prefer posix gcc variant for gtest pthread support
16find_program(C_COMPILER_FULL_PATH NAMES
17    ${CMAKE_C_COMPILER_TARGET}-w64-mingw32-gcc-posix
18    ${CMAKE_C_COMPILER_TARGET}-w64-mingw32-gcc
19    gcc-mingw32-w64-${CMAKE_C_COMPILER_TARGET})
20if(NOT C_COMPILER_FULL_PATH)
21    message(FATAL_ERROR "Cross-compiler for ${CMAKE_C_COMPILER_TARGET} not found")
22endif()
23set(CMAKE_C_COMPILER ${C_COMPILER_FULL_PATH})
24
25find_program(CXX_COMPILER_FULL_PATH NAMES
26    g++-mingw-w64-${CMAKE_CXX_COMPILER_TARGET}
27    ${CMAKE_CXX_COMPILER_TARGET}-w64-mingw32-g++-posix
28    ${CMAKE_CXX_COMPILER_TARGET}-w64-mingw32-g++)
29if(CXX_COMPILER_FULL_PATH)
30    set(CMAKE_CXX_COMPILER ${CXX_COMPILER_FULL_PATH})
31endif()
32
33find_program(RC_COMPILER_FULL_PATH NAMES
34    ${CMAKE_RC_COMPILER_TARGET}-w64-mingw32-windres)
35if(RC_COMPILER_FULL_PATH)
36    set(CMAKE_RC_COMPILER ${RC_COMPILER_FULL_PATH})
37endif()
38