From 5f4696ce636c5d6b250783115e06cbf20bf3bcd7 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 15 Jan 2025 20:38:16 -0800
Subject: [PATCH] Updating documentation for the 3.2.0 release
* Simplified and updated the mingw release archive
* Simplified and updated the msvc release archive
* Updated the Xcode release archive
* Updated the Android release archive
---
.github/workflows/release.yml | 8 +++
CMakeLists.txt | 2 +-
README.md | 2 +-
WhatsNew.txt | 25 +--------
Xcode/SDL/SDL.xcodeproj/project.pbxproj | 16 +++---
Xcode/SDL/pkg-support/resources/INSTALL.md | 41 ++++++++++++++
Xcode/SDL/pkg-support/resources/License.txt | 19 -------
Xcode/SDL/pkg-support/resources/ReadMe.txt | 44 ---------------
Xcode/SDL/pkg-support/resources/SDL_DS_Store | Bin 10244 -> 10244 bytes
build-scripts/build-release.py | 13 ++++-
.../android/{README.md.in => INSTALL.md.in} | 50 +++++++++++------
build-scripts/pkg-support/mingw/INSTALL.md | 53 ++++++++++++++++++
build-scripts/pkg-support/mingw/INSTALL.txt | 25 ---------
build-scripts/pkg-support/msvc/INSTALL.md | 45 +++++++++++++++
.../pkg-support/msvc/arm64/INSTALL.md.in | 13 +++++
.../pkg-support/msvc/x64/INSTALL.md.in | 13 +++++
.../pkg-support/msvc/x86/INSTALL.md.in | 13 +++++
build-scripts/release-info.json | 25 +++------
18 files changed, 249 insertions(+), 158 deletions(-)
create mode 100644 Xcode/SDL/pkg-support/resources/INSTALL.md
delete mode 100644 Xcode/SDL/pkg-support/resources/License.txt
delete mode 100644 Xcode/SDL/pkg-support/resources/ReadMe.txt
rename build-scripts/pkg-support/android/{README.md.in => INSTALL.md.in} (63%)
create mode 100644 build-scripts/pkg-support/mingw/INSTALL.md
delete mode 100644 build-scripts/pkg-support/mingw/INSTALL.txt
create mode 100644 build-scripts/pkg-support/msvc/INSTALL.md
create mode 100644 build-scripts/pkg-support/msvc/arm64/INSTALL.md.in
create mode 100644 build-scripts/pkg-support/msvc/x64/INSTALL.md.in
create mode 100644 build-scripts/pkg-support/msvc/x86/INSTALL.md.in
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 64199c7c6237b..bd0bcca590cef 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -77,6 +77,14 @@ jobs:
shell: bash
run: |
${{ steps.tar.outputs.path }}/build-scripts/test-versioning.sh
+ - name: 'Install Linux dependencies'
+ run: |
+ sudo apt-get update -y
+ sudo apt-get install -y \
+ gnome-desktop-testing libasound2-dev libpulse-dev libaudio-dev libjack-dev libsndio-dev \
+ libusb-1.0-0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev \
+ libxss-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
+ libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev
- name: 'CMake (configure + build + tests + examples)'
run: |
cmake -S ${{ steps.tar.outputs.path }} -B /tmp/build -DSDL_TEST_LIBRARY=TRUE -DSDL_TESTS=TRUE -DSDL_EXAMPLES=TRUE
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a6f3be1dc25d3..129b6267b32d3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3330,8 +3330,8 @@ endif()
set_source_files_properties(src/dynapi/SDL_dynapi.c PROPERTIES SKIP_PRECOMPILE_HEADERS 1)
set(SDL_FRAMEWORK_RESOURCES
- Xcode/SDL/pkg-support/resources/ReadMe.txt
LICENSE.txt
+ README.md
)
if(SDL_FRAMEWORK)
sdl_sources(${SDL_FRAMEWORK_RESOURCES})
diff --git a/README.md b/README.md
index fd143d869300d..68b0923a7f554 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Simple DirectMedia Layer (SDL for short) is a cross-platform library
designed to make it easy to write multi-media software, such as games
and emulators.
-You can find the latest release and additional documentation at:
+You can find the latest release and additional information at:
https://www.libsdl.org/
Installation instructions and a quick introduction is available in
diff --git a/WhatsNew.txt b/WhatsNew.txt
index 63d34758028d3..22b1a0f8bc212 100644
--- a/WhatsNew.txt
+++ b/WhatsNew.txt
@@ -2,32 +2,13 @@
This is a list of major changes in SDL's version history.
---------------------------------------------------------------------------
-3.1.0:
+3.2.0:
---------------------------------------------------------------------------
-This is a preview release of the new SDL 3.0 API.
-
-The ABI hasn't been locked down yet, but it's fairly stable and feedback is welcome!
-
Check out [migration guide](docs/README-migration.md) for details on API changes since SDL 2.0, and tips on transitioning your code from SDL2 code to SDL3.
There have been too many changes to list them all, but here are some of the highlights:
-* The API has been significantly reworked to be easier to use and more consistent
-* The 2D rendering API now has support for more advanced colorspaces and HDR rendering
-* The 2D rendering API now has a Vulkan backend
-* An example of hardware accelerated video playback using ffmpeg has been added in test/testffmpeg.c
-* The shaped window API has been replaced with transparent windows
-* Time and date functions have been added in SDL_time.h
-* Support for webcam video recording has been added in SDL_camera.h
-* Support for handling pens and tablets has been added in SDL_pen.h
-* Support for file open and save dialogs has been added in SDL_dialog.h
-* Cross-platform functions for working with files and directories are available in SDL_filesystem.h
-* A cross-platform abstraction for working with user and game data has been added in SDL_storage.h
-* Handling of main() has been moved to a header library and an optional callback-based program flow is available
-* Support for simple object properties has been added in SDL_properties.h. These properties are available on many SDL objects, and can be used for more advanced functionality.
-
-Please let us know about issues and feedback at: https://github.com/libsdl-org/SDL/issues
-The development team is focused on code, moving towards the final release, and we would love volunteers to help improve the documentation. Please send e-mail to slouken@libsdl.org if you'd like to help out!
+https://wiki.libsdl.org/SDL3/NewFeatures
-Finally, a giant thank you to all the people who have contributed code and feedback to the SDL 3.0 improvements!
+Thank you to all the people who have contributed code and feedback to the SDL 3.0 release!
diff --git a/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
index e10903b809897..ffe36a0ec60b6 100644
--- a/Xcode/SDL/SDL.xcodeproj/project.pbxproj
+++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
@@ -79,8 +79,6 @@
A7381E961D8B69D600B177DD /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E951D8B69D600B177DD /* CoreAudio.framework */; platformFilters = (ios, maccatalyst, macos, tvos, ); settings = {ATTRIBUTES = (Required, ); }; };
A7381E971D8B6A0300B177DD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7381E931D8B69C300B177DD /* AudioToolbox.framework */; platformFilters = (ios, maccatalyst, macos, tvos, ); };
A75FDB5823E39E6100529352 /* hidapi.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDB5723E39E6100529352 /* hidapi.h */; };
- A75FDBB723E4CBC700529352 /* License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 00794D3F09D0C461003FC8A1 /* License.txt */; };
- A75FDBB823E4CBC700529352 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F59C710300D5CB5801000001 /* ReadMe.txt */; };
A75FDBC523EA380300529352 /* SDL_hidapi_rumble.h in Headers */ = {isa = PBXBuildFile; fileRef = A75FDBC323EA380300529352 /* SDL_hidapi_rumble.h */; };
A75FDBCE23EA380300529352 /* SDL_hidapi_rumble.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDBC423EA380300529352 /* SDL_hidapi_rumble.c */; };
A79745702B2E9D39009D224A /* SDL_hidapi_steamdeck.c in Sources */ = {isa = PBXBuildFile; fileRef = A797456F2B2E9D39009D224A /* SDL_hidapi_steamdeck.c */; };
@@ -584,7 +582,6 @@
0073179D0858DECD00B2BC32 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
0073179F0858DECD00B2BC32 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
007317C10858E15000B2BC32 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
- 00794D3F09D0C461003FC8A1 /* License.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = License.txt; sourceTree = "<group>"; };
00CFA89C106B4BA100758660 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; };
00D0D08310675DD9004B05EF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
1485C32F2BBA4A0C0063985B /* UniformTypeIdentifiers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UniformTypeIdentifiers.framework; path = System/Library/Frameworks/UniformTypeIdentifiers.framework; sourceTree = SDKROOT; };
@@ -941,6 +938,9 @@
F36C342F2C0F876500991150 /* SDL_offscreenvulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenvulkan.h; sourceTree = "<group>"; };
F36C34302C0F876500991150 /* SDL_offscreenvulkan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenvulkan.c; sourceTree = "<group>"; };
F36C7AD0294BA009004D61C3 /* SDL_runapp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_runapp.c; sourceTree = "<group>"; };
+ F373DA172D3889EE002158FA /* INSTALL.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = INSTALL.md; sourceTree = "<group>"; };
+ F373DA182D388A1E002158FA /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = LICENSE.txt; path = ../../../../LICENSE.txt; sourceTree = "<group>"; };
+ F373DA192D388A1E002158FA /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../../../../README.md; sourceTree = "<group>"; };
F376F6182559B29300CFC0BC /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.1.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; };
F376F61A2559B2AF00CFC0BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/iOSSupport/System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
F376F6312559B31D00CFC0BC /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/iOSSupport/System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
@@ -1091,7 +1091,6 @@
F3FA5A1C2B59ACE000FEAD97 /* yuv_rgb_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv_rgb_common.h; sourceTree = "<group>"; };
F3FD042C2C9B755700824C4C /* SDL_hidapi_nintendo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_hidapi_nintendo.h; sourceTree = "<group>"; };
F3FD042D2C9B755700824C4C /* SDL_hidapi_steam_hori.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_steam_hori.c; sourceTree = "<group>"; };
- F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = "<group>"; };
F59C710600D5CB5801000001 /* SDL.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL.info; sourceTree = "<group>"; };
F5A2EF3900C6A39A01000001 /* BUGS.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = BUGS.txt; path = ../../BUGS.txt; sourceTree = SOURCE_ROOT; };
FA73671C19A540EF004122E4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
@@ -2410,8 +2409,9 @@
isa = PBXGroup;
children = (
F37A8E1928405AA100C38E95 /* CMake */,
- 00794D3F09D0C461003FC8A1 /* License.txt */,
- F59C710300D5CB5801000001 /* ReadMe.txt */,
+ F373DA182D388A1E002158FA /* LICENSE.txt */,
+ F373DA192D388A1E002158FA /* README.md */,
+ F373DA172D3889EE002158FA /* INSTALL.md */,
);
path = resources;
sourceTree = "<group>";
@@ -2755,8 +2755,6 @@
buildActionMask = 2147483647;
files = (
F37A8E1A28405AA100C38E95 /* CMake in Resources */,
- A75FDBB823E4CBC700529352 /* ReadMe.txt in Resources */,
- A75FDBB723E4CBC700529352 /* License.txt in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2779,7 +2777,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "set -ex\n\nmkdir -p build/dmg-tmp/share/cmake/SDL3\ncp -a build/SDL3.xcframework build/dmg-tmp/\n\ncp pkg-support/resources/License.txt build/dmg-tmp\ncp pkg-support/resources/ReadMe.txt build/dmg-tmp\ncp pkg-support/share/cmake/SDL3/SDL3Config.cmake build/dmg-tmp/share/cmake/SDL3\ncp pkg-support/share/cmake/SDL3/SDL3ConfigVersion.cmake build/dmg-tmp/share/cmake/SDL3\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nfind build/dmg-tmp -name .DS_Store -exec rm -f \"{}\" \\;\n\n# for fancy .dmg\nmkdir -p build/dmg-tmp/.logo\ncp pkg-support/resources/SDL_DS_Store build/dmg-tmp/.DS_Store\ncp pkg-support/sdl_logo.pdf build/dmg-tmp/.logo\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname SDL3 -srcfolder build/dmg-tmp build/SDL3.dmg\n\n# clean up\nrm -rf build/dmg-tmp\n";
+ shellScript = "set -ex\n\nmkdir -p build/dmg-tmp/share/cmake/SDL3\ncp -a build/SDL3.xcframework build/dmg-tmp/\n\ncp ../../LICENSE.txt build/dmg-tmp\ncp ../../README.md build/dmg-tmp\ncp pkg-support/resources/INSTALL.md build/dmg-tmp\ncp pkg-support/share/cmake/SDL3/SDL3Config.cmake build/dmg-tmp/share/cmake/SDL3\ncp pkg-support/share/cmake/SDL3/SDL3ConfigVersion.cmake build/dmg-tmp/share/cmake/SDL3\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nfind build/dmg-tmp -name .DS_Store -exec rm -f \"{}\" \\;\n\n# for fancy .dmg\nmkdir -p build/dmg-tmp/.logo\ncp pkg-support/resources/SDL_DS_Store build/dmg-tmp/.DS_Store\ncp pkg-support/sdl_logo.pdf build/dmg-tmp/.logo\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname SDL3 -srcfolder build/dmg-tmp build/SDL3.dmg\n\n# clean up\nrm -rf build/dmg-tmp\n";
};
F3B38CF0296F63D1005DA6D3 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
diff --git a/Xcode/SDL/pkg-support/resources/INSTALL.md b/Xcode/SDL/pkg-support/resources/INSTALL.md
new file mode 100644
index 0000000000000..4058e96d174cf
--- /dev/null
+++ b/Xcode/SDL/pkg-support/resources/INSTALL.md
@@ -0,0 +1,41 @@
+
+# Using this package
+
+This package contains SDL built for Xcode, and includes support for macOS, iOS and tvOS.
+
+To use this package, drag SDL3.xcframework into your project.
+
+# Documentation
+
+An API reference, tutorials, and additional documentation is available at:
+
+https://wiki.libsdl.org/SDL3
+
+# Example code
+
+There are simple example programs available at:
+
+https://examples.libsdl.org/SDL3
+
+# Discussions
+
+## Discord
+
+You can join the official Discord server at:
+
+https://discord.com/invite/BwpFGBWsv8
+
+## Forums/mailing lists
+
+You can join SDL development discussions at:
+
+https://discourse.libsdl.org/
+
+Once you sign up, you can use the forum through the website or as a mailing list from your email client.
+
+## Announcement list
+
+You can sign up for the low traffic announcement list at:
+
+https://www.libsdl.org/mailing-list.php
+
diff --git a/Xcode/SDL/pkg-support/resources/License.txt b/Xcode/SDL/pkg-support/resources/License.txt
deleted file mode 100644
index 144831ccfcc8a..0000000000000
--- a/Xcode/SDL/pkg-support/resources/License.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-
-Simple DirectMedia Layer
-Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
diff --git a/Xcode/SDL/pkg-support/resources/ReadMe.txt b/Xcode/SDL/pkg-support/resources/ReadMe.txt
deleted file mode 100644
index 6ea93478fe97e..0000000000000
--- a/Xcode/SDL/pkg-support/resources/ReadMe.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-The Simple DirectMedia Layer (SDL for short) is a cross-platform
-library designed to make it easy to write multi-media software,
-such as games and emulators.
-
-The Simple DirectMedia Layer library source code is available from:
-http://www.libsdl.org/
-
-This library is distributed under the terms of the zlib license:
-http://zlib.net/zlib_license.html
-
-
-This packages contains the SDL framework for macOS.
-Conforming with Apple guidelines, this framework
-contains both the SDL runtime component and development header files.
-
-
-To Install:
-Copy "SDL3.xcframework" and "share" to /Library/Frameworks
-
-You may alternatively install it in <Your home directory>/Library/Frameworks
-if your access privileges are not high enough.
-
-
-Use in CMake projects:
-SDL3.xcframework can be used in CMake projects using the following pattern:
-```cmake
-find_package(SDL3 REQUIRED COMPONENTS SDL3)
-add_executable(my_game ${MY_SOURCES})
-target_link_libraries(my_game PRIVATE SDL3::SDL3)
-```
-If SDL3.framework is installed in a non-standard location,
-please refer to the following link for ways to configure CMake:
-https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure
-
-
-Additional References:
-
- - Screencast tutorials for getting started with OpenSceneGraph/macOS are
- available at:
- http://www.openscenegraph.org/projects/osg/wiki/Support/Tutorials/MacOSXTips
- Though these are OpenSceneGraph centric, the same exact concepts apply to
- SDL, thus the videos are recommended for everybody getting started with
- developing on macOS. (You can skim over the PlugIns stuff since SDL
- doesn't have any PlugIns to worry about.)
diff --git a/Xcode/SDL/pkg-support/resources/SDL_DS_Store b/Xcode/SDL/pkg-support/resources/SDL_DS_Store
index 15519334371b712cc92952247564dbf6835bc7da..5a71413734b7193e94269f42433f40ec7b73415e 100644
GIT binary patch
literal 10244
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
W4}|Z3L?1~A-~W669`M<J|Nj&2x4fJH
literal 10244
zcmeHMU2Ggz6+Yvvn|18i>p!qcT1L1nsqn66cXr3ScBQPxKO~Zaqu7ld)y19N89Q5#
zcecCZI3+b0goH$+Hb^{GC@O;Y=AjQr2+0pTK*K{GD#Sw(JRtE>2_qG$LRH~AckZn1
zbpru`K<XUn%=zw}bI-l^+<VX5vr9yZxn-w`R3eIlSth#h_ypqj%*Uur)^tKDXir`V
z=&e%Ctu*{&+EGR1fye`q2O<wd9*8{f|KI_9vzg-j{f;Q|K;(hQ1BX4p@j(T%EK0c>
zND(^l5Gep;4Ap{w6AU0#DT`9>1`=;TO3)NCXsXB*LkXIrUX^-9DR%=IG$%zSAByZ*
zkr|32dWU^gsFP9*Wb}+Y5P9IZ2ZG!^RoZUUO77wOUDJN8w4I2xKXNh->RMT<RBdnD
z^tP&Y<GF=v-u6Ppc1l+Ld4YY)-)fjvUA(zu`PcA9;6=}KfmfvVQpNVKttN(U-pp(I
zh&rYlJ0t2%L(7b)dS2hz;l2{zi4T4u_00K2>y@3ae`7Zovm(zuoo<=Kw@_9nRViPW
z6NvpV_yI!GewXM8r_gb#v+HzsPolT4e_-%4pB?IZ^mAt(dwey~U$V*@>vf*hl;?VN
z)7^5Ocde4+&R0#(_r1;4L{9^=y-@b5m+H>-inG1!J2(7=%GaFLL|;qu%Z~lkgQ~@s
zYtR`us1RLzx$ZdC=ho{Ldwy-L;rPpk@YNO3m+x#|sIGai&;8BU{EAm?Tyg3R$g5Vp
zZdKPE^W`I^FKk-t&ZJwh8p{<7m4_$nF4U}YrMf<RZa?r_M|`+=Hh|5#L|YRMhu&?1
zc!CzIUe%fJZTk(s#1o-6wlF=Xhq^8D-sFDl{FkU5)k|Fs+g)|NbuU%3*IM)*vN!;H
zGT0OS4McRhS(Y~1Q``rCdhi*zXBvyB@0Iv6aPXB`!pMhs;NwDloQ@2xn;xYuYLHDX
zt%5yT2dAipnl<X7Q}|LX&@|0ahWe;~RM;3jVuJeV^yn4O-P&{-qk)G8lsh~|JTd0@
zMXRjNFR060)k5#w`QEGW8qxCpUMIIr*0)pk=6Z|T!xdlJ8N4_7=aZpw;I$4lEKAv5
z+N!v=^x8Xjet8e|(raT&zzUt=(a=*d2W-=m9~7wTjo0bKph<N5L(FJ4oY45Q4Qx+%
z)b+MDoa#8$>fVb^*+&)TGEU27&vqmhy$al%V>b;^XVbe$s?#<+Z__5$pa<TL(?znV
zj61<Rv{YI~ogum$l|7Dz9kSm?MRx*;&cs@T{_H1ZlxPs6@8-S4JX|~<xMa9^Rr)4Q
zPt!T{x=Pn*hi=i2=q>sw{epf=f25C<lS;pGMtMwmT=}A+DH&x#nN}_;Ur{b8&&JZR
z@xVq~7_vSuZAuZF0zk;BnWiRV?z<Yun&9UFrLz<CHdH^x^0BEO<EqmQ8N(H48j`6U
z_y+-`1TgChQi-1669{TkiEhbjQUZ8@D?z;~(MJLi^#Q*paX;|;605*x<vfbO=OtF|
z6TK^S62L{-*X};ioWyt?%yJ``W&3+2&)c~B2scxBu=EFL@+RfrE{~144sw}~02^W~
zPdAQdP(FO<*p335JVBnB3f8~~1Qa_#^nwEb3d>>W2+O?DnZk1DozU(I-nrmcz_-9d
zV7`1}Sb}<_JS-FpJhVr9FN#-O=0Q%r{i~lX0zLuex#@+;jHc&jlC!zYR8lWY6_S(2
zjF~K$Sz}U5PfeMVGhv^W=r>M(I>-GBi)>ZQ{RHOvCI%DwOq>q93;iq4iD<?BhUW#%
z#5myZW?ON5P#@ZoaRNuQsoOldD%ZjPi?C^feek!zx21d&@-8^^$A`Dk02G$ZK_0<D
z`Smw=l@H2=51u?ywqs8nDLXCYz5O7%hV}<{UK08$o;=R?F_w?OUGU`@@Cf)B@Emvr
z9JYh1Al_H(+rP*;u<ydC7wXdP-1sW=xE!qU)0a4yhHIS5&l+hXKZ`Xs3Q2utY&L05
z>RQswnHkN@7G{i`8Lsg+(T>-)b&b)jSSQ3TVi)or)GS@k>1%~_-Y}ds-OAcIBb!ZU
zaz;8=a&oq#r_+{|F`9wpI0(W`Mw=*mn<=YSa~*yr8&=gWc{fsZ$Fh^#^@{H_n`(||
zlR2o+#?oVUI(HDQcpox_(dy?sco0V`7vp9+9Ie_^tV6I3h$GZpsnZMmdx<$h?MciL
z>b}G(aF=YW0f$jZ*(3UXXa|`0CR5)YBB`wBXqA_3`CiFu+w%P;KC2vo3A*>8%lo2D
z{m+ay+*@qBiD5s)Jmdi|?^`~MUEm=p8HalKmNoZ8))*_5%DSD;74mkjq#J47${BV(
zZP*#D;1tHvx}GU$+2-;c2mjWd;9*kgdc${pTzgSsYR6Yx-lYCvhSAaS-^wtIe3~<i
zu`z8#&FcA`osM|C<6qA(I&tl*-~!@M6<0(D)AH#C`4?QTEI;81O!qbTK!r^5r2=${
zE<@MCMdsoI+Z3VqSMZ>0laSXS9evzDk88LLS-1!}xDt858%O(8xX)g`;5}^nLksbf
zFjH!#dMD$Z@lVL;WEK}>bXMsKvJzw;Q(o1#DpjX`C>?xYo*3_lcZkF<Q$XUE&yMl3
z6f$C23|^MO;n9i9s~hfS)%z~|0pjB*s5R$%6}A7=PuCafRoAPoLpQV&Sc{(012Xcd
z{8^uYM}rS<<eta_kq16a9#CS_3)3cM{Gd3=*CiGF0+@;Qb^|Gz;2~~QkbEWK0$+vC
iGDe-ok_osd<!&HR1NtBQ84%_FQT{J}ANaK9|9=OcZxT2F
diff --git a/build-scripts/build-release.py b/build-scripts/build-release.py
index 0e081619601b8..166e353a52bc8 100755
--- a/build-scripts/build-release.py
+++ b/build-scripts/build-release.py
@@ -891,6 +891,8 @@ def _detect_android_api(self, android_home: str) -> typing.Optional[int]:
platform_versions = []
for platform_dir in platform_dirs:
logger.debug("Found Android Platform SDK: %s", platform_dir)
+ if not (platform_dir / "android.jar").is_file():
+ continue
if m:= re_platform.match(platform_dir.name):
platform_versions.append(int(m.group(1)))
platform_versions.sort()
@@ -1248,6 +1250,10 @@ def _build_msvc_cmake(self, arch_platform: VsArchPlatformConfig, dep_roots: list
platform_context = self.get_context(extra_context=arch_platform.extra_context())
build_type = "Release"
+ extra_context = {
+ "ARCH": arch_platform.arch,
+ "PLATFORM": arch_platform.platform,
+ }
built_paths = set(install_path / configure_text(f, context=platform_context) for file_mapping in (self.release_info["msvc"]["cmake"]["files-lib"], self.release_info["msvc"]["cmake"]["files-devel"]) for files_list in file_mapping.values() for f in files_list)
logger.info("CMake builds these files, to be included in the package: %s", built_paths)
@@ -1298,7 +1304,7 @@ def _build_msvc_cmake(self, arch_platform: VsArchPlatformConfig, dep_roots: list
logger.info("Collecting files...")
archive_file_tree = ArchiveFileTree()
archive_file_tree.add_file_mapping(arc_dir="", file_mapping=self.release_info["msvc"]["cmake"]["files-lib"], file_mapping_root=install_path, context=platform_context, time=self.arc_time)
- archive_file_tree.add_file_mapping(arc_dir="", file_mapping=self.release_info["msvc"]["files-lib"], file_mapping_root=self.root, context=self.get_context(), time=self.arc_time)
+ archive_file_tree.add_file_mapping(arc_dir="", file_mapping=self.release_info["msvc"]["files-lib"], file_mapping_root=self.root, context=self.get_context(extra_context=extra_context), time=self.arc_time)
logger.info("Creating %s", zip_path)
with Archiver(zip_path=zip_path) as archiver:
@@ -1489,8 +1495,11 @@ def main(argv=None) -> int:
if args.android_api is None:
with section_printer.group("Detect Android APIS"):
args.android_api = releaser._detect_android_api(android_home=args.android_home)
- if args.android_api is None or not (Path(args.android_home) / f"platforms/android-{args.android_api}").is_dir():
+ if args.android_api is None:
parser.error("Invalid --android-api, and/or could not be detected")
+ android_api_path = Path(args.android_home) / f"platforms/android-{args.android_api}"
+ if not android_api_path.is_dir():
+ parser.error(f"Android API directory does not exist ({android_api_path})")
with section_printer.group("Android arguments"):
print(f"android_home = {args.android_home}")
print(f"android_ndk_home = {args.android_ndk_home}")
diff --git a/build-scripts/pkg-support/android/README.md.in b/build-scripts/pkg-support/android/INSTALL.md.in
similarity index 63%
rename from build-scripts/pkg-support/android/README.md.in
rename to build-scripts/pkg-support/android/INSTALL.md.in
index 4314b74802031..602677335bcc7 100644
--- a/build-scripts/pkg-support/android/README.md.in
+++ b/build-scripts/pkg-support/android/INSTALL.md.in
@@ -1,17 +1,7 @@
-The Simple DirectMedia Layer (SDL for short) is a cross-platform library
-designed to make it easy to write multi-media software, such as games
-and emulators.
+# Using this package
-The Simple DirectMedia Layer library source code is available from:
-https://www.libsdl.org/
-
-This library is distributed under the terms of the zlib license:
-http://www.zlib.net/zlib_license.html
-
-# @<@PROJECT_NAME@>@-@<@PROJECT_VERSION@>@.aar
-
-This Android archive allows use of @<@PROJECT_NAME@>@ in your Android project, without needing to copy any SDL source.
+This package contains SDL built for the Android platform.
## Gradle integration
@@ -65,13 +55,37 @@ python @<@PROJECT_NAME@>@-@<@PROJECT_VERSION@>@.aar -o android_prefix
Add --help
for a list of all available options.
+# Documentation
+
+An API reference, tutorials, and additional documentation is available at:
+
+https://wiki.libsdl.org/SDL3
+
+# Example code
+
+There are simple example programs available at:
+
+https://examples.libsdl.org/SDL3
+
+# Discussions
+
+## Discord
+
+You can join the official Discord server at:
+
+https://discord.com/invite/BwpFGBWsv8
+
+## Forums/mailing lists
+
+You can join SDL development discussions at:
+
+https://discourse.libsdl.org/
+
+Once you sign up, you can use the forum through the website or as a mailing list from your email client.
-Look at the example programs in ./examples (of the source archive), and check out online documentation:
- SDL3/FrontPage - SDL Wiki
+## Announcement list
-Join the SDL discourse server if you want to join the community:
- https://discourse.libsdl.org/
+You can sign up for the low traffic announcement list at:
+https://www.libsdl.org/mailing-list.php
-That’s it!
-Sam Lantinga slouken@libsdl.org
diff --git a/build-scripts/pkg-support/mingw/INSTALL.md b/build-scripts/pkg-support/mingw/INSTALL.md
new file mode 100644
index 0000000000000…83ea472eeed35
— /dev/null
+++ b/build-scripts/pkg-support/mingw/INSTALL.md
@@ -0,0 +1,53 @@
+
+# Using this package
+
+This package contains SDL built for the mingw-w64 toolchain.
+
+The files for 32-bit architecture are in i686-w64-mingw32
+The files for 64-bit architecture are in x86_64-w64-mingw32
+
+You can install them to another location, just type make
for help.
+
+To use this package, point your include path at arch/include and your library path at arch/lib, link with the SDL3 library and copy arch/bin/SDL3.dll next to your executable.
+
+e.g.
+sh +gcc -o hello.exe hello.c -Ix86_64-w64-mingw32/include -Lx86_64-w64-mingw32/lib -lSDL3 +cp x86_64-w64-mingw32/bin/SDL3.dll . +./hello.exe +
+
+# Documentation
+
+An API reference, tutorials, and additional documentation is available at:
+
+https://wiki.libsdl.org/SDL3
+
+# Example code
+
+There are simple example
(Patch may be truncated, please check the link at the top of this post.)