summaryrefslogtreecommitdiff
path: root/new/toolchain-mingw32.cmake
blob: 3e902ac2d111bda6b061cfe9aa0fe1ebe7ca9df1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

# This is a CMake toolchain file so we can using Mingw to build Windows32 binaries.
# http://vtk.org/Wiki/CMake_Cross_Compiling

# usage
# cmake -DCMAKE_TOOLCHAIN_FILE=./toolchain-mingw32.cmake ../

set( CMAKE_SYSTEM_NAME Windows )
set( CMAKE_SYSTEM_PROCESSOR i686 )

#-----<configuration>-----------------------------------------------

# configure only the lines within this <configure> block, typically

set( TC_PATH /usr/bin )
set( CROSS_COMPILE x86_64-w64-mingw32- )

# specify the cross compiler
set( CMAKE_C_COMPILER   ${TC_PATH}/${CROSS_COMPILE}gcc )
set( CMAKE_CXX_COMPILER ${TC_PATH}/${CROSS_COMPILE}g++ )
set( CMAKE_RC_COMPILER  ${TC_PATH}/${CROSS_COMPILE}windres )

# One compiler generates either 32 bit or 64 bit code, -m32 says generate 32 bit:
set( CMAKE_CXX_FLAGS_INIT       "-m32"  CACHE STRING "C++ flag which generates 32 bit code." )
set( CMAKE_C_FLAGS_INIT         "-m32"  CACHE STRING "C flag which generates 32 bit code." )
set( CMAKE_SHARED_LINKER_FLAGS  "-m32"  CACHE STRING "Linker flag which finds 32 bit code." )
set( CMAKE_MODULE_LINKER_FLAGS  "-m32"  CACHE STRING "Linker flag which finds 32 bit code." )
set( CMAKE_EXE_LINKER_FLAGS     "-m32"  CACHE STRING "Linker flag which finds 32 bit code." )

# Tell the 64 bit toolchain to generate a PE32 object file when running windres:
set( CMAKE_RC_FLAGS             "-F pe-i386" CACHE STRING "windres flag which generates 32 bit code." )


# where is the target environment
set( CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 )

#-----</configuration>-----------------------------------------------

# search for programs in the build host directories
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )

# for libraries and headers in the target directories
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )