SDL_image: Use newly added FindPrivateSDL2.cmake module in sdl_find_sdl2

From 761ccba67077c3b6d01fb6268f2a19812d549881 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Wed, 25 May 2022 18:06:40 +0200
Subject: [PATCH] Use newly added FindPrivateSDL2.cmake  module in
 sdl_find_sdl2

---
 cmake/PrivateSdlFunctions.cmake | 42 ++++++++++++---------------------
 1 file changed, 15 insertions(+), 27 deletions(-)

diff --git a/cmake/PrivateSdlFunctions.cmake b/cmake/PrivateSdlFunctions.cmake
index 13af2712..91262b06 100644
--- a/cmake/PrivateSdlFunctions.cmake
+++ b/cmake/PrivateSdlFunctions.cmake
@@ -44,38 +44,26 @@ macro(sdl_calculate_derived_version_variables)
 endmacro()
 
 macro(sdl_find_sdl2 TARGET VERSION)
-    if (NOT TARGET ${TARGET})
-        # FIXME: can't add REQUIRED since not all SDL2 installs ship SDL2ConfigVersion.cmake
-        find_package(SDL2 ${VERSION})
+    if(NOT TARGET ${TARGET})
+        # FIXME: can't add REQUIRED since not all SDL2 installs ship SDL2ConfigVersion.cmake (or sdl2-config-version.cmake)
+        find_package(SDL2 ${VERSION} QUIET)
     endif()
-    if (NOT TARGET ${TARGET})
-        find_package(SDL2 REQUIRED)
-        message(WARNING "Could not verify SDL2 version. Assuming SDL2 has version of at least ${VERSION}.")
+    if(NOT TARGET ${TARGET})
+        # FIXME: can't add REQUIRED since not all SDL2 installs ship SDL2Config.cmake (or sdl2-config.cmake)
+        find_package(SDL2 QUIET)
+        if(SDL2_FOUND)
+            message(WARNING "Could not verify SDL2 version. Assuming SDL2 has version of at least ${VERSION}.")
+        endif()
     endif()
 
-    # Workaround for Ubuntu 20.04's SDL being older than
-    # https://github.com/libsdl-org/SDL/issues/3531
+    # Use Private FindSDL2.cmake module to find SDL2 for installations where no SDL2Config.cmake is available,
+    # or for those installations where no target is generated.
     if (NOT TARGET ${TARGET})
-        find_library(SDL2_LIBRARY
-            NAMES SDL2
-            HINTS "${SDL2_EXEC_PREFIX}"
-        )
-        if (NOT SDL2_LIBRARY)
-            message(FATAL_ERROR "Could not find SDL2 library. Please define SDL2_EXEC_PREFIX and/or SLD2_LIBRARY")
-        endif()
-        find_path(SDL2_INCLUDE_DIRS
-            NAMES SDL.h
-            PATH_SUFFIXES SDL2
-            HINTS "${SDL2_EXEC_PREFIX}"
-        )
-        if (NOT SDL2_INCLUDE_DIRS)
-            message(FATAL_ERROR "Could not find SDL2 include directory. Please define SDL2_EXEC_PREFIX and/or SDL2_INCLUDE_DIRS")
-        endif()
-        add_library(${TARGET} UNKNOWN IMPORTED)
+        message(STATUS "Using private SDL2 find module")
+        find_package(PrivateSDL2 ${VERSION} REQUIRED)
+        add_library(${TARGET} INTERFACE IMPORTED)
         set_target_properties(${TARGET} PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
-            IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-            IMPORTED_LOCATION "${SDL2_LIBRARY}"
+            INTERFACE_LINK_LIBRARIES "PrivateSDL2::PrivateSDL2"
         )
     endif()
 endmacro()