libplacebo: fix glslang PACKAGECONFIG

In case glslang PACKAGECONFIG is enabled, compilation fails with
a lot of errors about undefined references from the glslang namespace, e.g.

| /usr/src/debug/libplacebo/7.349.0/src/glsl/glslang.cc:79:(.text+0x160): undefined reference to `glslang::TShader::TShader(EShLanguage)'

This has been solved in the upstream project, and this change backports
the commit that fixes the meson.build file to find the correct libraries
during compilation.

Additionally, fix also the TMPDIR QA error that popped up after fixing
the above issue: remove the RECIPE_SYSROOT value from the generated
pkgconf file (and instead of referring to the libraries by absolute path,
just refer to them by name, as they are supposed to be present in the
standard library lookup path).

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Gyorgy Sarvari 2025-02-16 15:02:04 +01:00 committed by Khem Raj
parent 54030f5611
commit 964f55887a
No known key found for this signature in database
GPG Key ID: BB053355919D3314
2 changed files with 43 additions and 1 deletions

View File

@ -0,0 +1,34 @@
From d18a23cc275576bcefbdcc179d08ae643eeb3f3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com>
Date: Mon, 2 Dec 2024 17:10:00 +0100
Subject: [PATCH] meson: add glslang lib for 15.0.0 linking
Glslang 15.0.0 moved some code around, add also linking to glslang,
while this is not needed for older versions, it will still work.
Unfortunately CMake config embedded in distributions is not usable
without installing additional package like glslang-tools, because at
least Ubuntu splits it. On Arch it would work, but generally the CMake
config require cmake binary to work also, so let's keep it as-is for
now.
Upstream-Status: Backport [https://github.com/haasn/libplacebo/commit/056b852018db04aa2ebc0982e27713afcea8106b]
---
src/glsl/meson.build | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/glsl/meson.build b/src/glsl/meson.build
index 5a881960..8fb5e699 100644
--- a/src/glsl/meson.build
+++ b/src/glsl/meson.build
@@ -39,6 +39,10 @@ elif not glslang_req.disabled()
glslang_deps += spirv
+ # Glslang 15.0.0 moved some code around, add also linking to glslang, while
+ # this is not needed for older versions, it will still work.
+ glslang_deps += cxx.find_library('glslang', required: required, static: static)
+
if static
glslang_deps += [
# Always required for static linking

View File

@ -4,7 +4,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=435ed639f84d4585d93824e7da3d85da"
DEPENDS += "fastfloat glad-native python3-mako-native python3-jinja2-native vulkan-headers"
SRC_URI = "git://code.videolan.org/videolan/libplacebo.git;protocol=https;branch=v7.349"
SRC_URI = "git://code.videolan.org/videolan/libplacebo.git;protocol=https;branch=v7.349 \
file://0001-meson-add-glslang-lib-for-15.0.0-linking.patch"
SRCREV = "1fd3c7bde7b943fe8985c893310b5269a09b46c5"
inherit meson pkgconfig
@ -20,3 +21,10 @@ PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms"
PACKAGECONFIG[demos] = "-Ddemos=true,-Ddemos=false,ffmpeg libsdl2 libsdl2-image"
EXTRA_OEMESON = "-Dvulkan-registry=${STAGING_DATADIR}/vulkan/registry/vk.xml"
do_install:append(){
if [ -f ${D}${libdir}/pkgconfig/libplacebo.pc ]; then
sed -i "s,${RECIPE_SYSROOT}${libdir}/libSPIRV.so,-lSPIRV,g" ${D}${libdir}/pkgconfig/libplacebo.pc
sed -i "s,${RECIPE_SYSROOT}${libdir}/libglslang.so,-lglslang,g" ${D}${libdir}/pkgconfig/libplacebo.pc
fi
}