Skip to content

Commit c6aac65

Browse files
committed
Updated for SDL3 version changes
1 parent a34ccf1 commit c6aac65

File tree

10 files changed

+35
-66
lines changed

10 files changed

+35
-66
lines changed

.wikiheaders-options

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ mainincludefname = SDL3_image/SDL_image.h
77
versionfname = include/SDL3_image/SDL_image.h
88
versionmajorregex = \A\#define\s+SDL_IMAGE_MAJOR_VERSION\s+(\d+)\Z
99
versionminorregex = \A\#define\s+SDL_IMAGE_MINOR_VERSION\s+(\d+)\Z
10-
versionpatchregex = \A\#define\s+SDL_IMAGE_PATCHLEVEL\s+(\d+)\Z
10+
versionmicroregex = \A\#define\s+SDL_IMAGE_MICRO_VERSION\s+(\d+)\Z
1111
selectheaderregex = \ASDL_image\.h\Z
1212
projecturl = https://libsdl.org/projects/SDL_image
1313
wikiurl = https://wiki.libsdl.org/SDL_image

VisualC/pkg-support/cmake/sdl3_image-config-version.cmake

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ string(REGEX MATCH "#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_maj
1313
set(_sdl_major "${CMAKE_MATCH_1}")
1414
string(REGEX MATCH "#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_image_h}")
1515
set(_sdl_minor "${CMAKE_MATCH_1}")
16-
string(REGEX MATCH "#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_image_h}")
17-
set(_sdl_patch "${CMAKE_MATCH_1}")
18-
if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re)
19-
set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}")
16+
string(REGEX MATCH "#define[ \t]+SDL_IMAGE_MICRO_VERSION[ \t]+([0-9]+)" _sdl_micro_re "${_sdl_image_h}")
17+
set(_sdl_micro "${CMAKE_MATCH_1}")
18+
if(_sdl_major_re AND _sdl_minor_re AND _sdl_micro_re)
19+
set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_micro}")
2020
else()
2121
message(AUTHOR_WARNING "Could not extract version from SDL_image.h.")
2222
return()

Xcode/pkg-support/resources/CMake/sdl3_image-config-version.cmake

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ string(REGEX MATCH "#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_maj
1313
set(_sdl_major "${CMAKE_MATCH_1}")
1414
string(REGEX MATCH "#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_image_h}")
1515
set(_sdl_minor "${CMAKE_MATCH_1}")
16-
string(REGEX MATCH "#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_image_h}")
17-
set(_sdl_patch "${CMAKE_MATCH_1}")
18-
if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re)
19-
set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}")
16+
string(REGEX MATCH "#define[ \t]+SDL_IMAGE_MICRO_VERSION[ \t]+([0-9]+)" _sdl_micro_re "${_sdl_image_h}")
17+
set(_sdl_micro "${CMAKE_MATCH_1}")
18+
if(_sdl_major_re AND _sdl_minor_re AND _sdl_micro_re)
19+
set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_micro}")
2020
else()
2121
message(AUTHOR_WARNING "Could not extract version from SDL_image.h.")
2222
return()

build-scripts/android-prefab.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ android_stl="c++_shared"
4242

4343
sdlimage_major=$(sed -ne 's/^#define SDL_IMAGE_MAJOR_VERSION *//p' "${sdlimage_root}/include/SDL3_image/SDL_image.h")
4444
sdlimage_minor=$(sed -ne 's/^#define SDL_IMAGE_MINOR_VERSION *//p' "${sdlimage_root}/include/SDL3_image/SDL_image.h")
45-
sdlimage_patch=$(sed -ne 's/^#define SDL_IMAGE_PATCHLEVEL *//p' "${sdlimage_root}/include/SDL3_image/SDL_image.h")
46-
sdlimage_version="${sdlimage_major}.${sdlimage_minor}.${sdlimage_patch}"
45+
sdlimage_micro=$(sed -ne 's/^#define SDL_IMAGE_MICRO_VERSION *//p' "${sdlimage_root}/include/SDL3_image/SDL_image.h")
46+
sdlimage_version="${sdlimage_major}.${sdlimage_minor}.${sdlimage_micro}"
4747
echo "Building Android prefab package for SDL_image version $sdlimage_version"
4848

4949
if test ! -d "${sdl_build_root}"; then

build-scripts/test-versioning.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export LC_CTYPE=C
1212
header=include/SDL3_image/SDL_image.h
1313
ref_major=$(sed -ne 's/^#define SDL_IMAGE_MAJOR_VERSION *//p' $header)
1414
ref_minor=$(sed -ne 's/^#define SDL_IMAGE_MINOR_VERSION *//p' $header)
15-
ref_micro=$(sed -ne 's/^#define SDL_IMAGE_PATCHLEVEL *//p' $header)
15+
ref_micro=$(sed -ne 's/^#define SDL_IMAGE_MICRO_VERSION *//p' $header)
1616
ref_version="${ref_major}.${ref_minor}.${ref_micro}"
1717

1818
tests=0

build-scripts/wikiheaders.pl

+6-6
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
my $versionfname = 'include/SDL_version.h';
1717
my $versionmajorregex = '\A\#define\s+SDL_MAJOR_VERSION\s+(\d+)\Z';
1818
my $versionminorregex = '\A\#define\s+SDL_MINOR_VERSION\s+(\d+)\Z';
19-
my $versionpatchregex = '\A\#define\s+SDL_PATCHLEVEL\s+(\d+)\Z';
19+
my $versionmicroregex = '\A\#define\s+SDL_MICRO_VERSION\s+(\d+)\Z';
2020
my $mainincludefname = 'SDL.h';
2121
my $selectheaderregex = '\ASDL.*?\.h\Z';
2222
my $projecturl = 'https://libsdl.org/';
@@ -92,7 +92,7 @@
9292
$readmesubdir = $val, next if $key eq 'readmesubdir';
9393
$versionmajorregex = $val, next if $key eq 'versionmajorregex';
9494
$versionminorregex = $val, next if $key eq 'versionminorregex';
95-
$versionpatchregex = $val, next if $key eq 'versionpatchregex';
95+
$versionmicroregex = $val, next if $key eq 'versionmicroregex';
9696
$versionfname = $val, next if $key eq 'versionfname';
9797
$mainincludefname = $val, next if $key eq 'mainincludefname';
9898
$selectheaderregex = $val, next if $key eq 'selectheaderregex';
@@ -2036,19 +2036,19 @@ sub print_undocumented_section {
20362036
open(FH, '<', "$srcpath/$versionfname") or die("Can't open '$srcpath/$versionfname': $!\n");
20372037
my $majorver = 0;
20382038
my $minorver = 0;
2039-
my $patchver = 0;
2039+
my $microver = 0;
20402040
while (<FH>) {
20412041
chomp;
20422042
if (/$versionmajorregex/) {
20432043
$majorver = int($1);
20442044
} elsif (/$versionminorregex/) {
20452045
$minorver = int($1);
2046-
} elsif (/$versionpatchregex/) {
2047-
$patchver = int($1);
2046+
} elsif (/$versionmicroregex/) {
2047+
$microver = int($1);
20482048
}
20492049
}
20502050
close(FH);
2051-
my $fullversion = "$majorver.$minorver.$patchver";
2051+
my $fullversion = "$majorver.$minorver.$microver";
20522052

20532053
foreach (keys %headersyms) {
20542054
my $sym = $_;

docs/release_checklist.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Bump version number to 3.EVEN.0 in all these locations:
88

99
* `include/SDL3_image/SDL_image.h`:
10-
`SDL_IMAGE_MAJOR_VERSION`, `SDL_IMAGE_MINOR_VERSION`, `SDL_IMAGE_PATCHLEVEL`
10+
`SDL_IMAGE_MAJOR_VERSION`, `SDL_IMAGE_MINOR_VERSION`, `SDL_IMAGE_MICRO_VERSION`
1111
* `CMakeLists.txt`:
1212
`MAJOR_VERSION`, `MINOR_VERSION`, `MICRO_VERSION`
1313
* `src/version.rc`:

include/SDL3_image/SDL_image.h

+6-29
Original file line numberDiff line numberDiff line change
@@ -38,55 +38,32 @@ extern "C" {
3838
#endif
3939

4040
/**
41-
* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
41+
* Printable format: "%d.%d.%d", MAJOR, MINOR, MICRO
4242
*/
4343
#define SDL_IMAGE_MAJOR_VERSION 3
4444
#define SDL_IMAGE_MINOR_VERSION 0
45-
#define SDL_IMAGE_PATCHLEVEL 0
46-
47-
/**
48-
* This macro can be used to fill a version structure with the compile-time
49-
* version of the SDL_image library.
50-
*/
51-
#define SDL_IMAGE_VERSION(X) \
52-
{ \
53-
(X)->major = SDL_IMAGE_MAJOR_VERSION; \
54-
(X)->minor = SDL_IMAGE_MINOR_VERSION; \
55-
(X)->patch = SDL_IMAGE_PATCHLEVEL; \
56-
}
57-
58-
#if SDL_IMAGE_MAJOR_VERSION < 3 && SDL_MAJOR_VERSION < 3
45+
#define SDL_IMAGE_MICRO_VERSION 0
5946

6047
/**
6148
* This is the version number macro for the current SDL_image version.
62-
*
63-
* In versions higher than 2.9.0, the minor version overflows into the
64-
* thousands digit: for example, 2.23.0 is encoded as 4300. This macro will
65-
* not be available in SDL 3.x or SDL_image 3.x.
66-
*
67-
* Deprecated, use SDL_IMAGE_VERSION_ATLEAST or SDL_IMAGE_VERSION instead.
6849
*/
69-
#define SDL_IMAGE_COMPILEDVERSION \
70-
SDL_VERSIONNUM(SDL_IMAGE_MAJOR_VERSION, SDL_IMAGE_MINOR_VERSION, SDL_IMAGE_PATCHLEVEL)
71-
#endif /* SDL_IMAGE_MAJOR_VERSION < 3 && SDL_MAJOR_VERSION < 3 */
50+
#define SDL_IMAGE_VERSION \
51+
SDL_VERSIONNUM(SDL_IMAGE_MAJOR_VERSION, SDL_IMAGE_MINOR_VERSION, SDL_IMAGE_MICRO_VERSION)
7252

7353
/**
7454
* This macro will evaluate to true if compiled with SDL_image at least X.Y.Z.
7555
*/
7656
#define SDL_IMAGE_VERSION_ATLEAST(X, Y, Z) \
7757
((SDL_IMAGE_MAJOR_VERSION >= X) && \
7858
(SDL_IMAGE_MAJOR_VERSION > X || SDL_IMAGE_MINOR_VERSION >= Y) && \
79-
(SDL_IMAGE_MAJOR_VERSION > X || SDL_IMAGE_MINOR_VERSION > Y || SDL_IMAGE_PATCHLEVEL >= Z))
59+
(SDL_IMAGE_MAJOR_VERSION > X || SDL_IMAGE_MINOR_VERSION > Y || SDL_IMAGE_MICRO_VERSION >= Z))
8060

8161
/**
8262
* This function gets the version of the dynamically linked SDL_image library.
8363
*
84-
* it should NOT be used to fill a version structure, instead you should use
85-
* the SDL_IMAGE_VERSION() macro.
86-
*
8764
* \returns SDL_image version
8865
*/
89-
extern DECLSPEC const SDL_Version * SDLCALL IMG_Linked_Version(void);
66+
extern DECLSPEC int SDLCALL IMG_Version(void);
9067

9168
/**
9269
* Initialization flags

src/IMG.c

+9-17
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,22 @@
2828
#include <emscripten/emscripten.h>
2929
#endif
3030

31-
#if defined(SDL_BUILD_MAJOR_VERSION) && defined(SDL_COMPILE_TIME_ASSERT)
31+
#if defined(SDL_BUILD_MAJOR_VERSION)
3232
SDL_COMPILE_TIME_ASSERT(SDL_BUILD_MAJOR_VERSION,
3333
SDL_IMAGE_MAJOR_VERSION == SDL_BUILD_MAJOR_VERSION);
3434
SDL_COMPILE_TIME_ASSERT(SDL_BUILD_MINOR_VERSION,
3535
SDL_IMAGE_MINOR_VERSION == SDL_BUILD_MINOR_VERSION);
3636
SDL_COMPILE_TIME_ASSERT(SDL_BUILD_MICRO_VERSION,
37-
SDL_IMAGE_PATCHLEVEL == SDL_BUILD_MICRO_VERSION);
37+
SDL_IMAGE_MICRO_VERSION == SDL_BUILD_MICRO_VERSION);
3838
#endif
3939

40-
#if defined(SDL_COMPILE_TIME_ASSERT)
40+
/* Limited by its encoding in SDL_VERSIONNUM */
4141
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MAJOR_VERSION_min, SDL_IMAGE_MAJOR_VERSION >= 0);
42-
/* Limited only by the need to fit in SDL_Version */
43-
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MAJOR_VERSION_max, SDL_IMAGE_MAJOR_VERSION <= 255);
44-
42+
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MAJOR_VERSION_max, SDL_IMAGE_MAJOR_VERSION <= 10);
4543
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MINOR_VERSION_min, SDL_IMAGE_MINOR_VERSION >= 0);
46-
/* Limited only by the need to fit in SDL_Version */
47-
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MINOR_VERSION_max, SDL_IMAGE_MINOR_VERSION <= 255);
48-
49-
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_PATCHLEVEL_min, SDL_IMAGE_PATCHLEVEL >= 0);
50-
/* Limited by its encoding in SDL_VERSIONNUM and in the ABI versions */
51-
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_PATCHLEVEL_max, SDL_IMAGE_PATCHLEVEL <= 99);
52-
#endif
44+
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MINOR_VERSION_max, SDL_IMAGE_MINOR_VERSION <= 999);
45+
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MICRO_VERSION_min, SDL_IMAGE_MICRO_VERSION >= 0);
46+
SDL_COMPILE_TIME_ASSERT(SDL_IMAGE_MICRO_VERSION_max, SDL_IMAGE_MICRO_VERSION <= 999);
5347

5448
/* Table of image detection and loading functions */
5549
static struct {
@@ -90,11 +84,9 @@ static struct {
9084
{ "WEBP", IMG_isWEBP, IMG_LoadWEBPAnimation_IO },
9185
};
9286

93-
const SDL_Version *IMG_Linked_Version(void)
87+
int IMG_Version(void)
9488
{
95-
static SDL_Version linked_version;
96-
SDL_IMAGE_VERSION(&linked_version)
97-
return(&linked_version);
89+
return SDL_IMAGE_VERSION;
9890
}
9991

10092
static int initialized = 0;

0 commit comments

Comments
 (0)