new file mode 100644
@@ -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
@@ -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
+}
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> --- ...n-add-glslang-lib-for-15.0.0-linking.patch | 34 +++++++++++++++++++ .../mplayer/libplacebo_7.349.0.bb | 10 +++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-multimedia/mplayer/libplacebo/0001-meson-add-glslang-lib-for-15.0.0-linking.patch