From ce9deabec1a7747428e3b95d57ff4d89c40daed3 Mon Sep 17 00:00:00 2001 From: Mark Jonas Date: Mon, 25 May 2026 16:43:16 +0200 Subject: [PATCH] libsdl2-net: Ensure packaging of SDL2_net.pc SDL2_net does not install SDL2_net.pc. Thus, libsdl2-net cannot package the file. Fix this by applying an upstream patch. Signed-off-by: Mark Jonas Signed-off-by: Khem Raj --- ...001-cmake-always-install-SDL2_net.pc.patch | 93 +++++++++++++++++++ .../libsdl/libsdl2-net_2.2.0.bb | 1 + 2 files changed, 94 insertions(+) create mode 100644 meta-oe/recipes-graphics/libsdl/libsdl2-net/0001-cmake-always-install-SDL2_net.pc.patch diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-net/0001-cmake-always-install-SDL2_net.pc.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-net/0001-cmake-always-install-SDL2_net.pc.patch new file mode 100644 index 0000000000..0a717a60ae --- /dev/null +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-net/0001-cmake-always-install-SDL2_net.pc.patch @@ -0,0 +1,93 @@ +From 6aceea847131f8ee208d8b8adec336fafcf30d48 Mon Sep 17 00:00:00 2001 +From: Anonymous Maarten +Date: Wed, 31 Aug 2022 15:15:43 +0200 +Subject: [PATCH] cmake: always install SDL2_net.pc + +Upstream-Status: Backport [https://github.com/libsdl-org/SDL_net/commit/fb8031364ad852d51faf5b64040440857f5e8f26] + +Signed-off-by: Mark Jonas +--- + CMakeLists.txt | 67 ++++++++++++++++++++++++++++---------------------- + 1 file changed, 37 insertions(+), 30 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bf30a70..c34e3f0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -204,39 +204,46 @@ if(SDL2NET_INSTALL) + COMPONENT devel + ) + +- if(SDL2NET_BUILD_SHARED_LIBS) +- # Only create a .pc file for a shared SDL2_net +- set(prefix "${CMAKE_INSTALL_PREFIX}") +- set(exec_prefix "\${prefix}") +- set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +- set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +- set(PACKAGE "${PROJECT_NAME}") +- set(VERSION "${FULL_VERSION}") +- set(SDL_VERSION "${SDL_REQUIRED_VERSION}") +- string(JOIN " " PC_REQUIRES ${PC_REQUIRES}) +- string(JOIN " " PC_LIBS ${PC_LIBS}) +- configure_file("${PROJECT_SOURCE_DIR}/SDL2_net.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc.intermediate" @ONLY) +- file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-$.pc" INPUT "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc.intermediate") +- +- set(PC_DESTDIR) +- if(CMAKE_SYSTEM_NAME MATCHES FreeBSD) +- # FreeBSD uses ${PREFIX}/libdata/pkgconfig +- set(PC_DESTDIR "libdata/pkgconfig") ++ if(SDL2NET_BUILD_SHARED_LIBS) ++ set(ENABLE_SHARED_TRUE "") ++ set(ENABLE_SHARED_FALSE "#") ++ set(ENABLE_STATIC_TRUE "#") ++ set(ENABLE_STATIC_FALSE "") + else() +- set(PC_DESTDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++ set(ENABLE_SHARED_TRUE "#") ++ set(ENABLE_SHARED_FALSE "") ++ set(ENABLE_STATIC_TRUE "") ++ set(ENABLE_STATIC_FALSE "#") + endif() +- # Only install a SDL2_net.pc file in Release mode +- install(CODE " +- if(CMAKE_INSTALL_CONFIG_NAME MATCHES \"Release\") +- # FIXME: use file(COPY_FILE) if minimum CMake version >= 3.21 +- execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy_if_different +- \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-$.pc\" +- \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc\") +- file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${PC_DESTDIR}\" +- TYPE FILE +- FILES \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc\") +- endif()" COMPONENT devel) ++ ++ set(prefix "${CMAKE_INSTALL_PREFIX}") ++ set(exec_prefix "\${prefix}") ++ set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") ++ set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") ++ set(PACKAGE "${PROJECT_NAME}") ++ set(VERSION "${FULL_VERSION}") ++ set(SDL_VERSION "${SDL_REQUIRED_VERSION}") ++ string(JOIN " " PC_REQUIRES ${PC_REQUIRES}) ++ string(JOIN " " PC_LIBS ${PC_LIBS}) ++ configure_file("${PROJECT_SOURCE_DIR}/SDL2_net.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc.intermediate" @ONLY) ++ file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-$.pc" INPUT "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc.intermediate") ++ ++ set(PC_DESTDIR) ++ if(CMAKE_SYSTEM_NAME MATCHES FreeBSD) ++ # FreeBSD uses ${PREFIX}/libdata/pkgconfig ++ set(PC_DESTDIR "libdata/pkgconfig") ++ else() ++ set(PC_DESTDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + endif() ++ # Always install SDL2_net.pc: libraries might be different between config modes ++ install(CODE " ++ # FIXME: use file(COPY_FILE) if minimum CMake version >= 3.21 ++ execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy_if_different ++ \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-$.pc\" ++ \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc\") ++ file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${PC_DESTDIR}\" ++ TYPE FILE ++ FILES \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_net.pc\")" COMPONENT devel) + + if(SDL2NET_BUILD_SHARED_LIBS AND (APPLE OR (UNIX AND NOT ANDROID))) + install( diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.2.0.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.2.0.bb index 4a7ada94cb..8a1ff45a3d 100644 --- a/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.2.0.bb +++ b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.2.0.bb @@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=68a088513da90254b2fbe664f42af315" SRC_URI = " \ https://www.libsdl.org/projects/SDL_net/release/SDL2_net-${PV}.tar.gz \ + file://0001-cmake-always-install-SDL2_net.pc.patch \ " S = "${UNPACKDIR}/SDL2_net-${PV}"