SDL_image: cmake: update cmake script to SDL3 conventions

From 6053b84a3789de8e8e50eb044c495b9f0808cc3b Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Thu, 5 Jan 2023 16:59:19 +0100
Subject: [PATCH] cmake: update cmake script to SDL3 conventions

---
 CMakeLists.txt                                | 90 ++++++-----------
 cmake/PrivateSdlFunctions.cmake               | 61 ++++--------
 .../SDL3_imageConfig.cmake.in                 |  0
 SDL3_image.pc.in => cmake/sdl3-image.pc.in    |  8 +-
 cmake/test/CMakeLists.txt                     | 32 ++----
 sdl3_image-config-version.cmake.in            | 13 ---
 sdl3_image-config.cmake.in                    | 99 -------------------
 7 files changed, 61 insertions(+), 242 deletions(-)
 rename SDL3_imageConfig.cmake.in => cmake/SDL3_imageConfig.cmake.in (100%)
 rename SDL3_image.pc.in => cmake/sdl3-image.pc.in (60%)
 delete mode 100644 sdl3_image-config-version.cmake.in
 delete mode 100644 sdl3_image-config.cmake.in

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7e655d35..32eca5c2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,18 +8,18 @@ set(MINOR_VERSION 0)
 set(MICRO_VERSION 0)
 set(SDL_REQUIRED_VERSION 3.0.0)
 
-include(PrivateSdlFunctions)
-sdl_calculate_derived_version_variables()
-
 if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
     message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the SDL_image source code and call cmake from there")
 endif()
 
 project(SDL3_image
     LANGUAGES C
-    VERSION "${FULL_VERSION}"
+    VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}"
 )
 
+include(PrivateSdlFunctions)
+sdl_calculate_derived_version_variables(${MAJOR_VERSION} ${MINOR_VERSION} ${MICRO_VERSION})
+
 message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}")
 
 if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
@@ -32,11 +32,6 @@ if(ANDROID)
     set(SDL3IMAGE_SAMPLES_DEFAULT OFF)
 endif()
 
-# Set defaults preventing destination file conflicts
-set(SDL3IMAGE_DEBUG_POSTFIX "d"
-    CACHE STRING "Name suffix for debug builds")
-mark_as_advanced(SDL3IMAGE_DEBUG_POSTFIX)
-
 # Assume MSVC projects don't have a package manager and need vendored dependencies (by default).
 # Most other platforms have some kind of package manager.
 # FIXME: consider a package manager such as conan/vcpkg instead of vendoring
@@ -167,7 +162,7 @@ else()
     set(sdl3_target_name SDL3::SDL3-static)
 endif()
 
-sdl_find_sdl3(${sdl3_target_name} ${SDL_REQUIRED_VERSION})
+find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED)
 
 # Set PROJECT_VERSION of subprojects to "" if it's project call does not set VERSION
 cmake_policy(SET CMP0048 NEW)
@@ -230,46 +225,26 @@ set_target_properties(SDL3_image PROPERTIES
     C_VISIBILITY_PRESET "hidden"
 )
 if(NOT ANDROID)
-    set_target_properties(SDL3_image PROPERTIES
-        DEBUG_POSTFIX "${SDL3IMAGE_DEBUG_POSTFIX}"
-    )
     if(APPLE)
         # the SOVERSION property corresponds to the compatibility version and VERSION corresponds to the current version
         # https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html#mach-o-versions
         set_target_properties(SDL3_image PROPERTIES
-            SOVERSION "${DYLIB_COMPATIBILITY_VERSION}"
+            SOVERSION "${DYLIB_COMPAT_VERSION}"
             VERSION "${DYLIB_CURRENT_VERSION}"
         )
     else()
         set_target_properties(SDL3_image PROPERTIES
-            SOVERSION "${LT_MAJOR}"
-            VERSION "${LT_VERSION}"
+            SOVERSION "${SO_VERSION_MAJOR}"
+            VERSION "${SO_VERSION}"
         )
     endif()
 endif()
-if(SDL3IMAGE_BUILD_SHARED_LIBS AND (APPLE OR (UNIX AND NOT ANDROID)))
-    add_custom_command(TARGET SDL3_image POST_BUILD
-        COMMAND "${CMAKE_COMMAND}" -E create_symlink "$<TARGET_SONAME_FILE_NAME:SDL3_image>" "libSDL3_image$<$<CONFIG:Debug>:${SDL3IMAGE_DEBUG_POSTFIX}>$<TARGET_FILE_SUFFIX:SDL3_image>"
-        # BYPRODUCTS "libSDL3_image$<$<CONFIG:Debug>:${SDL3IMAGE_DEBUG_POSTFIX}>$<TARGET_FILE_SUFFIX:SDL3_image>" # Needs CMake 3.20
-        WORKING_DIRECTORY "${PROJECT_BINARY_DIR}"
-    )
-endif()
 if(SDL3IMAGE_BUILD_SHARED_LIBS)
     if(WIN32 OR OS2)
         set_target_properties(SDL3_image PROPERTIES
             PREFIX ""
         )
     endif()
-    if(OS2)
-        # OS/2 doesn't support a DLL name longer than 8 characters.
-        set_target_properties(SDL3_image PROPERTIES
-            OUTPUT_NAME "SDL3img"
-        )
-    elseif(UNIX AND NOT ANDROID)
-        set_target_properties(SDL3_image PROPERTIES
-            OUTPUT_NAME "SDL3_image-${LT_RELEASE}"
-        )
-    endif()
 else()
     if(MSVC OR (WATCOM AND (WIN32 OR OS2)))
         set_target_properties(SDL3_image PROPERTIES
@@ -702,15 +677,23 @@ if(SDL3IMAGE_INSTALL)
         )
     endif()
 
-    if(WIN32 AND NOT MINGW)
-        set(SDLIMAGE_INSTALL_CMAKEDIR_DEFAULT "cmake")
+    if(WINDOWS AND NOT MINGW)
+        set(SDL3IMAGE_INSTALL_CMAKEDIR_ROOT_DEFAULT "cmake")
+    else()
+        set(SDL3IMAGE_INSTALL_CMAKEDIR_ROOT_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake")
+    endif()
+    set(SDL3IMAGE_INSTALL_CMAKEDIR_ROOT "${SDL3IMAGE_INSTALL_CMAKEDIR_ROOT_DEFAULT}" CACHE STRING "Root folder where to install SDL3Config.cmake related files (SDL3 subfolder for MSVC projects)")
+
+    if(WINDOWS AND NOT MINGW)
+        set(SDL3IMAGE_INSTALL_CMAKEDIR "${SDL3IMAGE_INSTALL_CMAKEDIR_ROOT}")
+        set(LICENSES_PREFIX "licenses/SDL3_image")
     else()
-        set(SDLIMAGE_INSTALL_CMAKEDIR_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake/SDL3_image")
+        set(SDL3IMAGE_INSTALL_CMAKEDIR "${SDL3IMAGE_INSTALL_CMAKEDIR_ROOT}/SDL3")
+        set(LICENSES_PREFIX "${CMAKE_INSTALL_DATAROOTDIR}/licenses/SDL3_image")
     endif()
-    set(SDLIMAGE_INSTALL_CMAKEDIR "${SDLIMAGE_INSTALL_CMAKEDIR_DEFAULT}" CACHE STRING "Location where to install SDL3_imageConfig.cmake")
 
-    configure_package_config_file(SDL3_imageConfig.cmake.in SDL3_imageConfig.cmake
-        INSTALL_DESTINATION "${SDLIMAGE_INSTALL_CMAKEDIR}"
+    configure_package_config_file(cmake/SDL3_imageConfig.cmake.in SDL3_imageConfig.cmake
+        INSTALL_DESTINATION "${SDL3IMAGE_INSTALL_CMAKEDIR}"
     )
     write_basic_package_version_file("${PROJECT_BINARY_DIR}/SDL3_imageConfigVersion.cmake"
         VERSION ${FULL_VERSION}
@@ -722,27 +705,23 @@ if(SDL3IMAGE_INSTALL)
             "${CMAKE_CURRENT_BINARY_DIR}/SDL3_imageConfigVersion.cmake"
             cmake/Findlibjxl.cmake
             cmake/Findwebp.cmake
-        DESTINATION "${SDLIMAGE_INSTALL_CMAKEDIR}"
+        DESTINATION "${SDL3IMAGE_INSTALL_CMAKEDIR}"
         COMPONENT devel
     )
     install(EXPORT SDL3ImageExports
         FILE SDL3_image-${sdl3_image_install_name_infix}-targets.cmake
         NAMESPACE SDL3_image::
-        DESTINATION "${SDLIMAGE_INSTALL_CMAKEDIR}"
+        DESTINATION "${SDL3IMAGE_INSTALL_CMAKEDIR}"
         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}/SDL3_image.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/SDL3_image.pc.intermediate" @ONLY)
-    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/SDL3_image-$<CONFIG>.pc" INPUT "${CMAKE_CURRENT_BINARY_DIR}/SDL3_image.pc.intermediate")
+    configure_file(cmake/sdl3-image.pc.in sdl3-image.pc.intermediate @ONLY)
+    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sdl3-image-$<CONFIG>.pc" INPUT "${CMAKE_CURRENT_BINARY_DIR}/sdl3-image.pc.intermediate")
 
     set(PC_DESTDIR)
     if(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
@@ -751,24 +730,15 @@ if(SDL3IMAGE_INSTALL)
     else()
         set(PC_DESTDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
     endif()
-    # Always install SDL3_net.pc file: libraries might be different between config modes
+    # Always install sdl3-image.pc file: 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}/SDL3_image-$<CONFIG>.pc\"
-                \"${CMAKE_CURRENT_BINARY_DIR}/SDL3_image.pc\")
+                \"${CMAKE_CURRENT_BINARY_DIR}/sdl3-image-$<CONFIG>.pc\"
+                \"${CMAKE_CURRENT_BINARY_DIR}/sdl3-image.pc\")
             file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${PC_DESTDIR}\"
                 TYPE FILE
-                FILES \"${CMAKE_CURRENT_BINARY_DIR}/SDL3_image.pc\")" COMPONENT devel)
-
-    if(SDL3IMAGE_BUILD_SHARED_LIBS AND (APPLE OR (UNIX AND NOT ANDROID)))
-        install(
-            FILES
-                "${PROJECT_BINARY_DIR}/libSDL3_image$<$<CONFIG:Debug>:${SDL3IMAGE_DEBUG_POSTFIX}>$<TARGET_FILE_SUFFIX:SDL3_image>"
-            DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-            COMPONENT devel
-        )
-    endif()
+                FILES \"${CMAKE_CURRENT_BINARY_DIR}/sdl3-image.pc\")" COMPONENT devel)
 
     install(FILES "LICENSE.txt"
         DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${PROJECT_NAME}"
diff --git a/cmake/PrivateSdlFunctions.cmake b/cmake/PrivateSdlFunctions.cmake
index 1863c43b..5612056b 100644
--- a/cmake/PrivateSdlFunctions.cmake
+++ b/cmake/PrivateSdlFunctions.cmake
@@ -1,52 +1,27 @@
 # This file is shared amongst SDL_image/SDL_mixer/SDL_ttf
 
-macro(sdl_calculate_derived_version_variables)
-    if (NOT DEFINED MAJOR_VERSION OR NOT DEFINED MINOR_VERSION OR NOT DEFINED MICRO_VERSION)
-        message(FATAL_ERROR "MAJOR_VERSION, MINOR_VERSION and MICRO_VERSION need to be defined")
-    endif()
-
-    set(FULL_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}")
+macro(sdl_calculate_derived_version_variables MAJOR MINOR MICRO)
+    set(SO_VERSION_MAJOR "0")
+    set(SO_VERSION_MINOR "${MINOR_VERSION}")
+    set(SO_VERSION_MICRO "${MICRO_VERSION}")
+    set(SO_VERSION "${SO_VERSION_MAJOR}.${SO_VERSION_MINOR}.${SO_VERSION_MICRO}")
 
-    # Calculate a libtool-like version number
-    math(EXPR BINARY_AGE "${MINOR_VERSION} * 100 + ${MICRO_VERSION}")
-    math(EXPR IS_DEVELOPMENT "${MINOR_VERSION} % 2")
-    if (IS_DEVELOPMENT)
-        # Development branch, 2.5.1 -> libSDL2_XXXXX-2.0.so.0.501.0
-        set(INTERFACE_AGE 0)
+    if(MINOR MATCHES "[02468]$")
+        math(EXPR DYLIB_COMPAT_VERSION_MAJOR "100 * ${MINOR} + 1")
+        set(DYLIB_COMPAT_VERSION_MINOR "0")
+        math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${DYLIB_COMPAT_VERSION_MAJOR}")
+        set(DYLIB_CURRENT_VERSION_MINOR "${MICRO}")
     else()
-        # Stable branch, 2.6.1 -> libSDL2_XXXXX-2.0.so.0.600.1
-        set(INTERFACE_AGE ${MICRO_VERSION})
+        math(EXPR DYLIB_COMPAT_VERSION_MAJOR "100 * ${MINOR} + ${MICRO} + 1")
+        set(DYLIB_COMPAT_VERSION_MINOR "0")
+        math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${DYLIB_COMPAT_VERSION_MAJOR}")
+        set(DYLIB_CURRENT_VERSION_MINOR "0")
     endif()
+    set(DYLIB_COMPAT_VERSION_MICRO "0")
+    set(DYLIB_CURRENT_VERSION_MICRO "0")
 
-    # Increment this if there is an incompatible change - but if that happens,
-    # we should rename the library from SDL2 to SDL3, at which point this would
-    # reset to 0 anyway.
-    set(LT_MAJOR "0")
-
-    math(EXPR LT_AGE "${BINARY_AGE} - ${INTERFACE_AGE}")
-    math(EXPR LT_CURRENT "${LT_MAJOR} + ${LT_AGE}")
-    set(LT_REVISION "${INTERFACE_AGE}")
-    # For historical reasons, the library name redundantly includes the major
-    # version twice: libSDL2_XXXXX-2.0.so.0.
-    # TODO: in SDL 3, set the OUTPUT_NAME to plain SDL3_XXXXX, which will simplify
-    # it to libSDL2_XXXXX.so.0
-    set(LT_RELEASE "2.0")
-    set(LT_VERSION "${LT_MAJOR}.${LT_AGE}.${LT_REVISION}")
-
-    # The following should match the versions in the Xcode project file.
-    # Each version is 1 higher than you might expect, for compatibility
-    # with libtool: macOS ABI versioning is 1-based, unlike other platforms
-    # which are normally 0-based.
-    math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${LT_MAJOR} + ${LT_AGE} + 1")
-    math(EXPR DYLIB_CURRENT_VERSION_MINOR "${LT_REVISION}")
-    set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.0")
-    set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.0.0")
-endmacro()
-
-macro(sdl_find_sdl3 TARGET VERSION)
-    if(NOT TARGET ${TARGET})
-        find_package(SDL3 ${VERSION} REQUIRED QUIET)
-    endif()
+    set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.${DYLIB_CURRENT_VERSION_MICRO}")
+    set(DYLIB_COMPAT_VERSION "${DYLIB_COMPAT_VERSION_MAJOR}.${DYLIB_COMPAT_VERSION_MINOR}.${DYLIB_COMPAT_VERSION_MICRO}")
 endmacro()
 
 function(read_absolute_symlink DEST PATH)
diff --git a/SDL3_imageConfig.cmake.in b/cmake/SDL3_imageConfig.cmake.in
similarity index 100%
rename from SDL3_imageConfig.cmake.in
rename to cmake/SDL3_imageConfig.cmake.in
diff --git a/SDL3_image.pc.in b/cmake/sdl3-image.pc.in
similarity index 60%
rename from SDL3_image.pc.in
rename to cmake/sdl3-image.pc.in
index ca1d3f2c..f1affb17 100644
--- a/SDL3_image.pc.in
+++ b/cmake/sdl3-image.pc.in
@@ -1,7 +1,7 @@
-prefix=@prefix@
+prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
 
 Name: @PACKAGE@
 Description: image loading library for Simple DirectMedia Layer
@@ -10,5 +10,5 @@ Requires: sdl3 >= @SDL_VERSION@
 Libs: -L${libdir} -lSDL3_image
 Requires.private: @PC_REQUIRES@
 Libs.private: @PC_LIBS@
-Cflags: -I${includedir}/SDL3
+Cflags: -I${includedir} -I${includedir}/SDL3
 
diff --git a/cmake/test/CMakeLists.txt b/cmake/test/CMakeLists.txt
index 1bbeb4c8..853b13a2 100644
--- a/cmake/test/CMakeLists.txt
+++ b/cmake/test/CMakeLists.txt
@@ -5,45 +5,31 @@ project(sdl_test LANGUAGES C)
 
 cmake_policy(SET CMP0074 NEW)
 
-# Override CMAKE_FIND_ROOT_PATH_MODE to allow search for SDL2 outside of sysroot
+# Override CMAKE_FIND_ROOT_PATH_MODE to allow search for SDL3 outside of sysroot
 set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER)
 
 include(FeatureSummary)
 
-option(TEST_SHARED "Test linking to shared SDL2_image library" ON)
+option(TEST_SHARED "Test linking to shared SDL3_image library" ON)
 add_feature_info("TEST_SHARED" TEST_SHARED "Test linking with shared library")
 
-option(TEST_STATIC "Test linking to static SDL2_image library" ON)
+option(TEST_STATIC "Test linking to static SDL3_image library" ON)
 add_feature_info("TEST_STATIC" TEST_STATIC "Test linking with static library")
 
 if(TEST_SHARED)
-    # FIXME: in the distant future, must become REQUIRED
-    find_package(SDL2 CONFIG COMPONENTS SDL2)
-    # FIXME: and the following should be removed
-    if(NOT TARGET SDL2::SDL2)
-        list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/..")
-        include(PrivateSdlFunctions)
-        sdl_find_sdl2(SDL2::SDL2 2.0)
-    endif()
-    find_package(SDL2_image REQUIRED CONFIG)
+    find_package(SDL3 REQUIRED CONFIG COMPONENTS SDL3)
+    find_package(SDL3_image REQUIRED CONFIG)
     add_executable(main_shared main.c)
-    target_link_libraries(main_shared PRIVATE SDL2::SDL2 SDL2_image::SDL2_image)
+    target_link_libraries(main_shared PRIVATE SDL3::SDL3 SDL3_image::SDL3_image)
 endif()
 
 if(TEST_STATIC)
-    # FIXME: in the distant future, must become REQUIRED
-    find_package(SDL2 CONFIG COMPONENTS SDL2-static)
-    # FIXME: and the following should be removed
-    if(NOT TARGET SDL2::SDL2-static)
-        list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/..")
-        include(PrivateSdlFunctions)
-        sdl_find_sdl2(SDL2::SDL2-static 2.0)
-    endif()
+    find_package(SDL3 REQUIRED CONFIG COMPONENTS SDL3-static)
     # some static vendored libraries use c++ (enable CXX after `find_package` might show a warning)
     enable_language(CXX)
-    find_package(SDL2_image REQUIRED CONFIG)
+    find_package(SDL3_image REQUIRED CONFIG)
     add_executable(main_static main.c)
-    target_link_libraries(main_static PRIVATE SDL2::SDL2-static SDL2_image::SDL2_image-static)
+    target_link_libraries(main_static PRIVATE SDL3::SDL3-static SDL3_image::SDL3_image-static)
 endif()
 
 feature_summary(WHAT ALL)
diff --git a/sdl3_image-config-version.cmake.in b/sdl3_image-config-version.cmake.in
deleted file mode 100644
index 7460e74f..00000000
--- a/sdl3_image-config-version.cmake.in
+++ /dev/null
@@ -1,13 +0,0 @@
-# sdl3_image cmake project-config-version input for ./configure scripts
-
-set(PACKAGE_VERSION "@MAJOR_VERSION_MACRO@.@MINOR_VERSION_MACRO@.@MICRO_VERSION_MACRO@")
-
-if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
-  set(PACKAGE_VERSION_COMPATIBLE FALSE)
-else()
-  set(PACKAGE_VERSION_COMPATIBLE TRUE)
-  if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
-    set(PACKAGE_VERSION_EXACT TRUE)
-  endif()
-endif()
-
diff --git a/sdl3_image-config.cmake.in b/sdl3_image-config.cmake.in
deleted file mode 100644
index 195c3d5d..00000000
--- a/sdl3_image-config.cmake.in
+++ /dev/null
@@ -1,99 +0,0 @@
-# sdl3_image cmake project-config input for ./configure scripts
-
-include(FeatureSummary)
-set_package_properties(SDL3_image PROPERTIES
-    URL "https://www.libsdl.org/projects/SDL_image/"
-    DESCRIPTION "SDL_image is an image file loading library"
-)
-
-set(SDL3_image_FOUND TRUE)
-
-set(SDL3IMAGE_AVIF  @LOAD_AVIF@)
-set(SDL3IMAGE_BMP   @LOAD_BMP@)
-set(SDL3IMAGE_GIF   @LOAD_GIF@)
-set(SDL3IMAGE_JPG   @LOAD_JPG@)
-set(SDL3IMAGE_JXL   @LOAD_JXL@)
-set(SDL3IMAGE_LBM   @LOAD_LBM@)
-set(SDL3IMAGE_PCX   @LOAD_PCX@)
-set(SDL3IMAGE_PNG   @LOAD_PNG@)
-set(SDL3IMAGE_PNM   @LOAD_PNM@)
-set(SDL3IMAGE_QOI   @LOAD_QOI@)
-set(SDL3IMAGE_SVG   @LOAD_SVG@)
-set(SDL3IMAGE_TGA   @LOAD_TGA@)
-set(SDL3IMAGE_TIF   @LOAD_TIF@)
-set(SDL3IMAGE_XCF   @LOAD_XCF@)
-set(SDL3IMAGE_XPM   @LOAD_XPM@)
-set(SDL3IMAGE_XV    @LOAD_XV@)
-set(SDL3IMAGE_WEBP  @LOAD_WEBP@)
-
-set(SDL3IMAGE_JPG_SAVE @SDL3IMAGE_JPG_SAVE@)
-set(SDL3IMAGE_PNG_SAVE @SDL3IMAGE_PNG_SAVE@)
-
-set(SDL3IMAGE_VENDORED  FALSE)
-
-set(SDL3IMAGE_BACKEND_IMAGEIO   @USE_IMAGEIO@)
-set(SDL3IMAGE_BACKEND_STB       @USE_STBIMAGE@)
-set(SDL3IMAGE_BACKEND_WIC       @USE_WIC@)
-
-get_filename_component(prefix "${CMAKE_CURRENT_LIST_DIR}/@cmake_prefix_relpath@" ABSOLUTE)
-set(exec_prefix "@exec_prefix@")
-set(bindir "@bindir@")
-set(includedir "@includedir@")
-set(libdir "@libdir@")
-set(_sdl3image_extra_static_libraries "@IMG_LIBS@ @PC_LIBS@")
-string(STRIP "${_sdl3image_extra_static_libraries}" _sdl3image_extra_static_libraries)
-
-set(_sdl3image_bindir   "${bindir}")
-set(_sdl3image_libdir   "${libdir}")
-set(_sdl3image_incdir   "${includedir}/SDL3")
-
-# Convert _sdl3image_extra_static_libraries to list and keep only libraries
-string(REGEX MATCHALL "(-[lm]([-a-zA-Z0-9._]+))|(-Wl,[^ ]*framework[^ ]*)" _sdl3image_extra_static_libraries "${_sdl3image_extra_static_libraries}")
-string(REGEX REPLACE "^-l" "" _sdl3image_extra_static_libraries "${_sdl3image_extra_static_libraries}")
-string(REGEX REPLACE ";-l" ";" _sdl3image_extra_static_libraries "${_sdl3image_extra_static_libraries}")
-
-unset(prefix)
-unset(exec_prefix)
-unset(bindir)
-unset(includedir)
-unset(libdir)
-
-include(CMakeFindDependencyMacro)
-
-if(NOT TARGET SDL3_image::SDL3_image)
-    add_library(SDL3_image::SDL3_image SHARED IMPORTED)
-    set_target_properties(SDL3_image::SDL3_image
-        PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${_sdl3image_incdir}"
-            COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED"
-            INTERFACE_SDL3_SHARED "ON"
-    )
-    if(WIN32)
-        set_target_properties(SDL3_image::SDL3_image
-            PROPERTIES
-                IMPORTED_LOCATION "${_sdl3image_bindir}/SDL3_image.dll"
-                IMPORTED_IMPLIB "${_sdl3image_libdir}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL3_image.dll${CMAKE_STATIC_LIBRARY_SUFFIX}"
-        )
-    else()
-        set_target_properties(SDL3_image::SDL3_image
-            PROPERTIES
-                IMPORTED_LOCATION "${_sdl3image_libdir}/${CMAKE_SHARED_LIBRARY_PREFIX}SDL3_image${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-    endif()
-endif()
-
-if(NOT TARGET SDL3_image::SDL3_image-static)
-    add_library(SDL3_image::SDL3_image-static STATIC IMPORTED)
-
-    set_target_properties(SDL3_image::SDL3_image-static
-        PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${_sdl3image_incdir}"
-            IMPORTED_LOCATION "${_sdl3image_libdir}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL3_image${CMAKE_STATIC_LIBRARY_SUFFIX}"
-            INTERFACE_LINK_LIBRARIES "${_sdl3image_extra_static_libraries}"
-    )
-endif()
-
-unset(_sdl3image_extra_static_libraries)
-unset(_sdl3image_bindir)
-unset(_sdl3image_libdir)
-unset(_sdl3image_incdir)