Skip to content

Commit

Permalink
More SDL3 version updates
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Jan 5, 2023
1 parent 3de36b2 commit 04b4ab8
Show file tree
Hide file tree
Showing 14 changed files with 167 additions and 210 deletions.
42 changes: 21 additions & 21 deletions .github/fetch_sdl_vc.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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"
10 changes: 5 additions & 5 deletions Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 :=
Expand Down
12 changes: 6 additions & 6 deletions README-emscripten.txt
Original file line number Diff line number Diff line change
@@ -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

4 changes: 2 additions & 2 deletions README.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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.
Expand Down
6 changes: 3 additions & 3 deletions SDL3_image.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -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

96 changes: 48 additions & 48 deletions SDL3_imageConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -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()
8 changes: 4 additions & 4 deletions VisualC/Version.rc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand Down
10 changes: 5 additions & 5 deletions Xcode/Info-Framework.plist
Original file line number Diff line number Diff line change
Expand Up @@ -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>
8 changes: 4 additions & 4 deletions Xcode/SDL_image.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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)\"";
Expand Down Expand Up @@ -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;
Expand Down
6 changes: 1 addition & 5 deletions release_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`:
Expand Down
2 changes: 1 addition & 1 deletion sdl3_image-config-version.cmake.in
Original file line number Diff line number Diff line change
@@ -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@")

Expand Down
Loading

0 comments on commit 04b4ab8

Please sign in to comment.