summaryrefslogtreecommitdiffstats
path: root/ci/appveyor.bat
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 08:50:31 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 08:50:31 +0000
commitaed8ce9da277f5ecffe968b324f242c41c3b752a (patch)
treed2e538394cb7a8a7c42a4aac6ccf1a8e3256999b /ci/appveyor.bat
parentInitial commit. (diff)
downloadvim-upstream.tar.xz
vim-upstream.zip
Adding upstream version 2:9.0.1378.upstream/2%9.0.1378upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--ci/appveyor.bat114
1 files changed, 114 insertions, 0 deletions
diff --git a/ci/appveyor.bat b/ci/appveyor.bat
new file mode 100644
index 0000000..5498769
--- /dev/null
+++ b/ci/appveyor.bat
@@ -0,0 +1,114 @@
+@echo off
+:: Batch file for building/testing Vim on AppVeyor
+set target=%1
+
+setlocal ENABLEDELAYEDEXPANSION
+cd %APPVEYOR_BUILD_FOLDER%
+
+:: Python3
+set PYTHON3_VER=311
+set PYTHON3_RELEASE=3.11.1
+set PYTHON3_URL=https://www.python.org/ftp/python/%PYTHON3_RELEASE%/python-%PYTHON3_RELEASE%-amd64.exe
+set PYTHON3_DIR=C:\python%PYTHON3_VER%-x64
+
+set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
+
+if exist "%VSWHERE%" (
+ for /f "usebackq delims=" %%i in (
+ `"%VSWHERE%" -products * -latest -property installationPath`
+ ) do (
+ set "VCVARSALL=%%i\VC\Auxiliary\Build\vcvarsall.bat"
+ )
+)
+
+if not exist "%VCVARSALL%" (
+ set "VCVARSALL=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
+)
+call "%VCVARSALL%" x64
+
+goto %target%
+echo Unknown build target.
+exit 1
+
+:: ----------------------------------------------------------------------------
+:install
+@echo on
+if not exist downloads mkdir downloads
+
+:: Python 3
+if not exist %PYTHON3_DIR% (
+ call :downloadfile %PYTHON3_URL% downloads\python3.exe
+ cmd /c start /wait downloads\python3.exe /quiet TargetDir=%PYTHON3_DIR% ^
+ Include_pip=0 Include_tcltk=0 Include_test=0 Include_tools=0 ^
+ AssociateFiles=0 Shortcuts=0 Include_doc=0 Include_launcher=0 ^
+ InstallLauncherAllUsers=0
+)
+@echo off
+goto :eof
+
+:: ----------------------------------------------------------------------------
+:build
+
+cd src
+
+echo "Building MSVC 64bit console Version"
+nmake -f Make_mvc.mak CPU=AMD64 ^
+ OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
+ FEATURES=%FEATURE%
+if not exist vim.exe (
+ echo Build failure.
+ exit 1
+)
+
+:: build MSVC huge version with python and channel support
+:: GUI needs to be last, so that testing works
+echo "Building MSVC 64bit GUI Version"
+if "%FEATURE%" == "HUGE" (
+ nmake -f Make_mvc.mak CPU=AMD64 ^
+ OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
+ PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
+ PYTHON3_VER=%PYTHON3_VER% DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
+ FEATURES=%FEATURE%
+) ELSE (
+ nmake -f Make_mvc.mak CPU=AMD64 ^
+ OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
+ FEATURES=%FEATURE%
+)
+if not exist gvim.exe (
+ echo Build failure.
+ exit 1
+)
+.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt || exit 1
+
+echo "version output MSVC console"
+.\vim --version || exit 1
+echo "version output MSVC GUI"
+type ver_msvc.txt || exit 1
+
+goto :eof
+
+:: ----------------------------------------------------------------------------
+:test
+@echo on
+cd src/testdir
+:: Testing with MSVC gvim
+path %PYTHON3_DIR%;%PATH%
+nmake -f Make_mvc.mak VIMPROG=..\gvim
+nmake -f Make_mvc.mak clean
+:: Testing with MSVC console version
+nmake -f Make_mvc.mak VIMPROG=..\vim
+
+@echo off
+goto :eof
+
+:: ----------------------------------------------------------------------------
+:downloadfile
+:: call :downloadfile <URL> <localfile>
+if not exist %2 (
+ curl -f -L %1 -o %2
+)
+if ERRORLEVEL 1 (
+ rem Retry once.
+ curl -f -L %1 -o %2 || exit 1
+)
+@goto :eof