SDL_image: cmake: support find_package(SDL3_image) using SDL3_image from a build directory

From 3627d4b1941d27badb3c78e482ec8e3b5e50ef3f Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 1 Mar 2025 18:16:16 +0100
Subject: [PATCH] cmake: support find_package(SDL3_image) using SDL3_image from
 a build directory

---
 CMakeLists.txt                  | 3 +++
 cmake/SDL3_imageConfig.cmake.in | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f5028295..906404eb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1047,6 +1047,9 @@ if(SDLIMAGE_INSTALL)
         FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/SDL3_image/SDL_image.h"
         DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SDL3_image" COMPONENT DEVEL
     )
+
+    export(TARGETS ${sdl3_image_target_name} ${INSTALL_EXTRA_TARGETS} NAMESPACE "SDL3_image::" FILE "${sdl3_image_target_name}-targets.cmake")
+
     if(BUILD_SHARED_LIBS)
         set(pdbdir "${CMAKE_INSTALL_BINDIR}")
     else()
diff --git a/cmake/SDL3_imageConfig.cmake.in b/cmake/SDL3_imageConfig.cmake.in
index 2afd9066..98b623d7 100644
--- a/cmake/SDL3_imageConfig.cmake.in
+++ b/cmake/SDL3_imageConfig.cmake.in
@@ -142,5 +142,8 @@ if(NOT TARGET SDL3_image::SDL3_image)
     endif()
 endif()
 
+if(NOT SDL3_image_COMPONENTS AND NOT TARGET SDL3_image::SDL3_image-shared AND NOT TARGET SDL3_image::SDL3_image-static)
+    set(SDL3_image_FOUND FALSE)
+endif()
 @PACKAGE_INIT@
 check_required_components(SDL3_image)