mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Travis: Add Mingw third-party builds
- Build third-party/ in Travis using mingw - Import mingw-w64 cmake toolchain
This commit is contained in:
		 Rui Abreu Ferreira
					Rui Abreu Ferreira
				
			
				
					committed by
					
						 Florian Walch
						Florian Walch
					
				
			
			
				
	
			
			
			 Florian Walch
						Florian Walch
					
				
			
						parent
						
							cca32e64cc
						
					
				
				
					commit
					f65614fb1c
				
			
							
								
								
									
										18
									
								
								.ci/mingw.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.ci/mingw.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| . "$CI_SCRIPTS/common.sh" | ||||
|  | ||||
| # FIXME: When Travis gets a recent version of Mingw-w64 use this | ||||
| #sudo apt-get install binutils-mingw-w64-i686 gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-dev mingw-w64-tools | ||||
| #sudo apt-get install wine | ||||
| sudo apt-get install libc6-dev-i386 | ||||
|  | ||||
| # mingw-w64 build from http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/gcc-4.8-release/ | ||||
| wget "http://downloads.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/gcc-4.8-release/i686-w64-mingw32-gcc-4.8.0-linux64_rubenvb.tar.xz" -O mingw.tar.xz | ||||
| sudo tar -axf mingw.tar.xz -C /opt | ||||
| export PATH=$PATH:/opt/mingw32/bin | ||||
|  | ||||
| # Build third-party | ||||
| mkdir .deps | ||||
| cd .deps | ||||
| cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/mingw32-w64-cross-travis.toolchain.cmake ../third-party/ | ||||
| cmake --build . | ||||
| cd .. | ||||
| @@ -24,6 +24,7 @@ env: | ||||
|     - CI_TARGET=gcc | ||||
|     - CI_TARGET=gcc-32 | ||||
|     - CI_TARGET=clint | ||||
|     - CI_TARGET=mingw | ||||
| matrix: | ||||
|   include: | ||||
|     - os: osx | ||||
|   | ||||
							
								
								
									
										53
									
								
								cmake/mingw32-w64-cross-travis.toolchain.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								cmake/mingw32-w64-cross-travis.toolchain.cmake
									
									
									
									
									
										Normal file
									
								
							| @@ -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() | ||||
		Reference in New Issue
	
	Block a user