diff mbox series

libsdl2-net: Ensure packaging of SDL2_net.pc

Message ID 20260525144455.197612-1-toertel@gmail.com
State New
Headers show
Series libsdl2-net: Ensure packaging of SDL2_net.pc | expand

Commit Message

Mark Jonas May 25, 2026, 2:43 p.m. UTC
From: Mark Jonas <toertel@gmail.com>

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 <toertel@gmail.com>
---
 ...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 mbox series

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 <anonymous.maarten@gmail.com>
+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 <toertel@gmail.com>
+---
+ 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-$<CONFIG>.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-$<CONFIG>.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-$<CONFIG>.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-$<CONFIG>.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}"