aboutsummaryrefslogtreecommitdiff
path: root/cmake/mingw32-w64-cross-travis.toolchain.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/mingw32-w64-cross-travis.toolchain.cmake')
-rw-r--r--cmake/mingw32-w64-cross-travis.toolchain.cmake53
1 files changed, 53 insertions, 0 deletions
diff --git a/cmake/mingw32-w64-cross-travis.toolchain.cmake b/cmake/mingw32-w64-cross-travis.toolchain.cmake
new file mode 100644
index 0000000000..bdd14365c6
--- /dev/null
+++ b/cmake/mingw32-w64-cross-travis.toolchain.cmake
@@ -0,0 +1,53 @@
+#
+# Mingw-w64 cross compiler toolchain
+#
+# - The usual CMAKE variables will point to the cross compiler
+# - HOST_EXE_LINKER, HOST_C_COMPILER, HOST_EXE_LINKER_FLAGS,
+# HOST_C_FLAGS point to a host compiler
+#
+
+set(MINGW_TRIPLET i686-w64-mingw32)
+# For x86_64 use
+#set(MINGW_TRIPLET x86_64-w64-mingw32)
+
+# The location of your toolchain sys-root
+set(MINGW_PREFIX_PATH /opt/mingw32/${MINGW_TRIPLET}/)
+# or sometimes like this
+#set(MINGW_PREFIX_PATH /usr/${MINGW_TRIPLET}/sys-root)
+
+# the name of the target operating system
+set(CMAKE_SYSTEM_NAME Windows)
+
+# which compilers to use for C and C++
+set(CMAKE_C_COMPILER ${MINGW_TRIPLET}-gcc)
+set(CMAKE_CXX_COMPILER ${MINGW_TRIPLET}-g++)
+set(CMAKE_RC_COMPILER ${MINGW_TRIPLET}-windres)
+set(CMAKE_C_COMPILER ${MINGW_TRIPLET}-gcc)
+set(CMAKE_CXX_COMPILER ${MINGW_TRIPLET}-g++)
+set(CMAKE_RC_COMPILER ${MINGW_TRIPLET}-windres)
+
+# Where is the target environment located
+set(CMAKE_FIND_ROOT_PATH "${MINGW_PREFIX_PATH}/mingw")
+
+# adjust the default behaviour of the FIND_XXX() commands:
+# search headers and libraries in the target environment, search
+# programs in the host environment
+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(CROSS_TARGET ${MINGW_TRIPLET})
+
+# We need a host compiler too - assuming mildly sane Unix
+# defaults here
+set(HOST_C_COMPILER cc)
+set(HOST_EXE_LINKER ld)
+
+if (MINGW_TRIPLET MATCHES "^x86_64")
+ set(HOST_C_FLAGS)
+ set(HOST_EXE_LINKER_FLAGS)
+else()
+ # In 32 bits systems have the HOST compiler generate 32 bits binaries
+ set(HOST_C_FLAGS -m32)
+ set(HOST_EXE_LINKER_FLAGS -m32)
+endif()