SDL_image: More SDL3 version updates

From 04b4ab8d51754015d2ebcad64f5394473f542f0d Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 4 Jan 2023 23:19:32 -0800
Subject: [PATCH] More SDL3 version updates

---
 .github/fetch_sdl_vc.ps1                  |  42 ++++----
 Android.mk                                |  10 +-
 README-emscripten.txt                     |  12 +--
 README.txt                                |   4 +-
 SDL3_image.pc.in                          |   6 +-
 SDL3_imageConfig.cmake.in                 |  96 +++++++++----------
 VisualC/Version.rc                        |   8 +-
 Xcode/Info-Framework.plist                |  10 +-
 Xcode/SDL_image.xcodeproj/project.pbxproj |   8 +-
 release_checklist.md                      |   6 +-
 sdl3_image-config-version.cmake.in        |   2 +-
 sdl3_image-config.cmake.in                | 112 +++++++++++-----------
 test-versioning.sh                        |  53 ++--------
 version.rc                                |   8 +-
 14 files changed, 167 insertions(+), 210 deletions(-)

diff --git a/.github/fetch_sdl_vc.ps1 b/.github/fetch_sdl_vc.ps1
index 2e3cc7c6..83d4db70 100644
--- a/.github/fetch_sdl_vc.ps1
+++ b/.github/fetch_sdl_vc.ps1
@@ -3,38 +3,38 @@ $ErrorActionPreference = "Stop"
 $project_root = "$psScriptRoot\.."
 Write-Output "project_root: $project_root"
 
-$sdl2_version = "2.0.9"
-$sdl2_zip = "SDL2-devel-$($sdl2_version)-VC.zip"
+$sdl3_version = "3.0.0"
+$sdl3_zip = "SDL3-devel-$($sdl3_version)-VC.zip"
 
-$sdl2_url = "https://github.com/libsdl-org/SDL/releases/download/release-$($sdl2_version)/SDL2-devel-$($sdl2_version)-VC.zip"
-$sdl2_dlpath = "$($Env:TEMP)\$sdl2_zip"
+$sdl3_url = "https://github.com/libsdl-org/SDL/releases/download/release-$($sdl3_version)/SDL3-devel-$($sdl3_version)-VC.zip"
+$sdl3_dlpath = "$($Env:TEMP)\$sdl3_zip"
 
-$sdl2_bindir = "$($project_root)"
-$sdl2_extractdir = "$($sdl2_bindir)\SDL2-$($sdl2_version)"
-$sdl2_root_name = "SDL2-devel-VC"
+$sdl3_bindir = "$($project_root)"
+$sdl3_extractdir = "$($sdl3_bindir)\SDL3-$($sdl3_version)"
+$sdl3_root_name = "SDL3-devel-VC"
 
-echo "sdl2_bindir:     $sdl2_bindir"
-echo "sdl2_extractdir: $sdl2_extractdir"
-echo "sdl2_root_name:  $sdl2_root_name"
+echo "sdl3_bindir:     $sdl3_bindir"
+echo "sdl3_extractdir: $sdl3_extractdir"
+echo "sdl3_root_name:  $sdl3_root_name"
 
 echo "Cleaning previous artifacts"
-if (Test-Path $sdl2_extractdir) {
-    Remove-Item $sdl2_extractdir -Recurse -Force
+if (Test-Path $sdl3_extractdir) {
+    Remove-Item $sdl3_extractdir -Recurse -Force
 }
-if (Test-Path "$($sdl2_bindir)/$sdl2_root_name") {
-    Remove-Item "$($sdl2_bindir)/$sdl2_root_name" -Recurse -Force
+if (Test-Path "$($sdl3_bindir)/$sdl3_root_name") {
+    Remove-Item "$($sdl3_bindir)/$sdl3_root_name" -Recurse -Force
 }
-if (Test-Path $sdl2_dlpath) {
-    Remove-Item $sdl2_dlpath -Force
+if (Test-Path $sdl3_dlpath) {
+    Remove-Item $sdl3_dlpath -Force
 }
 
-Write-Output "Downloading $sdl2_url"
-Invoke-WebRequest -Uri $sdl2_url -OutFile $sdl2_dlpath
+Write-Output "Downloading $sdl3_url"
+Invoke-WebRequest -Uri $sdl3_url -OutFile $sdl3_dlpath
 
 Write-Output "Extracting archive"
-Expand-Archive $sdl2_dlpath -DestinationPath $sdl2_bindir
+Expand-Archive $sdl3_dlpath -DestinationPath $sdl3_bindir
 
-Write-Output "Setting up SDL2 folder"
-Rename-Item $sdl2_extractdir $sdl2_root_name
+Write-Output "Setting up SDL3 folder"
+Rename-Item $sdl3_extractdir $sdl3_root_name
 
 Write-Output "Done"
diff --git a/Android.mk b/Android.mk
index 0d5e7b89..83d88ce4 100644
--- a/Android.mk
+++ b/Android.mk
@@ -68,7 +68,7 @@ LOCAL_PATH := $(SDL_IMAGE_LOCAL_PATH)
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := SDL2_image
+LOCAL_MODULE := SDL3_image
 
 LOCAL_SRC_FILES :=  \
     IMG.c           \
@@ -98,7 +98,7 @@ LOCAL_CFLAGS := -DLOAD_BMP -DLOAD_GIF -DLOAD_LBM -DLOAD_PCX -DLOAD_PNM \
                 -DLOAD_QOI
 LOCAL_LDLIBS :=
 LOCAL_STATIC_LIBRARIES :=
-LOCAL_SHARED_LIBRARIES := SDL2
+LOCAL_SHARED_LIBRARIES := SDL3
 
 ifeq ($(USE_STBIMAGE),true)
     LOCAL_CFLAGS += -DLOAD_JPG -DLOAD_PNG -DUSE_STBIMAGE
@@ -154,13 +154,13 @@ include $(BUILD_SHARED_LIBRARY)
 
 ###########################
 #
-# SDL2_image static library
+# SDL3_image static library
 #
 ###########################
 
-LOCAL_MODULE := SDL2_image_static
+LOCAL_MODULE := SDL3_image_static
 
-LOCAL_MODULE_FILENAME := libSDL2_image
+LOCAL_MODULE_FILENAME := libSDL3_image
 
 LOCAL_LDLIBS :=
 LOCAL_EXPORT_LDLIBS :=
diff --git a/README-emscripten.txt b/README-emscripten.txt
index 6cb8149f..8642ebe7 100644
--- a/README-emscripten.txt
+++ b/README-emscripten.txt
@@ -1,20 +1,20 @@
-Building SDL2_image
+Building SDL3_image
 -------------------
 
-The easiest way to use SDL2_image with Emscripten is to use Emscripten ports (https://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html#emscripten-ports) (-s USE_SDL_IMAGE=2).
+The easiest way to use SDL3_image with Emscripten is to use Emscripten ports (https://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html#emscripten-ports) (-s USE_SDL_IMAGE=2).
 
 If you want to build it yourself instead you can use these instructions:
 
 Step 0 - get emscripten
 
-Step 1 - get sdl2-emscripten
- * clone https://github.com/emscripten-ports/SDL2.git
- * follow the build instructions in SDL2/docs/README-emscripten.md (make sure to pass a --prefix to configure)
+Step 1 - get sdl3-emscripten
+ * clone https://github.com/emscripten-ports/SDL3.git
+ * follow the build instructions in SDL3/docs/README-emscripten.md (make sure to pass a --prefix to configure)
  * make install
 
 Step 2 - get sdl_image
  * emconfigure ./configure  --disable-sdltest --with-sdl-prefix=/path/to/sdl --prefix=/path/to/install
- * (where /path/to/sdl is the path you passed as --prefix to SDL2 configure)
+ * (where /path/to/sdl is the path you passed as --prefix to SDL3 configure)
  * emmake make
  * make install
  
diff --git a/README.txt b/README.txt
index f285a975..da16e12e 100644
--- a/README.txt
+++ b/README.txt
@@ -1,5 +1,5 @@
 
-SDL_image 2.0
+SDL_image 3.0
 
 The latest version of this library is available from GitHub:
 https://github.com/libsdl-org/SDL_image/releases
@@ -31,7 +31,7 @@ This library is under the zlib License, see the file "LICENSE.txt" for details.
 
 Note:
 Support for AVIF, JPEG-XL, TIFF, and WebP are not included by default because of the size of the decode libraries, but you can get them by running external/download.sh
-- When building with CMake, you can enable the appropriate SDL2IMAGE_* options defined in CMakeLists.txt. SDL2IMAGE_VENDORED allows switching between system and vendored libraries.
+- When building with CMake, you can enable the appropriate SDL3IMAGE_* options defined in CMakeLists.txt. SDL3IMAGE_VENDORED allows switching between system and vendored libraries.
 - When building with configure/make, you can build and install them normally and the configure script will detect and use them.
 - When building with Visual Studio, you will need to build the libraries and then add the appropriate LOAD_* preprocessor define to the Visual Studio project.
 - When building with Xcode, you can edit the config at the top of the project to enable them, and you will need to include the appropriate framework in your application.
diff --git a/SDL3_image.pc.in b/SDL3_image.pc.in
index 8711dd73..ca1d3f2c 100644
--- a/SDL3_image.pc.in
+++ b/SDL3_image.pc.in
@@ -6,9 +6,9 @@ includedir=@includedir@
 Name: @PACKAGE@
 Description: image loading library for Simple DirectMedia Layer
 Version: @VERSION@
-Requires: sdl2 >= @SDL_VERSION@
-Libs: -L${libdir} -lSDL2_image
+Requires: sdl3 >= @SDL_VERSION@
+Libs: -L${libdir} -lSDL3_image
 Requires.private: @PC_REQUIRES@
 Libs.private: @PC_LIBS@
-Cflags: -I${includedir}/SDL2
+Cflags: -I${includedir}/SDL3
 
diff --git a/SDL3_imageConfig.cmake.in b/SDL3_imageConfig.cmake.in
index ae387195..e4833dba 100644
--- a/SDL3_imageConfig.cmake.in
+++ b/SDL3_imageConfig.cmake.in
@@ -1,90 +1,90 @@
-# sdl2_image cmake project-config input for CMakeLists.txt script
+# sdl3_image cmake project-config input for CMakeLists.txt script
 
 include(FeatureSummary)
-set_package_properties(SDL2_image PROPERTIES
+set_package_properties(SDL3_image PROPERTIES
     URL "https://www.libsdl.org/projects/SDL_image/"
     DESCRIPTION "SDL_image is an image file loading library"
 )
 
-set(SDL2_image_FOUND ON)
-
-set(SDL2IMAGE_AVIF  @SDL2IMAGE_AVIF@)
-set(SDL2IMAGE_BMP   @SDL2IMAGE_BMP@)
-set(SDL2IMAGE_GIF   @SDL2IMAGE_GIF@)
-set(SDL2IMAGE_JPG   @SDL2IMAGE_JPG@)
-set(SDL2IMAGE_JXL   @SDL2IMAGE_JXL@)
-set(SDL2IMAGE_LBM   @SDL2IMAGE_LBM@)
-set(SDL2IMAGE_PCX   @SDL2IMAGE_PCX@)
-set(SDL2IMAGE_PNG   @SDL2IMAGE_PNG@)
-set(SDL2IMAGE_PNM   @SDL2IMAGE_PNM@)
-set(SDL2IMAGE_QOI   @SDL2IMAGE_QOI@)
-set(SDL2IMAGE_SVG   @SDL2IMAGE_SVG@)
-set(SDL2IMAGE_TGA   @SDL2IMAGE_TGA@)
-set(SDL2IMAGE_TIF   @SDL2IMAGE_TIF@)
-set(SDL2IMAGE_XCF   @SDL2IMAGE_XCF@)
-set(SDL2IMAGE_XPM   @SDL2IMAGE_XPM@)
-set(SDL2IMAGE_XV    @SDL2IMAGE_XV@)
-set(SDL2IMAGE_WEBP  @SDL2IMAGE_WEBP@)
-
-set(SDL2IMAGE_JPG_SAVE @SDL2IMAGE_JPG_SAVE@)
-set(SDL2IMAGE_PNG_SAVE @SDL2IMAGE_PNG_SAVE@)
-
-set(SDL2IMAGE_VENDORED  @SDL2IMAGE_VENDORED@)
-
-set(SDL2IMAGE_BACKEND_IMAGEIO   @SDL2IMAGE_BACKEND_IMAGEIO@)
-set(SDL2IMAGE_BACKEND_STB       @SDL2IMAGE_BACKEND_STB@)
-set(SDL2IMAGE_BACKEND_WIC       @SDL2IMAGE_BACKEND_WIC@)
-
-set(SDL2IMAGE_SDL2_REQUIRED_VERSION  @SDL_REQUIRED_VERSION@)
-
-if(NOT SDL2IMAGE_VENDORED)
+set(SDL3_image_FOUND ON)
+
+set(SDL3IMAGE_AVIF  @SDL3IMAGE_AVIF@)
+set(SDL3IMAGE_BMP   @SDL3IMAGE_BMP@)
+set(SDL3IMAGE_GIF   @SDL3IMAGE_GIF@)
+set(SDL3IMAGE_JPG   @SDL3IMAGE_JPG@)
+set(SDL3IMAGE_JXL   @SDL3IMAGE_JXL@)
+set(SDL3IMAGE_LBM   @SDL3IMAGE_LBM@)
+set(SDL3IMAGE_PCX   @SDL3IMAGE_PCX@)
+set(SDL3IMAGE_PNG   @SDL3IMAGE_PNG@)
+set(SDL3IMAGE_PNM   @SDL3IMAGE_PNM@)
+set(SDL3IMAGE_QOI   @SDL3IMAGE_QOI@)
+set(SDL3IMAGE_SVG   @SDL3IMAGE_SVG@)
+set(SDL3IMAGE_TGA   @SDL3IMAGE_TGA@)
+set(SDL3IMAGE_TIF   @SDL3IMAGE_TIF@)
+set(SDL3IMAGE_XCF   @SDL3IMAGE_XCF@)
+set(SDL3IMAGE_XPM   @SDL3IMAGE_XPM@)
+set(SDL3IMAGE_XV    @SDL3IMAGE_XV@)
+set(SDL3IMAGE_WEBP  @SDL3IMAGE_WEBP@)
+
+set(SDL3IMAGE_JPG_SAVE @SDL3IMAGE_JPG_SAVE@)
+set(SDL3IMAGE_PNG_SAVE @SDL3IMAGE_PNG_SAVE@)
+
+set(SDL3IMAGE_VENDORED  @SDL3IMAGE_VENDORED@)
+
+set(SDL3IMAGE_BACKEND_IMAGEIO   @SDL3IMAGE_BACKEND_IMAGEIO@)
+set(SDL3IMAGE_BACKEND_STB       @SDL3IMAGE_BACKEND_STB@)
+set(SDL3IMAGE_BACKEND_WIC       @SDL3IMAGE_BACKEND_WIC@)
+
+set(SDL3IMAGE_SDL3_REQUIRED_VERSION  @SDL_REQUIRED_VERSION@)
+
+if(NOT SDL3IMAGE_VENDORED)
     set(_sdl_cmake_module_path "${CMAKE_MODULE_PATH}")
     list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
 endif()
 
 include(CMakeFindDependencyMacro)
 
-if(SDL2IMAGE_AVIF AND NOT SDL2IMAGE_VENDORED AND NOT TARGET avif)
+if(SDL3IMAGE_AVIF AND NOT SDL3IMAGE_VENDORED AND NOT TARGET avif)
     find_dependency(libavif @LIBAVIF_MINIMUM_VERSION@)
 endif()
 
-if(SDL2IMAGE_JPG AND NOT SDL2IMAGE_VENDORED AND NOT TARGET JPEG::JPEG)
+if(SDL3IMAGE_JPG AND NOT SDL3IMAGE_VENDORED AND NOT TARGET JPEG::JPEG)
     find_dependency(JPEG)
 endif()
 
-if(SDL2IMAGE_JXL AND NOT SDL2IMAGE_VENDORED AND NOT TARGET libjxl::libjxl)
+if(SDL3IMAGE_JXL AND NOT SDL3IMAGE_VENDORED AND NOT TARGET libjxl::libjxl)
     list(APPEND libjxl_ROOT "${CMAKE_CURRENT_LIST_DIR}")
     find_dependency(libjxl)
 endif()
 
-if(SDL2IMAGE_PNG AND NOT SDL2IMAGE_VENDORED AND NOT TARGET PNG::PNG)
+if(SDL3IMAGE_PNG AND NOT SDL3IMAGE_VENDORED AND NOT TARGET PNG::PNG)
     find_dependency(PNG)
 endif()
 
-if(SDL2IMAGE_TIF AND NOT SDL2IMAGE_VENDORED AND NOT TARGET TIFF::TIFF)
+if(SDL3IMAGE_TIF AND NOT SDL3IMAGE_VENDORED AND NOT TARGET TIFF::TIFF)
     find_dependency(TIFF)
 endif()
 
-if(SDL2IMAGE_WEBP AND NOT SDL2IMAGE_VENDORED AND NOT TARGET WebP::webp)
+if(SDL3IMAGE_WEBP AND NOT SDL3IMAGE_VENDORED AND NOT TARGET WebP::webp)
     list(APPEND webp_ROOT "${CMAKE_CURRENT_LIST_DIR}")
     find_dependency(webp)
 endif()
 
-#FIXME: can't add SDL2IMAGE_SDL2_REQUIRED_VERSION since not all SDL2 installs ship SDL2ConfigVersion.cmake
-if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_image-shared-targets.cmake")
-    include("${CMAKE_CURRENT_LIST_DIR}/SDL2_image-shared-targets.cmake")
+#FIXME: can't add SDL3IMAGE_SDL3_REQUIRED_VERSION since not all SDL3 installs ship SDL3ConfigVersion.cmake
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_image-shared-targets.cmake")
+    include("${CMAKE_CURRENT_LIST_DIR}/SDL3_image-shared-targets.cmake")
 endif()
 
-if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_image-static-targets.cmake")
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_image-static-targets.cmake")
     include(CheckLanguage)
     check_language(CXX)
-    if(SDL2IMAGE_VENDORED AND NOT CMAKE_CXX_COMPILER AND NOT _sdl2image_nowarning)
-        message(WARNING "CXX language not enabled. Linking to SDL2_image::SDL2_image-static might fail.")
+    if(SDL3IMAGE_VENDORED AND NOT CMAKE_CXX_COMPILER AND NOT _sdl3image_nowarning)
+        message(WARNING "CXX language not enabled. Linking to SDL3_image::SDL3_image-static might fail.")
     endif()
-    include("${CMAKE_CURRENT_LIST_DIR}/SDL2_image-static-targets.cmake")
+    include("${CMAKE_CURRENT_LIST_DIR}/SDL3_image-static-targets.cmake")
 endif()
 
-if(NOT SDL2IMAGE_VENDORED)
+if(NOT SDL3IMAGE_VENDORED)
     set(CMAKE_MODULE_PATH "${_sdl_cmake_module_path}")
     unset(_sdl_cmake_module_path)
 endif()
diff --git a/VisualC/Version.rc b/VisualC/Version.rc
index 1cfc94d1..a6e58bf3 100644
--- a/VisualC/Version.rc
+++ b/VisualC/Version.rc
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,7,0,0
- PRODUCTVERSION 2,7,0,0
+ FILEVERSION 3,0,0,0
+ PRODUCTVERSION 3,0,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -46,12 +46,12 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "SDL_image\0"
-            VALUE "FileVersion", "2, 7, 0, 0\0"
+            VALUE "FileVersion", "3, 0, 0, 0\0"
             VALUE "InternalName", "SDL_image\0"
             VALUE "LegalCopyright", "Copyright  2022 Sam Lantinga\0"
             VALUE "OriginalFilename", "SDL_image.dll\0"
             VALUE "ProductName", "Simple DirectMedia Layer\0"
-            VALUE "ProductVersion", "2, 7, 0, 0\0"
+            VALUE "ProductVersion", "3, 0, 0, 0\0"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/Xcode/Info-Framework.plist b/Xcode/Info-Framework.plist
index 8899023e..5cc37c15 100644
--- a/Xcode/Info-Framework.plist
+++ b/Xcode/Info-Framework.plist
@@ -5,18 +5,18 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<key>CFBundleExecutable</key>
-	<string>SDL2_image</string>
+	<string>SDL3_image</string>
 	<key>CFBundleIdentifier</key>
-	<string>org.libsdl.SDL2-image</string>
+	<string>org.libsdl.SDL3-image</string>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<string>6.0</string>
 	<key>CFBundleName</key>
-	<string>SDL2_image</string>
+	<string>SDL3_image</string>
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.7.0</string>
+	<string>3.0.0</string>
 	<key>CFBundleVersion</key>
-	<string>2.7.0</string>
+	<string>3.0.0</string>
 </dict>
 </plist>
diff --git a/Xcode/SDL_image.xcodeproj/project.pbxproj b/Xcode/SDL_image.xcodeproj/project.pbxproj
index 70513694..77fa62ed 100644
--- a/Xcode/SDL_image.xcodeproj/project.pbxproj
+++ b/Xcode/SDL_image.xcodeproj/project.pbxproj
@@ -632,8 +632,8 @@
 			buildSettings = {
 				ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
 				COPY_PHASE_STRIP = NO;
-				DYLIB_COMPATIBILITY_VERSION = 701.0.0;
-				DYLIB_CURRENT_VERSION = 701.0.0;
+				DYLIB_COMPATIBILITY_VERSION = 1.0.0;
+				DYLIB_CURRENT_VERSION = 1.0.0;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
 				ENABLE_TESTABILITY = YES;
 				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/$(PLATFORM)\"";
@@ -722,8 +722,8 @@
 			buildSettings = {
 				ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
 				DEPLOYMENT_POSTPROCESSING = YES;
-				DYLIB_COMPATIBILITY_VERSION = 701.0.0;
-				DYLIB_CURRENT_VERSION = 701.0.0;
+				DYLIB_COMPATIBILITY_VERSION = 1.0.0;
+				DYLIB_CURRENT_VERSION = 1.0.0;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
 				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/$(PLATFORM)\"";
 				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
diff --git a/release_checklist.md b/release_checklist.md
index e4b62d47..46d28832 100644
--- a/release_checklist.md
+++ b/release_checklist.md
@@ -6,14 +6,10 @@
 
 * Bump version number to 2.EVEN.0 in all these locations:
 
-    * `SDL_image.h`:
+    * `include/SDL3/SDL_image.h`:
         `SDL_IMAGE_MAJOR_VERSION`, `SDL_IMAGE_MINOR_VERSION`, `SDL_IMAGE_PATCHLEVEL`
-    * `configure.ac`:
-        `MAJOR_VERSION_MACRO`, `MINOR_VERSION_MACRO`, `MICRO_VERSION_MACRO`
     * `CMakeLists.txt`:
         `MAJOR_VERSION`, `MINOR_VERSION`, `MICRO_VERSION`
-    * `Makefile.os2`:
-        `MAJOR_VERSION`, `MINOR_VERSION`, `MICRO_VERSION`
     * `version.rc`:
         `FILEVERSION`, `PRODUCTVERSION`, `FileVersion`, `ProductVersion`
     * `VisualC/Version.rc`:
diff --git a/sdl3_image-config-version.cmake.in b/sdl3_image-config-version.cmake.in
index f1c018fb..7460e74f 100644
--- a/sdl3_image-config-version.cmake.in
+++ b/sdl3_image-config-version.cmake.in
@@ -1,4 +1,4 @@
-# sdl2_image cmake project-config-version input for ./configure scripts
+# sdl3_image cmake project-config-version input for ./configure scripts
 
 set(PACKAGE_VERSION "@MAJOR_VERSION_MACRO@.@MINOR_VERSION_MACRO@.@MICRO_VERSION_MACRO@")
 
diff --git a/sdl3_image-config.cmake.in b/sdl3_image-config.cmake.in
index 4813f75c..195c3d5d 100644
--- a/sdl3_image-config.cmake.in
+++ b/sdl3_image-config.cmake.in
@@ -1,56 +1,56 @@
-# sdl2_image cmake project-config input for ./configure scripts
+# sdl3_image cmake project-config input for ./configure scripts
 
 include(FeatureSummary)
-set_package_properties(SDL2_image PROPERTIES
+set_package_properties(SDL3_image PROPERTIES
     URL "https://www.libsdl.org/projects/SDL_image/"
     DESCRIPTION "SDL_image is an image file loading library"
 )
 
-set(SDL2_image_FOUND TRUE)
+set(SDL3_image_FOUND TRUE)
 
-set(SDL2IMAGE_AVIF  @LOAD_AVIF@)
-set(SDL2IMAGE_BMP   @LOAD_BMP@)
-set(SDL2IMAGE_GIF   @LOAD_GIF@)
-set(SDL2IMAGE_JPG   @LOAD_JPG@)
-set(SDL2IMAGE_JXL   @LOAD_JXL@)
-set(SDL2IMAGE_LBM   @LOAD_LBM@)
-set(SDL2IMAGE_PCX   @LOAD_PCX@)
-set(SDL2IMAGE_PNG   @LOAD_PNG@)
-set(SDL2IMAGE_PNM   @LOAD_PNM@)
-set(SDL2IMAGE_QOI   @LOAD_QOI@)
-set(SDL2IMAGE_SVG   @LOAD_SVG@)
-set(SDL2IMAGE_TGA   @LOAD_TGA@)
-set(SDL2IMAGE_TIF   @LOAD_TIF@)
-set(SDL2IMAGE_XCF   @LOAD_XCF@)
-set(SDL2IMAGE_XPM   @LOAD_XPM@)
-set(SDL2IMAGE_XV    @LOAD_XV@)
-set(SDL2IMAGE_WEBP  @LOAD_WEBP@)
+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(SDL2IMAGE_JPG_SAVE @SDL2IMAGE_JPG_SAVE@)
-set(SDL2IMAGE_PNG_SAVE @SDL2IMAGE_PNG_SAVE@)
+set(SDL3IMAGE_JPG_SAVE @SDL3IMAGE_JPG_SAVE@)
+set(SDL3IMAGE_PNG_SAVE @SDL3IMAGE_PNG_SAVE@)
 
-set(SDL2IMAGE_VENDORED  FALSE)
+set(SDL3IMAGE_VENDORED  FALSE)
 
-set(SDL2IMAGE_BACKEND_IMAGEIO   @USE_IMAGEIO@)
-set(SDL2IMAGE_BACKEND_STB       @USE_STBIMAGE@)
-set(SDL2IMAGE_BACKEND_WIC       @USE_WIC@)
+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(_sdl2image_extra_static_libraries "@IMG_LIBS@ @PC_LIBS@")
-string(STRIP "${_sdl2image_extra_static_libraries}" _sdl2image_extra_static_libraries)
+set(_sdl3image_extra_static_libraries "@IMG_LIBS@ @PC_LIBS@")
+string(STRIP "${_sdl3image_extra_static_libraries}" _sdl3image_extra_static_libraries)
 
-set(_sdl2image_bindir   "${bindir}")
-set(_sdl2image_libdir   "${libdir}")
-set(_sdl2image_incdir   "${includedir}/SDL2")
+set(_sdl3image_bindir   "${bindir}")
+set(_sdl3image_libdir   "${libdir}")
+set(_sdl3image_incdir   "${includedir}/SDL3")
 
-# Convert _sdl2image_extra_static_libraries to list and keep only libraries
-string(REGEX MATCHALL "(-[lm]([-a-zA-Z0-9._]+))|(-Wl,[^ ]*framework[^ ]*)" _sdl2image_extra_static_libraries "${_sdl2image_extra_static_libraries}")
-string(REGEX REPLACE "^-l" "" _sdl2image_extra_static_libraries "${_sdl2image_extra_static_libraries}")
-string(REGEX REPLACE ";-l" ";" _sdl2image_extra_static_libraries "${_sdl2image_extra_static_libraries}")
+# 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)
@@ -60,40 +60,40 @@ unset(libdir)
 
 include(CMakeFindDependencyMacro)
 
-if(NOT TARGET SDL2_image::SDL2_image)
-    add_library(SDL2_image::SDL2_image SHARED IMPORTED)
-    set_target_properties(SDL2_image::SDL2_image
+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 "${_sdl2image_incdir}"
-            COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED"
-            INTERFACE_SDL2_SHARED "ON"
+            INTERFACE_INCLUDE_DIRECTORIES "${_sdl3image_incdir}"
+            COMPATIBLE_INTERFACE_BOOL "SDL3_SHARED"
+            INTERFACE_SDL3_SHARED "ON"
     )
     if(WIN32)
-        set_target_properties(SDL2_image::SDL2_image
+        set_target_properties(SDL3_image::SDL3_image
             PROPERTIES
-                IMPORTED_LOCATION "${_sdl2image_bindir}/SDL2_image.dll"
-                IMPORTED_IMPLIB "${_sdl2image_libdir}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2_image.dll${CMAKE_STATIC_LIBRARY_SUFFIX}"
+                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(SDL2_image::SDL2_image
+        set_target_properties(SDL3_image::SDL3_image
             PROPERTIES
-                IMPORTED_LOCATION "${_sdl2image_libdir}/${CMAKE_SHARED_LIBRARY_PREFIX}SDL2_image${CMAKE_SHARED_LIBRARY_SUFFIX}"
+                IMPORTED_LOCATION "${_sdl3image_libdir}/${CMAKE_SHARED_LIBRARY_PREFIX}SDL3_image${CMAKE_SHARED_LIBRARY_SUFFIX}"
         )
     endif()
 endif()
 
-if(NOT TARGET SDL2_image::SDL2_image-static)
-    add_library(SDL2_image::SDL2_image-static STATIC IMPORTED)
+if(NOT TARGET SDL3_image::SDL3_image-static)
+    add_library(SDL3_image::SDL3_image-static STATIC IMPORTED)
 
-    set_target_properties(SDL2_image::SDL2_image-static
+    set_target_properties(SDL3_image::SDL3_image-static
         PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${_sdl2image_incdir}"
-            IMPORTED_LOCATION "${_sdl2image_libdir}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2_image${CMAKE_STATIC_LIBRARY_SUFFIX}"
-            INTERFACE_LINK_LIBRARIES "${_sdl2image_extra_static_libraries}"
+            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(_sdl2image_extra_static_libraries)
-unset(_sdl2image_bindir)
-unset(_sdl2image_libdir)
-unset(_sdl2image_incdir)
+unset(_sdl3image_extra_static_libraries)
+unset(_sdl3image_bindir)
+unset(_sdl3image_libdir)
+unset(_sdl3image_incdir)
diff --git a/test-versioning.sh b/test-versioning.sh
index cec53e00..c4f0593a 100755
--- a/test-versioning.sh
+++ b/test-versioning.sh
@@ -7,9 +7,10 @@ set -eu
 # Needed so sed doesn't report illegal byte sequences on macOS
 export LC_CTYPE=C
 
-ref_major=$(sed -ne 's/^#define SDL_IMAGE_MAJOR_VERSION  *//p' SDL_image.h)
-ref_minor=$(sed -ne 's/^#define SDL_IMAGE_MINOR_VERSION  *//p' SDL_image.h)
-ref_micro=$(sed -ne 's/^#define SDL_IMAGE_PATCHLEVEL  *//p' SDL_image.h)
+header=include/SDL3/SDL_image.h
+ref_major=$(sed -ne 's/^#define SDL_IMAGE_MAJOR_VERSION  *//p' $header)
+ref_minor=$(sed -ne 's/^#define SDL_IMAGE_MINOR_VERSION  *//p' $header)
+ref_micro=$(sed -ne 's/^#define SDL_IMAGE_PATCHLEVEL  *//p' $header)
 ref_version="${ref_major}.${ref_minor}.${ref_micro}"
 
 tests=0
@@ -26,33 +27,10 @@ not_ok () {
     failed=1
 }
 
-major=$(sed -Ene 's/^m4_define\(\[MAJOR_VERSION_MACRO\], \[([0-9]*)\]\)$/\1/p' configure.ac)
-minor=$(sed -Ene 's/^m4_define\(\[MINOR_VERSION_MACRO\], \[([0-9]*)\]\)$/\1/p' configure.ac)
-micro=$(sed -Ene 's/^m4_define\(\[MICRO_VERSION_MACRO\], \[([0-9]*)\]\)$/\1/p' configure.ac)
-version="${major}.${minor}.${micro}"
-ref_sdl_req=$(sed -ne 's/^SDL_VERSION=//p' configure.ac)
-
-if [ "$ref_version" = "$version" ]; then
-    ok "configure.ac $version"
-else
-    not_ok "configure.ac $version disagrees with SDL_image.h $ref_version"
-fi
-
-major=$(sed -ne 's/^MAJOR_VERSION=//p' configure)
-minor=$(sed -ne 's/^MINOR_VERSION=//p' configure)
-micro=$(sed -ne 's/^MICRO_VERSION=//p' configure)
-version="${major}.${minor}.${micro}"
-
-if [ "$ref_version" = "$version" ]; then
-    ok "configure $version"
-else
-    not_ok "configure $version disagrees with SDL_image.h $ref_version"
-fi
-
 major=$(sed -ne 's/^set(MAJOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
 minor=$(sed -ne 's/^set(MINOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
 micro=$(sed -ne 's/^set(MICRO_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
-sdl_req=$(sed -ne 's/^set(SDL_REQUIRED_VERSION \([0-9.]*\))$/\1/p' CMakeLists.txt)
+ref_sdl_req=$(sed -ne 's/^set(SDL_REQUIRED_VERSION \([0-9.]*\))$/\1/p' CMakeLists.txt)
 version="${major}.${minor}.${micro}"
 
 if [ "$ref_version" = "$version" ]; then
@@ -61,23 +39,6 @@ else
     not_ok "CMakeLists.txt $version disagrees with SDL_image.h $ref_version"
 fi
 
-if [ "$ref_sdl_req" = "$sdl_req" ]; then
-    ok "CMakeLists.txt $sdl_req"
-else
-    not_ok "CMakeLists.txt SDL_REQUIRED_VERSION=$sdl_req disagrees with configure.ac SDL_VERSION=$ref_sdl_req"
-fi
-
-major=$(sed -ne 's/^MAJOR_VERSION *= *//p' Makefile.os2)
-minor=$(sed -ne 's/^MINOR_VERSION *= *//p' Makefile.os2)
-micro=$(sed -ne 's/^MICRO_VERSION *= *//p' Makefile.os2)
-version="${major}.${minor}.${micro}"
-
-if [ "$ref_version" = "$version" ]; then
-    ok "Makefile.os2 $version"
-else
-    not_ok "Makefile.os2 $version disagrees with SDL_image.h $ref_version"
-fi
-
 for rcfile in version.rc VisualC/Version.rc; do
     tuple=$(sed -ne 's/^ *FILEVERSION *//p' "$rcfile" | tr -d '\r')
     ref_tuple="${ref_major},${ref_minor},${ref_micro},0"
@@ -175,12 +136,12 @@ else
     not_ok "project.pbxproj DYLIB_CURRENT_VERSION is inconsistent, expected $ref, got $dylib_cur"
 fi
 
-sdl_req=$(sed -ne 's/\$sdl2_version = "\([0-9.]*\)"$/\1/p' .github/fetch_sdl_vc.ps1)
+sdl_req=$(sed -ne 's/\$sdl3_version = "\([0-9.]*\)"$/\1/p' .github/fetch_sdl_vc.ps1)
 
 if [ "$ref_sdl_req" = "$sdl_req" ]; then
     ok ".github/fetch_sdl_vc.ps1 $sdl_req"
 else
-    not_ok ".github/fetch_sdl_vc.ps1 sdl2_version=$sdl_req disagrees with configure.ac SDL_VERSION=$ref_sdl_req"
+    not_ok ".github/fetch_sdl_vc.ps1 sdl3_version=$sdl_req disagrees with CMakeLists.txt SDL_REQUIRED_VERSION=$ref_sdl_req"
 fi
 
 echo "1..$tests"
diff --git a/version.rc b/version.rc
index 93d7c7f1..c12617b6 100644
--- a/version.rc
+++ b/version.rc
@@ -9,8 +9,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,7,0,0
- PRODUCTVERSION 2,7,0,0
+ FILEVERSION 3,0,0,0
+ PRODUCTVERSION 3,0,0,0
  FILEFLAGSMASK 0x3fL
  FILEFLAGS 0x0L
  FILEOS 0x40004L
@@ -23,12 +23,12 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "SDL_image\0"
-            VALUE "FileVersion", "2, 7, 0, 0\0"
+            VALUE "FileVersion", "3, 0, 0, 0\0"
             VALUE "InternalName", "SDL_image\0"
             VALUE "LegalCopyright", "Copyright  2022 Sam Lantinga\0"
             VALUE "OriginalFilename", "SDL_image.dll\0"
             VALUE "ProductName", "Simple DirectMedia Layer\0"
-            VALUE "ProductVersion", "2, 7, 0, 0\0"
+            VALUE "ProductVersion", "3, 0, 0, 0\0"
         END
     END
     BLOCK "VarFileInfo"