51 lines
1.4 KiB
Batchfile
51 lines
1.4 KiB
Batchfile
@echo off
|
|||
|
|
setlocal
|
||
|
|
|
||
|
|
set "SCRIPT_DIR=%~dp0"
|
||
|
|
for %%I in ("%SCRIPT_DIR%..") do set "ROOT_DIR=%%~fI"
|
||
|
|
set "DEST_DIR=%ROOT_DIR%\Overlord-Client\third_party\nvcodec"
|
||
|
|
set "DEST_HEADER=%DEST_DIR%\nvEncodeAPI.h"
|
||
|
|
if "%NV_CODEC_HEADERS_REPO%"=="" set "NV_CODEC_HEADERS_REPO=https://github.com/FFmpeg/nv-codec-headers.git"
|
||
|
|
if "%NV_CODEC_HEADERS_REF%"=="" set "NV_CODEC_HEADERS_REF=master"
|
||
|
|
|
||
|
|
set "FORCE=%FORCE_NV_CODEC_HEADERS%"
|
||
|
|
if /I "%~1"=="--force" set "FORCE=1"
|
||
|
|
|
||
|
|
if exist "%DEST_HEADER%" if not "%FORCE%"=="1" (
|
||
|
|
echo nvEncodeAPI.h already exists: "%DEST_HEADER%"
|
||
|
|
echo Use --force or set FORCE_NV_CODEC_HEADERS=1 to refresh it.
|
||
|
|
exit /b 0
|
||
|
|
)
|
||
|
|
|
||
|
|
where git >nul 2>&1
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo git is required to vendor nv-codec-headers
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
set "TMP_DIR=%DEST_DIR%\.nv-codec-headers.tmp"
|
||
|
|
if exist "%TMP_DIR%" rd /s /q "%TMP_DIR%"
|
||
|
|
if not exist "%DEST_DIR%" mkdir "%DEST_DIR%"
|
||
|
|
|
||
|
|
echo Cloning %NV_CODEC_HEADERS_REPO% (%NV_CODEC_HEADERS_REF%)...
|
||
|
|
git clone --depth 1 --branch "%NV_CODEC_HEADERS_REF%" "%NV_CODEC_HEADERS_REPO%" "%TMP_DIR%"
|
||
|
|
if errorlevel 1 goto :err
|
||
|
|
|
||
|
|
set "SRC_HEADER=%TMP_DIR%\include\ffnvcodec\nvEncodeAPI.h"
|
||
|
|
if not exist "%SRC_HEADER%" (
|
||
|
|
echo Expected header not found: "%SRC_HEADER%"
|
||
|
|
goto :err
|
||
|
|
)
|
||
|
|
|
||
|
|
copy /y "%SRC_HEADER%" "%DEST_HEADER%" >nul
|
||
|
|
if errorlevel 1 goto :err
|
||
|
|
rd /s /q "%TMP_DIR%"
|
||
|
|
|
||
|
|
echo Vendored "%DEST_HEADER%"
|
||
|
|
exit /b 0
|
||
|
|
|
||
|
|
:err
|
||
|
|
if exist "%TMP_DIR%" rd /s /q "%TMP_DIR%"
|
||
|
|
echo Failed to vendor nv-codec-headers
|
||
|
|
exit /b 1
|