Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 1 | @echo off |
| 2 | :: Batch file for building/testing Vim on AppVeyor |
Christopher Plewright | 5a57a5e | 2023-01-16 13:01:28 +0000 | [diff] [blame] | 3 | set target=%1 |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 4 | |
| 5 | setlocal ENABLEDELAYEDEXPANSION |
| 6 | cd %APPVEYOR_BUILD_FOLDER% |
| 7 | |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 8 | :: Python3 |
| 9 | set PYTHON3_VER=311 |
| 10 | set PYTHON3_RELEASE=3.11.1 |
| 11 | set PYTHON3_URL=https://www.python.org/ftp/python/%PYTHON3_RELEASE%/python-%PYTHON3_RELEASE%-amd64.exe |
| 12 | set PYTHON3_DIR=C:\python%PYTHON3_VER%-x64 |
| 13 | |
Christopher Plewright | 5a57a5e | 2023-01-16 13:01:28 +0000 | [diff] [blame] | 14 | set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" |
| 15 | |
| 16 | if exist "%VSWHERE%" ( |
| 17 | for /f "usebackq delims=" %%i in ( |
| 18 | `"%VSWHERE%" -products * -latest -property installationPath` |
| 19 | ) do ( |
| 20 | set "VCVARSALL=%%i\VC\Auxiliary\Build\vcvarsall.bat" |
| 21 | ) |
| 22 | ) |
| 23 | |
| 24 | if not exist "%VCVARSALL%" ( |
| 25 | set "VCVARSALL=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" |
| 26 | ) |
| 27 | call "%VCVARSALL%" x64 |
| 28 | |
| 29 | goto %target% |
| 30 | echo Unknown build target. |
| 31 | exit 1 |
| 32 | |
| 33 | :: ---------------------------------------------------------------------------- |
| 34 | :install |
| 35 | @echo on |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 36 | if not exist downloads mkdir downloads |
| 37 | |
| 38 | :: Python 3 |
| 39 | if not exist %PYTHON3_DIR% ( |
| 40 | call :downloadfile %PYTHON3_URL% downloads\python3.exe |
Christopher Plewright | 5a57a5e | 2023-01-16 13:01:28 +0000 | [diff] [blame] | 41 | cmd /c start /wait downloads\python3.exe /quiet TargetDir=%PYTHON3_DIR% ^ |
| 42 | Include_pip=0 Include_tcltk=0 Include_test=0 Include_tools=0 ^ |
| 43 | AssociateFiles=0 Shortcuts=0 Include_doc=0 Include_launcher=0 ^ |
| 44 | InstallLauncherAllUsers=0 |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 45 | ) |
Christopher Plewright | 5a57a5e | 2023-01-16 13:01:28 +0000 | [diff] [blame] | 46 | @echo off |
| 47 | goto :eof |
| 48 | |
| 49 | :: ---------------------------------------------------------------------------- |
| 50 | :build |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 51 | |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 52 | cd src |
Bram Moolenaar | 7ce2aa0 | 2019-07-16 20:00:11 +0200 | [diff] [blame] | 53 | |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 54 | echo "Building MSVC 64bit console Version" |
K.Takata | 47d1666 | 2022-01-26 16:20:21 +0000 | [diff] [blame] | 55 | nmake -f Make_mvc.mak CPU=AMD64 ^ |
Bram Moolenaar | f9a343f | 2020-07-29 16:32:21 +0200 | [diff] [blame] | 56 | OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^ |
K.Takata | f89be8d | 2021-05-29 12:42:47 +0200 | [diff] [blame] | 57 | FEATURES=%FEATURE% |
| 58 | if not exist vim.exe ( |
| 59 | echo Build failure. |
| 60 | exit 1 |
| 61 | ) |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 62 | |
| 63 | :: build MSVC huge version with python and channel support |
| 64 | :: GUI needs to be last, so that testing works |
| 65 | echo "Building MSVC 64bit GUI Version" |
| 66 | if "%FEATURE%" == "HUGE" ( |
K.Takata | 47d1666 | 2022-01-26 16:20:21 +0000 | [diff] [blame] | 67 | nmake -f Make_mvc.mak CPU=AMD64 ^ |
Bram Moolenaar | f9a343f | 2020-07-29 16:32:21 +0200 | [diff] [blame] | 68 | OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^ |
| 69 | PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^ |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 70 | PYTHON3_VER=%PYTHON3_VER% DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^ |
K.Takata | f89be8d | 2021-05-29 12:42:47 +0200 | [diff] [blame] | 71 | FEATURES=%FEATURE% |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 72 | ) ELSE ( |
K.Takata | 47d1666 | 2022-01-26 16:20:21 +0000 | [diff] [blame] | 73 | nmake -f Make_mvc.mak CPU=AMD64 ^ |
Bram Moolenaar | f9a343f | 2020-07-29 16:32:21 +0200 | [diff] [blame] | 74 | OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^ |
K.Takata | f89be8d | 2021-05-29 12:42:47 +0200 | [diff] [blame] | 75 | FEATURES=%FEATURE% |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 76 | ) |
K.Takata | f89be8d | 2021-05-29 12:42:47 +0200 | [diff] [blame] | 77 | if not exist gvim.exe ( |
| 78 | echo Build failure. |
| 79 | exit 1 |
| 80 | ) |
| 81 | .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt || exit 1 |
Bram Moolenaar | 81275ca | 2016-02-24 21:02:20 +0100 | [diff] [blame] | 82 | |
Bram Moolenaar | f9a343f | 2020-07-29 16:32:21 +0200 | [diff] [blame] | 83 | echo "version output MSVC console" |
K.Takata | f89be8d | 2021-05-29 12:42:47 +0200 | [diff] [blame] | 84 | .\vim --version || exit 1 |
Bram Moolenaar | f9a343f | 2020-07-29 16:32:21 +0200 | [diff] [blame] | 85 | echo "version output MSVC GUI" |
K.Takata | f89be8d | 2021-05-29 12:42:47 +0200 | [diff] [blame] | 86 | type ver_msvc.txt || exit 1 |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 87 | |
| 88 | goto :eof |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 89 | |
Christopher Plewright | 5a57a5e | 2023-01-16 13:01:28 +0000 | [diff] [blame] | 90 | :: ---------------------------------------------------------------------------- |
| 91 | :test |
| 92 | @echo on |
| 93 | cd src/testdir |
| 94 | :: Testing with MSVC gvim |
| 95 | path %PYTHON3_DIR%;%PATH% |
| 96 | nmake -f Make_mvc.mak VIMPROG=..\gvim |
| 97 | nmake -f Make_mvc.mak clean |
| 98 | :: Testing with MSVC console version |
| 99 | nmake -f Make_mvc.mak VIMPROG=..\vim |
| 100 | |
| 101 | @echo off |
| 102 | goto :eof |
| 103 | |
| 104 | :: ---------------------------------------------------------------------------- |
Christopher Plewright | 474f226 | 2023-01-15 13:23:20 +0000 | [diff] [blame] | 105 | :downloadfile |
| 106 | :: call :downloadfile <URL> <localfile> |
| 107 | if not exist %2 ( |
| 108 | curl -f -L %1 -o %2 |
| 109 | ) |
| 110 | if ERRORLEVEL 1 ( |
| 111 | rem Retry once. |
| 112 | curl -f -L %1 -o %2 || exit 1 |
| 113 | ) |
| 114 | @goto :eof |