From 5974a9608871edddcd6c2f2e7fa6c78c1cb62149 Mon Sep 17 00:00:00 2001 From: linbo <1034003879@qq.com> Date: Tue, 18 Aug 2026 11:15:14 +0800 Subject: [PATCH] fix(media): set bundled iHD driver runtime path --- CMakeLists.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index be448083..062635db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,37 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") include(FindExternalLib) set(ARCH "x86") setup_external_libs(${ARCH}) +# Intel oneVPL / VA-API runtime. The shared libraries in lib/ are installed +# by setup_external_libs(); the VA-API driver plugin directory is installed +# separately because it must retain its dri layout. +set(INTEL_MEDIA_STACK_ROOT + "${PROJECT_SOURCE_DIR}/dependency/${ARCH}/third_party/intel-media-stack/vpl-2.17" +) +set(INTEL_MEDIA_DRIVER_DIR "${INTEL_MEDIA_STACK_ROOT}/lib/dri") +set(INTEL_IHD_DRIVER "${INTEL_MEDIA_DRIVER_DIR}/iHD_drv_video.so") + +if(NOT EXISTS "${INTEL_IHD_DRIVER}") + message(FATAL_ERROR "Intel iHD VA-API driver not found: ${INTEL_IHD_DRIVER}") +endif() + +message(STATUS "Intel media stack: ${INTEL_MEDIA_STACK_ROOT}") +install( + DIRECTORY "${INTEL_MEDIA_DRIVER_DIR}/" + DESTINATION lib/dri +) +install(CODE [=[ + find_program(CMVR_PATCHELF_EXECUTABLE patchelf REQUIRED) + set(_cmvr_ihd_driver + "${CMAKE_INSTALL_PREFIX}/lib/dri/iHD_drv_video.so" + ) + execute_process( + COMMAND "${CMVR_PATCHELF_EXECUTABLE}" + --set-rpath "$ORIGIN/.." + "${_cmvr_ihd_driver}" + COMMAND_ERROR_IS_FATAL ANY + ) +]=]) + # 在调用 setup_external_libs 之后 message(STATUS "CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") message(STATUS "CMAKE_SHARED_LINKER_FLAGS: ${CMAKE_SHARED_LINKER_FLAGS}")