build: Refactor appveyor/Windows scripts (#5244)

- Join all msys build scripts into one
- Clean up appveyor.yml and generate installer for tagged builds

A side effect of the cosmetic changes is that appveyor artifact
permalinks are easier to use, e.g. for the latest zip in the
master branch

    https://ci.appveyor.com/api/projects/neovim/neovim/artifacts/build/Neovim.zip?branch=master&job=Configuration%3A%20MINGW_64
This commit is contained in:
Rui Abreu Ferreira 2016-08-26 06:38:46 +01:00 committed by Justin M. Keyes
parent 48dbb75ff6
commit eb2d547bd5
3 changed files with 22 additions and 40 deletions

View File

@ -2,7 +2,7 @@
:: MSYS2, this allows using all the dependencies and tools available
:: in MSYS2, but we cannot build inside the MSYS2 shell.
echo on
if "%TARGET%" == "MINGW_32" (
if "%CONFIGURATION%" == "MINGW_32" (
set ARCH=i686
set BITS=32
) else (
@ -12,7 +12,10 @@ if "%TARGET%" == "MINGW_32" (
:: We cannot have sh.exe in the PATH (MinGW)
set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
set PATH=C:\msys64\mingw%BITS%\bin;C:\Windows\System32;C:\Windows;%PATH%
:: The default cpack in the PATH is not CMake
set PATH=C:\Program Files (x86)\CMake\bin\cpack.exe;%PATH%
:: Build third-party dependencies
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Su" || goto :error
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S mingw-w64-%ARCH%-cmake mingw-w64-%ARCH%-perl mingw-w64-%ARCH%-python2 mingw-w64-%ARCH%-diffutils" || goto :error
@ -22,6 +25,19 @@ cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ..\third-party\ || goto :e
mingw32-make VERBOSE=1 || goto :error
cd ..
:: Build Neovim
mkdir build
cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release .. || goto :error
mingw32-make VERBOSE=1 || goto :error
bin\nvim --version || goto :error
cd ..
:: Build artifacts
cd build
cpack -G ZIP -C Release
if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C Release
goto :EOF
:error
exit /b %errorlevel%

View File

@ -1,22 +0,0 @@
echo on
if "%TARGET%" == "MINGW_32" (
set ARCH=i686
set BITS=32
) else (
set ARCH=x86_64
set BITS=64
)
:: We cannot have sh.exe in the PATH (MinGW)
set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
set PATH=C:\msys64\mingw%BITS%\bin;C:\Windows\System32;C:\Windows;%PATH%
mkdir build
cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release .. || goto :error
mingw32-make VERBOSE=1 || goto :error
bin\nvim --version || goto :error
cd ..
goto :EOF
:error
exit /b %errorlevel%

View File

@ -1,22 +1,10 @@
version: '{build}'
skip_tags: true
environment:
# The default cpack in the PATH is not CMake
CPACK: C:\Program Files (x86)\CMake\bin\cpack.exe
matrix:
- TARGET: MINGW_64
BUILD_DEPS_SCRIPT: .ci\msys_build_deps.bat
BUILD_SCRIPT: .ci\msys_build.bat
- TARGET: MINGW_32
BUILD_DEPS_SCRIPT: .ci\msys_build_deps.bat
BUILD_SCRIPT: .ci\msys_build.bat
configuration:
- MINGW_64
- MINGW_32
install: []
build_script:
- if defined BUILD_DEPS_SCRIPT call %BUILD_DEPS_SCRIPT%
- call %BUILD_SCRIPT%
# Build artifacts
- cd build
- '"%CPACK%" -G NSIS -C Release'
- '"%CPACK%" -G ZIP -C Release'
- call .ci\build.bat
artifacts:
- path: build/Neovim.zip
- path: build/Neovim.exe