You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
@ECHO OFF |
|
REM ================================================================ |
|
REM This script installs the "vcpkg" source package manager and uses |
|
REM it to build the third-party libraries that git requires when it |
|
REM is built using MSVC. |
|
REM |
|
REM [1] Install VCPKG. |
|
REM [a] Create <root>/compat/vcbuild/vcpkg/ |
|
REM [b] Download "vcpkg". |
|
REM [c] Compile using the currently installed version of VS. |
|
REM [d] Create <root>/compat/vcbuild/vcpkg/vcpkg.exe |
|
REM |
|
REM [2] Install third-party libraries. |
|
REM [a] Download each (which may also install CMAKE). |
|
REM [b] Compile in RELEASE mode and install in: |
|
REM vcpkg/installed/<arch>/{bin,lib} |
|
REM [c] Compile in DEBUG mode and install in: |
|
REM vcpkg/installed/<arch>/debug/{bin,lib} |
|
REM [d] Install headers in: |
|
REM vcpkg/installed/<arch>/include |
|
REM |
|
REM [3] Create a set of MAKE definitions for the top-level |
|
REM Makefile to allow "make MSVC=1" to find the above |
|
REM third-party libraries. |
|
REM [a] Write vcpkg/VCPGK-DEFS |
|
REM |
|
REM https://blogs.msdn.microsoft.com/vcblog/2016/09/19/vcpkg-a-tool-to-acquire-and-build-c-open-source-libraries-on-windows/ |
|
REM https://github.com/Microsoft/vcpkg |
|
REM https://vcpkg.readthedocs.io/en/latest/ |
|
REM ================================================================ |
|
|
|
SETLOCAL EnableDelayedExpansion |
|
|
|
@FOR /F "delims=" %%D IN ("%~dp0") DO @SET cwd=%%~fD |
|
cd %cwd% |
|
|
|
dir vcpkg\vcpkg.exe >nul 2>nul && GOTO :install_libraries |
|
|
|
echo Fetching vcpkg in %cwd%vcpkg |
|
git.exe clone https://github.com/Microsoft/vcpkg vcpkg |
|
IF ERRORLEVEL 1 ( EXIT /B 1 ) |
|
|
|
cd vcpkg |
|
echo Building vcpkg |
|
powershell -exec bypass scripts\bootstrap.ps1 |
|
IF ERRORLEVEL 1 ( EXIT /B 1 ) |
|
|
|
echo Successfully installed %cwd%vcpkg\vcpkg.exe |
|
|
|
:install_libraries |
|
SET arch=x64-windows |
|
|
|
echo Installing third-party libraries... |
|
FOR %%i IN (zlib expat libiconv openssl libssh2 curl) DO ( |
|
cd %cwd%vcpkg |
|
IF NOT EXIST "packages\%%i_%arch%" CALL :sub__install_one %%i |
|
IF ERRORLEVEL 1 ( EXIT /B 1 ) |
|
) |
|
|
|
:install_defines |
|
cd %cwd% |
|
SET inst=%cwd%vcpkg\installed\%arch% |
|
|
|
echo vcpkg_inc=-I"%inst%\include">VCPKG-DEFS |
|
echo vcpkg_rel_lib=-L"%inst%\lib">>VCPKG-DEFS |
|
echo vcpkg_rel_bin="%inst%\bin">>VCPKG-DEFS |
|
echo vcpkg_dbg_lib=-L"%inst%\debug\lib">>VCPKG-DEFS |
|
echo vcpkg_dbg_bin="%inst%\debug\bin">>VCPKG-DEFS |
|
|
|
EXIT /B 0 |
|
|
|
|
|
:sub__install_one |
|
echo Installing package %1... |
|
|
|
.\vcpkg.exe install %1:%arch% |
|
IF ERRORLEVEL 1 ( EXIT /B 1 ) |
|
|
|
echo Finished %1 |
|
goto :EOF
|
|
|