vcpkg/ports/ffnvcodec/portfile.cmake
Marc Bertola 78a2116a4a
[ffmpeg] Add NVIDIA Codec feature for Windows and Linux (#9171)
* Add NVIDIA Codec support for Windows, Linux and Linux for Tegra

* [ffnvcodec] Fix typos, add/remove comments

* Bump nvcodec version to 9.1.23.1

* Update version number as per change request

* Use PORT variable instead of hardcoded portname

* Identify the release the hash pertains to

* Find nvcodec in 'installed' instead of 'packages'

* Force FFmpeg to look for nvcodec headers in the installed directory instead of /usr/lib/pkgconfig.

* Use p option on cygpath to convert full path in case it contains more than one entry
2020-03-24 13:00:09 -07:00

54 lines
2.0 KiB
CMake

# Get nvcodec
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO FFmpeg/nv-codec-headers
REF 4a0bbfd58724d6d19851cd8a6f7a9098dde9ab77 # 9.1.23.1
SHA512 39b643c6925558428f2e814fc3441878a906f324163396b8c6139ce48f62308c3dc2416b9c995eaed890338919ca0dfc9437fbb6b6d078f7a6f1b9675104c223
HEAD_REF master
)
# ====================================================
# Install the pkgconfig info for the `nvcodec` package
# ====================================================
# Windows
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set(BUILD_SCRIPT ${CMAKE_CURRENT_LIST_DIR}\\build.sh)
vcpkg_acquire_msys(MSYS_ROOT PACKAGES make pkg-config)
set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
# Make and deploy the ffnvcodec.pc file using MSYS
# (so that FFmpeg can find it in the MSYS rootfs)
vcpkg_execute_required_process(
COMMAND ${BASH} --noprofile --norc "${BUILD_SCRIPT}"
"${SOURCE_PATH}"
"${CURRENT_PACKAGES_DIR}"
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}
LOGNAME build-${TARGET_TRIPLET}
)
# Linux, etc.
else()
FIND_PROGRAM(MAKE make)
IF (NOT MAKE)
MESSAGE(FATAL_ERROR "MAKE not found")
ENDIF ()
vcpkg_execute_required_process(
COMMAND make PREFIX=$${CURRENT_PACKAGES_DIR}
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME make-${TARGET_TRIPLET}
)
# FFmpeg uses pkgconfig to find ffnvcodec.pc, so install it where
# FFMpeg's call to pkgconfig expects to find it.
file(INSTALL ${SOURCE_PATH}/ffnvcodec.pc DESTINATION ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
endif()
# Install the files to their default vcpkg locations
file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR})
file(INSTALL ${CURRENT_PORT_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})