45 lines
1.2 KiB
Bash
45 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||
|
|
DEST_DIR="${ROOT_DIR}/Overlord-Client/third_party/nvcodec"
|
||
|
|
DEST_HEADER="${DEST_DIR}/nvEncodeAPI.h"
|
||
|
|
REPO_URL="${NV_CODEC_HEADERS_REPO:-https://github.com/FFmpeg/nv-codec-headers.git}"
|
||
|
|
REF="${NV_CODEC_HEADERS_REF:-master}"
|
||
|
|
FORCE="${FORCE_NV_CODEC_HEADERS:-0}"
|
||
|
|
|
||
|
|
if [[ "${1:-}" == "--force" ]]; then
|
||
|
|
FORCE=1
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [[ -s "${DEST_HEADER}" && "${FORCE}" != "1" ]]; then
|
||
|
|
echo "nvEncodeAPI.h already exists: ${DEST_HEADER}"
|
||
|
|
echo "Use --force or FORCE_NV_CODEC_HEADERS=1 to refresh it."
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
command -v git >/dev/null 2>&1 || {
|
||
|
|
echo "git is required to vendor nv-codec-headers" >&2
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
|
||
|
|
TMP_DIR="${DEST_DIR}/.nv-codec-headers.tmp"
|
||
|
|
rm -rf "${TMP_DIR}"
|
||
|
|
mkdir -p "${DEST_DIR}"
|
||
|
|
|
||
|
|
echo "Cloning ${REPO_URL} (${REF})..."
|
||
|
|
git clone --depth 1 --branch "${REF}" "${REPO_URL}" "${TMP_DIR}"
|
||
|
|
|
||
|
|
SRC_HEADER="${TMP_DIR}/include/ffnvcodec/nvEncodeAPI.h"
|
||
|
|
if [[ ! -s "${SRC_HEADER}" ]]; then
|
||
|
|
echo "Expected header not found: ${SRC_HEADER}" >&2
|
||
|
|
rm -rf "${TMP_DIR}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
cp "${SRC_HEADER}" "${DEST_HEADER}"
|
||
|
|
rm -rf "${TMP_DIR}"
|
||
|
|
|
||
|
|
echo "Vendored ${DEST_HEADER}"
|