Skip to content

Commit f49608f

Browse files
committed
appveyor.bat: add a function for the mklink call and check if the target exists
instead of using mklink directly, test if the target already exists before trying to create it. This will make it work better when re-running a command Signed-off-by: Christian Brabandt <[email protected]>
1 parent 7fc6b5a commit f49608f

File tree

1 file changed

+48
-52
lines changed

1 file changed

+48
-52
lines changed

appveyor.bat

Lines changed: 48 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ goto :skiptcl
212212
rem call :downloadfile "%TCL_URL%" downloads\tcl-%BIT%.zip
213213
rem 7z.exe x downloads\tcl-%BIT%.zip -o%DEPENDENCIES%\ > nul || exit 1
214214
rem move /Y %DEPENDENCIES%\tcltk-%TCL_VER_LONG%.10-barebones-%ARCH% %TCL_DIR%
215-
rem mklink /H vim\src\%TCL_DLL% %TCL_DIR%\bin\%TCL_DLL%
215+
rem call :mklink "vim\src\%TCL_DLL%" "%TCL_DIR%\bin\%TCL_DLL%"
216216
:skiptcl
217217

218218
@rem Python2
@@ -277,11 +277,11 @@ call :downloadfile "%GETTEXT_64_URL%" downloads\gettext64.zip
277277
call :downloadfile "%WINPTY_URL%" downloads\winpty.zip
278278
7z.exe x -y downloads\winpty.zip -o%WINPTY_DIR% > nul || exit 1
279279
if /I "%ARCH%"=="x64" (
280-
mklink /H vim\src\winpty64.dll %WINPTY_DIR%\x64\bin\winpty.dll
281-
mklink /H vim\src\winpty-agent.exe %WINPTY_DIR%\x64\bin\winpty-agent.exe
280+
call :mklink "vim\src\winpty64.dll" "%WINPTY_DIR%\x64\bin\winpty.dll"
281+
call :mklink "vim\src\winpty-agent.exe" "%WINPTY_DIR%\x64\bin\winpty-agent.exe"
282282
) else (
283-
mklink /H vim\src\winpty32.dll %WINPTY_DIR%\ia32\bin\winpty.dll
284-
mklink /H vim\src\winpty-agent.exe %WINPTY_DIR%\ia32\bin\winpty-agent.exe
283+
call :mklink "vim\src\winpty32.dll" "%WINPTY_DIR%\ia32\bin\winpty.dll"
284+
call :mklink "vim\src\winpty-agent.exe" "%WINPTY_DIR%\ia32\bin\winpty-agent.exe"
285285
)
286286

287287
@rem Install UPX
@@ -294,18 +294,15 @@ rem 7z.exe e -y downloads\upx.zip *\upx.exe -ovim\nsis > nul || exit 1
294294
call :downloadfile "%SHELLEXECASUSER_URL%" downloads\shellexecasuser.zip
295295
7z.exe x -y downloads\shellexecasuser.zip ^
296296
-o%DEPENDENCIES%\shellexecasuser > nul || exit 1
297-
mklink /H "%ProgramFiles(x86)%\NSIS\Plugins\x86-unicode\ShellExecAsUser.dll" ^
298-
%DEPENDENCIES%\shellexecasuser\unicode\ShellExecAsUser.dll
297+
call :mklink "%ProgramFiles(x86)%\NSIS\Plugins\x86-unicode\ShellExecAsUser.dll" "%DEPENDENCIES%\shellexecasuser\unicode\ShellExecAsUser.dll"
299298

300299
@rem Install Libsodium
301300
call :downloadfile "%LIBSODIUM_URL%" downloads\libsodium.zip
302301
7z.exe x -y downloads\libsodium.zip -o%DEPENDENCIES%\ > nul || exit 1
303302
if /I "%ARCH%"=="x64" (
304-
mklink /H vim\src\libsodium.dll ^
305-
%SODIUM_DIR%\x64\Release\v143\dynamic\libsodium.dll
303+
call :mklink "vim\src\libsodium.dll" "%SODIUM_DIR%\x64\Release\v143\dynamic\libsodium.dll"
306304
) else (
307-
mklink /H vim\src\libsodium.dll ^
308-
%SODIUM_DIR%\Win32\Release\v143\dynamic\libsodium.dll
305+
call :mklink "vim\src\libsodium.dll" "%SODIUM_DIR%\Win32\Release\v143\dynamic\libsodium.dll"
309306
)
310307

311308
@echo off
@@ -373,58 +370,52 @@ mkdir vim\runtime\GvimExt32
373370
@rem Build both 64- and 32-bit versions of gvimext.dll for the installer
374371
start "" /W cmd /C "%VCVARSALL% x64 && cd vim\src\GvimExt && nmake.exe -lf Make_mvc.mak CPU=AMD64 clean all > ..\gvimext.log"
375372
type vim\src\gvimext.log
376-
mklink /H vim\runtime\GvimExt64\gvimext.dll vim\src\GvimExt\gvimext.dll
377-
mklink /H vim\runtime\GvimExt64\README.txt vim\src\GvimExt\README.txt
378-
mklink /H vim\runtime\GvimExt64\gvimext.inf vim\src\GvimExt\gvimext.inf
379-
mklink /H vim\runtime\GvimExt64\GvimExt.reg vim\src\GvimExt\GvimExt.reg
373+
call :mklink "vim\runtime\GvimExt64\gvimext.dll" "vim\src\GvimExt\gvimext.dll"
374+
call :mklink "vim\runtime\GvimExt64\README.txt" "vim\src\GvimExt\README.txt"
375+
call :mklink "vim\runtime\GvimExt64\gvimext.inf" "vim\src\GvimExt\gvimext.inf"
376+
call :mklink "vim\runtime\GvimExt64\GvimExt.reg" "vim\src\GvimExt\GvimExt.reg"
380377
ren vim\src\GvimExt\gvimext.dll gvimext64.dll
381378

382379
start "" /W cmd /C "%VCVARSALL% x86 && cd vim\src\GvimExt && nmake.exe -lf Make_mvc.mak CPU=i386 clean all > ..\gvimext.log"
383380
type vim\src\gvimext.log
384-
mklink /H vim\runtime\GvimExt32\gvimext.dll vim\src\GvimExt\gvimext.dll
385-
mklink /H vim\runtime\GvimExt32\README.txt vim\src\GvimExt\README.txt
386-
mklink /H vim\runtime\GvimExt32\gvimext.inf vim\src\GvimExt\gvimext.inf
387-
mklink /H vim\runtime\GvimExt32\GvimExt.reg vim\src\GvimExt\GvimExt.reg
388-
389-
mklink /H vim\runtime\README.txt vim\README.txt
390-
mklink /H vim\runtime\LICENSE.txt vim\LICENSE
391-
mklink /H vim\runtime\uninstall.txt vim\uninstall.txt
392-
mklink /H vim\runtime\vimtutor.bat vim\vimtutor.bat
393-
mklink /H vim\runtime\vim.ico vim\src\vim.ico
394-
mklink /H vim\runtime\gvim.exe vim\src\gvim.exe
395-
mklink /H vim\runtime\install.exe vim\src\install.exe
396-
mklink /H vim\runtime\tee.exe vim\src\tee\tee.exe
397-
mklink /H vim\runtime\vim%BIT%.dll vim\src\vim%BIT%.dll
398-
mklink /H vim\runtime\vim.exe vim\src\vim.exe
399-
mklink /H vim\runtime\vimrun.exe vim\src\vimrun.exe
400-
mklink /H vim\runtime\uninstall.exe vim\src\uninstall.exe
401-
mklink /H vim\runtime\xxd.exe vim\src\xxd\xxd.exe
402-
403-
mklink /H vim\runtime\libiconv-2.dll %DEPENDENCIES%\gettext%BIT%\libiconv-2.dll
404-
mklink /H vim\runtime\libintl-8.dll %DEPENDENCIES%\gettext%BIT%\libintl-8.dll
381+
call :mklink "vim\runtime\GvimExt32\gvimext.dll" "vim\src\GvimExt\gvimext.dll"
382+
call :mklink "vim\runtime\GvimExt32\README.txt" "vim\src\GvimExt\README.txt"
383+
call :mklink "vim\runtime\GvimExt32\gvimext.inf" "vim\src\GvimExt\gvimext.inf"
384+
call :mklink "vim\runtime\GvimExt32\GvimExt.reg" "vim\src\GvimExt\GvimExt.reg"
385+
386+
call :mklink "vim\runtime\README.txt" "vim\README.txt"
387+
call :mklink "vim\runtime\LICENSE.txt" "vim\LICENSE"
388+
call :mklink "vim\runtime\uninstall.txt" "vim\uninstall.txt"
389+
call :mklink "vim\runtime\vimtutor.bat" "vim\vimtutor.bat"
390+
call :mklink "vim\runtime\vim.ico" "vim\src\vim.ico"
391+
call :mklink "vim\runtime\gvim.exe" "vim\src\gvim.exe"
392+
call :mklink "vim\runtime\install.exe" "vim\src\install.exe"
393+
call :mklink "vim\runtime\tee.exe" "vim\src\tee\tee.exe"
394+
call :mklink "vim\runtime\vim%BIT%.dll" "vim\src\vim%BIT%.dll"
395+
call :mklink "vim\runtime\vim.exe" "vim\src\vim.exe"
396+
call :mklink "vim\runtime\vimrun.exe" "vim\src\vimrun.exe"
397+
call :mklink "vim\runtime\uninstall.exe" "vim\src\uninstall.exe"
398+
call :mklink "vim\runtime\xxd.exe" "vim\src\xxd\xxd.exe"
399+
400+
call :mklink "vim\runtime\libiconv-2.dll" "%DEPENDENCIES%\gettext%BIT%\libiconv-2.dll"
401+
call :mklink "vim\runtime\libintl-8.dll" "%DEPENDENCIES%\gettext%BIT%\libintl-8.dll"
405402
if "%INCLUDE_LIBGCC%-%BIT%"=="1-32" (
406-
mklink /H vim\runtime\libgcc_s_sjlj-1.dll ^
407-
%DEPENDENCIES%\gettext32\libgcc_s_sjlj-1.dll
403+
call :mklink "vim\runtime\libgcc_s_sjlj-1.dll" "%DEPENDENCIES%\gettext32\libgcc_s_sjlj-1.dll"
408404
)
409405

410-
mklink /H vim\runtime\GvimExt64\libiconv-2.dll ^
411-
%DEPENDENCIES%\gettext64\libiconv-2.dll
412-
mklink /H vim\runtime\GvimExt64\libintl-8.dll ^
413-
%DEPENDENCIES%\gettext64\libintl-8.dll
406+
call :mklink "vim\runtime\GvimExt64\libiconv-2.dll" "%DEPENDENCIES%\gettext64\libiconv-2.dll"
407+
call :mklink "vim\runtime\GvimExt64\libintl-8.dll" "%DEPENDENCIES%\gettext64\libintl-8.dll"
414408

415-
mklink /H vim\runtime\GvimExt32\libiconv-2.dll ^
416-
%DEPENDENCIES%\gettext32\libiconv-2.dll
417-
mklink /H vim\runtime\GvimExt32\libintl-8.dll ^
418-
%DEPENDENCIES%\gettext32\libintl-8.dll
409+
call :mklink "vim\runtime\GvimExt32\libiconv-2.dll" "%DEPENDENCIES%\gettext32\libiconv-2.dll"
410+
call :mklink "vim\runtime\GvimExt32\libintl-8.dll" "%DEPENDENCIES%\gettext32\libintl-8.dll"
419411
if "%INCLUDE_LIBGCC%"=="1" (
420-
mklink /H vim\runtime\GvimExt32\libgcc_s_sjlj-1.dll ^
421-
%DEPENDENCIES%\gettext32\libgcc_s_sjlj-1.dll
412+
call :mklink "vim\runtime\GvimExt32\libgcc_s_sjlj-1.dll" "%DEPENDENCIES%\gettext32\libgcc_s_sjlj-1.dll"
422413
)
423414

424-
mklink /H vim\runtime\libsodium.dll vim\src\libsodium.dll
425-
mklink /H vim\runtime\diff.exe .\diff.exe
426-
mklink /H vim\runtime\winpty%BIT%.dll vim\src\winpty%BIT%.dll
427-
mklink /H vim\runtime\winpty-agent.exe vim\src\winpty-agent.exe
415+
call :mklink "vim\runtime\libsodium.dll" "vim\src\libsodium.dll"
416+
call :mklink "vim\runtime\diff.exe" ".\diff.exe"
417+
call :mklink "vim\runtime\winpty%BIT%.dll" "vim\src\winpty%BIT%.dll"
418+
call :mklink "vim\runtime\winpty-agent.exe" "vim\src\winpty-agent.exe"
428419

429420
set "VIM_DIR=vim%MAJOR%%MINOR%"
430421
ren vim\runtime %VIM_DIR%
@@ -561,6 +552,11 @@ if ERRORLEVEL 1 (
561552
)
562553
@goto :eof
563554

555+
:mklink
556+
@rem call :mklink "linkname" "target"
557+
if exist %1 exit /B
558+
mklink /H %1 %2
559+
@goto :eof
564560
EndLocal
565561

566562
@rem vim:ft=dosbatch:ts=8:sts=2:sw=2:noet:

0 commit comments

Comments
 (0)