Last active
March 21, 2016 03:12
-
-
Save Tosainu/a313c313556e76464f93 to your computer and use it in GitHub Desktop.
Vim build script for Windows.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 | |
rem Set Version | |
set VIM_VER=v7.4.1627 | |
set LUA_VER=5.3.2 | |
set PERL_VER=522 | |
rem Set variables | |
set CURRENT_DIR=%~dp0 | |
set LUA_DIR=%CURRENT_DIR%lua | |
set VIM_DIR=%CURRENT_DIR%vim | |
set XPM_DIR=%CURRENT_DIR%libXpm-win32 | |
set ICONV_DIR=%CURRENT_DIR%libiconv | |
set VIMTWEAK_DIR=%CURRENT_DIR%vimtweak | |
set SDK_INCLUDE_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include | |
rem Vim features | |
set CPU=AMD64 | |
set DEBUG=no | |
set DIRECTX=yes | |
set DYNAMIC_LUA=yes | |
set DYNAMIC_PERL=yes | |
set FEATURES=HUGE | |
set GETTEXT=no | |
set ICONV=yes | |
set IME=yes | |
set LUA=..\..\lua | |
set MBYTE=yes | |
set OLE=yes | |
set PERL=C:\Perl64 | |
set WINVER=0x0601 | |
set XPM=..\..\libXpm-win32 | |
rem Update sources | |
echo - Updating Vim sources... | |
if not exist %VIM_DIR% ( | |
git clone https://github.com/vim/vim.git %VIM_DIR% | |
cd %VIM_DIR% | |
) else ( | |
cd %VIM_DIR% | |
git pull | |
) | |
git checkout %VIM_VER% | |
echo - Updating Lua sources... | |
if not exist %LUA_DIR% ( | |
git clone https://github.com/lua/lua.git %LUA_DIR% | |
cd %LUA_DIR% | |
) else ( | |
cd %LUA_DIR% | |
git pull | |
) | |
git checkout %LUA_VER% | |
echo - Updating libXpm sources... | |
if not exist %XPM_DIR% ( | |
git clone https://github.com/koron/libXpm-win32.git %XPM_DIR% | |
) else ( | |
cd %XPM_DIR% | |
git pull | |
) | |
echo - Updating libiconv sources... | |
if not exist %ICONV_DIR% ( | |
git clone https://github.com/koron/libiconv.git %ICONV_DIR% | |
) else ( | |
cd %ICONV_DIR% | |
git pull | |
) | |
echo - Updating vimtweak sources... | |
if not exist %VIMTWEAK_DIR% ( | |
git clone https://github.com/mattn/vimtweak.git %VIMTWEAK_DIR% | |
) else ( | |
cd %VIMTWEAK_DIR% | |
git pull | |
) | |
echo ------------------------------ | |
echo - Building Lua... | |
cd %LUA_DIR%\src | |
del lua.c luac.c | |
cl /nologo /c /MD /MP /Ox /Zi /Fd:lua.pdb /DLUA_BUILD_AS_DLL *.c | |
link /nologo /DLL /PDB:lua.pdb /IMPLIB:lua%LUA_VER%.lib /OUT:lua%LUA_VER%.dll *.obj | |
cd ..\ | |
mkdir include | |
mkdir lib | |
copy src\*.h include\ | |
copy src\*.lib lib\ | |
copy src\*.dll lib\ | |
echo ------------------------------ | |
echo - Building libXpm... | |
cd %XPM_DIR%\src | |
nmake /nologo -f Make_msvc_lib.mak nomsvcrt=1 | |
cd ..\ | |
copy include\X11\xpm.h include\ | |
copy src\*.h include\ | |
mkdir lib | |
copy src\*.lib lib\ | |
echo ------------------------------ | |
echo - Building libiconv... | |
cd %ICONV_DIR%\msvc10 | |
set "INCLUDE=%INCLUDE%;%SDK_INCLUDE_DIR%" | |
nmake /nologo nodebug=1 nomsvcrt=1 | |
echo ------------------------------ | |
echo - Building vimtweak... | |
cd %VIMTWEAK_DIR% | |
cl /nologo /c /MD /Ox vimtweak.c | |
link /nologo /DLL vimtweak.obj user32.lib | |
echo ------------------------------ | |
cd %VIM_DIR%\src | |
echo - Building GVim... | |
nmake /nologo -f Make_mvc.mak GUI=yes | |
echo - Building Vim... | |
nmake /nologo -f Make_mvc.mak GUI=no | |
echo ------------------------------ | |
echo - Copying files... | |
cd %CURRENT_DIR% | |
set OUT_DIR=Vim-%VIM_VER% | |
mkdir %OUT_DIR% | |
copy %LUA_DIR%\lib\*.dll %OUT_DIR%\ | |
copy %ICONV_DIR%\msvc10\*.dll %OUT_DIR%\ | |
copy %VIMTWEAK_DIR%\*.dll %OUT_DIR% | |
copy %VIM_DIR%\src\*.exe %OUT_DIR%\ | |
copy %VIM_DIR%\src\xxd\*.exe %OUT_DIR%\ | |
xcopy %VIM_DIR%\runtime %OUT_DIR%\vim74 /e /c /h /i | |
del %OUT_DIR%\install.exe %OUT_DIR%\uninstal.exe | |
echo ------------------------------ | |
echo - Cleaning... | |
cd %VIM_DIR% | |
git clean -fdx | |
git checkout . | |
git checkout master | |
cd %LUA_DIR% | |
git clean -fdx | |
git checkout . | |
git checkout master | |
cd %XPM_DIR% | |
git clean -fdx | |
git checkout . | |
cd %ICONV_DIR% | |
git clean -fdx | |
git checkout . | |
cd %VIMTWEAK_DIR% | |
git clean -fdx | |
git checkout . | |
echo ------------------------------ | |
cd %CURRENT_DIR% | |
echo Done!! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment