aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRui Abreu Ferreira <raf-ep@gmx.com>2014-06-25 18:50:17 +0100
committerFlorian Walch <florian@fwalch.com>2015-05-15 17:55:02 +0300
commitf65614fb1cb9fc668779819f05d884f70ffe2aeb (patch)
tree31e25ac6381a57d64c56372da5a5b21a02c00a7d /cmake
parentcca32e64cc897830bc0419c01413492748353a0b (diff)
downloadrneovim-f65614fb1cb9fc668779819f05d884f70ffe2aeb.tar.gz
rneovim-f65614fb1cb9fc668779819f05d884f70ffe2aeb.tar.bz2
rneovim-f65614fb1cb9fc668779819f05d884f70ffe2aeb.zip
Travis: Add Mingw third-party builds
- Build third-party/ in Travis using mingw - Import mingw-w64 cmake toolchain
Diffstat (limited to '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()