From badc677689ba748da1b1da097835cbca6469e23d Mon Sep 17 00:00:00 2001 From: Weihang Ding <798047000@qq.com> Date: Wed, 1 Jul 2026 08:39:37 +0800 Subject: [PATCH] [libvpl] Fix cmake config [vcpkg-ci-libvpl] New ci port (#52647) --- ports/libvpl/001-fix-pkgconfig.patch | 4 +- ports/libvpl/002-fix-cmake-config.patch | 68 +++++++++++++++++++ ports/libvpl/portfile.cmake | 1 + ports/libvpl/vcpkg.json | 1 + .../test_ports/vcpkg-ci-libvpl/portfile.cmake | 10 +++ .../vcpkg-ci-libvpl/project/CMakeLists.txt | 22 ++++++ .../vcpkg-ci-libvpl/project/main.cpp | 10 +++ scripts/test_ports/vcpkg-ci-libvpl/vcpkg.json | 13 ++++ versions/baseline.json | 2 +- versions/l-/libvpl.json | 5 ++ 10 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 ports/libvpl/002-fix-cmake-config.patch create mode 100644 scripts/test_ports/vcpkg-ci-libvpl/portfile.cmake create mode 100755 scripts/test_ports/vcpkg-ci-libvpl/project/CMakeLists.txt create mode 100755 scripts/test_ports/vcpkg-ci-libvpl/project/main.cpp create mode 100755 scripts/test_ports/vcpkg-ci-libvpl/vcpkg.json diff --git a/ports/libvpl/001-fix-pkgconfig.patch b/ports/libvpl/001-fix-pkgconfig.patch index eb0188438f..b46b66d2c7 100755 --- a/ports/libvpl/001-fix-pkgconfig.patch +++ b/ports/libvpl/001-fix-pkgconfig.patch @@ -1,5 +1,5 @@ diff --git a/libvpl/CMakeLists.txt b/libvpl/CMakeLists.txt -index 0419980..42a765a 100644 +index 0419980..5bef1c7 100644 --- a/libvpl/CMakeLists.txt +++ b/libvpl/CMakeLists.txt @@ -188,10 +188,24 @@ if(INSTALL_DEV) @@ -40,6 +40,6 @@ index aa9b158..46b2c38 100644 +prefix=${pcfiledir}/../.. +libdir=${prefix}/lib +includedir=${prefix}/include - + Name: Intel(R) Video Processing Library Description: Accelerated video decode, encode, and frame processing capabilities on Intel(R) GPUs diff --git a/ports/libvpl/002-fix-cmake-config.patch b/ports/libvpl/002-fix-cmake-config.patch new file mode 100644 index 0000000000..ea7ee49930 --- /dev/null +++ b/ports/libvpl/002-fix-cmake-config.patch @@ -0,0 +1,68 @@ +diff --git a/libvpl/cmake/VPLConfig.cmake.in b/libvpl/cmake/VPLConfig.cmake.in +index 7a60974..c480561 100644 +--- a/libvpl/cmake/VPLConfig.cmake.in ++++ b/libvpl/cmake/VPLConfig.cmake.in +@@ -12,26 +12,26 @@ + option(VPL_SHARED "Use shared instead of static version of dispatcher." + @BUILD_SHARED_LIBS@) + ++get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) ++get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) ++get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) ++if(_IMPORT_PREFIX STREQUAL "/") ++ set(_IMPORT_PREFIX "") ++endif() ++ + # Initialize to default values + set(VPL_INTERFACE_VERSION @API_VERSION_MAJOR@) +-get_filename_component(_vpl_config_file +- "${CMAKE_CURRENT_LIST_DIR}/VPLConfig.cmake" REALPATH) +-get_filename_component(_vpl_config_dir "${_vpl_config_file}" DIRECTORY) +-get_filename_component(_vpl_install_prefix +- "${_vpl_config_dir}/@cmake_rel_prefix@" REALPATH) + +-get_filename_component(VPL_LIB_DIR "${_vpl_config_dir}/@cmake_rel_libdir@" ++get_filename_component(VPL_LIB_DIR "${_IMPORT_PREFIX}/lib" + ABSOLUTE) +-get_filename_component(VPL_INCLUDE_DIR "${_vpl_config_dir}/@cmake_rel_incdir@" ++get_filename_component(VPL_DEBUG_LIB_DIR "${_IMPORT_PREFIX}/debug/lib" + ABSOLUTE) +-get_filename_component(VPL_BIN_DIR "${_vpl_config_dir}/@cmake_rel_bindir@" ++get_filename_component(VPL_INCLUDE_DIR "${_IMPORT_PREFIX}/include" ++ ABSOLUTE) ++get_filename_component(VPL_BIN_DIR "${_IMPORT_PREFIX}/bin" ++ ABSOLUTE) ++get_filename_component(VPL_DEBUG_BIN_DIR "${_IMPORT_PREFIX}/debug/bin" + ABSOLUTE) +- +-if(CMAKE_SYSTEM_NAME MATCHES Windows) +- set(VPL_SHLIB_DIR ${VPL_BIN_DIR}) +-else() +- set(VPL_SHLIB_DIR ${VPL_LIB_DIR}) +-endif() + + if(NOT VPL_IMPORTED_TARGETS) + set(VPL_IMPORTED_TARGETS "") +@@ -47,18 +47,18 @@ endif() + # VPL::dispatcher + set(VPL_dispatcher_FOUND 0) + +-get_filename_component(_dispatcher_shlib "${VPL_SHLIB_DIR}/@SHLIB_FILE_NAME@" ++get_filename_component(_dispatcher_shlib "${VPL_BIN_DIR}/@SHLIB_FILE_NAME@" + ABSOLUTE) + get_filename_component(_dispatcher_debug_shlib +- "${VPL_SHLIB_DIR}/@SHLIB_FILE_NAME_DEBUG@" ABSOLUTE) ++ "${VPL_DEBUG_BIN_DIR}/@SHLIB_FILE_NAME_DEBUG@" ABSOLUTE) + get_filename_component(_dispatcher_lib "${VPL_LIB_DIR}/@LIB_FILE_NAME@" + ABSOLUTE) + get_filename_component(_dispatcher_debug_lib +- "${VPL_LIB_DIR}/@LIB_FILE_NAME_DEBUG@" ABSOLUTE) ++ "${VPL_DEBUG_LIB_DIR}/@LIB_FILE_NAME_DEBUG@" ABSOLUTE) + get_filename_component(_dispatcher_implib "${VPL_LIB_DIR}/@LIB_FILE_NAME@" + ABSOLUTE) + get_filename_component(_dispatcher_debug_implib +- "${VPL_LIB_DIR}/@LIB_FILE_NAME_DEBUG@" ABSOLUTE) ++ "${VPL_DEBUG_LIB_DIR}/@LIB_FILE_NAME_DEBUG@" ABSOLUTE) + + if(TARGET VPL::dispatcher) + list(APPEND VPL_IMPORTED_TARGETS VPL::dispatcher) diff --git a/ports/libvpl/portfile.cmake b/ports/libvpl/portfile.cmake index 850579bc28..8ec68bc208 100755 --- a/ports/libvpl/portfile.cmake +++ b/ports/libvpl/portfile.cmake @@ -6,6 +6,7 @@ vcpkg_from_github( HEAD_REF main PATCHES 001-fix-pkgconfig.patch + 002-fix-cmake-config.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_MSVC_STATIC_RUNTIME) diff --git a/ports/libvpl/vcpkg.json b/ports/libvpl/vcpkg.json index be47f59057..b395cbe955 100755 --- a/ports/libvpl/vcpkg.json +++ b/ports/libvpl/vcpkg.json @@ -1,6 +1,7 @@ { "name": "libvpl", "version": "2.17.0", + "port-version": 1, "description": "Intel Video Processing Library (oneVPL) dispatcher", "homepage": "https://github.com/intel/libvpl", "license": "MIT", diff --git a/scripts/test_ports/vcpkg-ci-libvpl/portfile.cmake b/scripts/test_ports/vcpkg-ci-libvpl/portfile.cmake new file mode 100644 index 0000000000..dd25706120 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libvpl/portfile.cmake @@ -0,0 +1,10 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" + OPTIONS + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" +) +vcpkg_cmake_build() diff --git a/scripts/test_ports/vcpkg-ci-libvpl/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-libvpl/project/CMakeLists.txt new file mode 100755 index 0000000000..80205e01fb --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libvpl/project/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.15) +project(vcpkg-ci-libvpl) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +################################################################################ +# Use cmake config # +################################################################################ +find_package(VPL CONFIG REQUIRED) +add_executable(vcpkg-ci-libvpl main.cpp) +target_link_libraries(vcpkg-ci-libvpl PRIVATE VPL::dispatcher) + + +################################################################################ +# Use pkg-config # +################################################################################ +find_package(PkgConfig) +pkg_check_modules(vpl REQUIRED IMPORTED_TARGET vpl) +add_executable(vcpkg-ci-libvpl-pc main.cpp) +target_link_libraries(vcpkg-ci-libvpl-pc PRIVATE PkgConfig::vpl) diff --git a/scripts/test_ports/vcpkg-ci-libvpl/project/main.cpp b/scripts/test_ports/vcpkg-ci-libvpl/project/main.cpp new file mode 100755 index 0000000000..242172b3cc --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libvpl/project/main.cpp @@ -0,0 +1,10 @@ +#include + +int main() { + mfxLoader loader = MFXLoad(); + if (loader == nullptr) { + return 1; + } + MFXUnload(loader); + return 0; +} diff --git a/scripts/test_ports/vcpkg-ci-libvpl/vcpkg.json b/scripts/test_ports/vcpkg-ci-libvpl/vcpkg.json new file mode 100755 index 0000000000..38c9c34fd1 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libvpl/vcpkg.json @@ -0,0 +1,13 @@ +{ + "name": "vcpkg-ci-libvpl", + "version-string": "ci", + "description": "Validates libvpl", + "license": null, + "dependencies": [ + "libvpl", + { + "name": "vcpkg-cmake", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index 12670d1688..7e2a7edbcc 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5906,7 +5906,7 @@ }, "libvpl": { "baseline": "2.17.0", - "port-version": 0 + "port-version": 1 }, "libvpx": { "baseline": "1.16.0", diff --git a/versions/l-/libvpl.json b/versions/l-/libvpl.json index c342ef3130..06258717f2 100644 --- a/versions/l-/libvpl.json +++ b/versions/l-/libvpl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "5411bc2224ca604f4d07d627fc04570183104dac", + "version": "2.17.0", + "port-version": 1 + }, { "git-tree": "f58d7544617043c37aa09d408ab37a2e8d80cb97", "version": "2.17.0",