Simple Directmedia Layer
Go to file
Simon McVittie e0d904e90b sdl2-config.in: Deprecate sdl2-config
Library-specific foo-config scripts duplicate very similar logic across
various different projects, and tend to break cross-compiling, multilib
(gcc -m32), Debian/Ubuntu multiarch and so on by only being able to have
one sdl2-config at a time as the first one in the PATH.

The direct replacement is pkg-config(1) or a compatible reimplementation
like pkgconf(1), which relies on each library installing declarative
metadata, like SDL's sdl2.pc (available since at least 2.0.0) and
centralizes the logic into the pkg-config/pkgconf tool.

Most uses of `sdl2-config --foo` can be replaced by something similar
to `${PKG_CONFIG:-pkg-config} --foo sdl2`. Instead of adding a custom
sdl2-config to the PATH or using its --prefix or --exec-prefix options,
users of a custom installation prefix can use any of pkg-config's
non-SDL-specific ways to influence the result, for example setting
PKG_CONFIG_PATH, PKG_CONFIG_SYSROOT_DIR or PKG_CONFIG_LIBDIR environment
variables, or setting the PKG_CONFIG environment variable to point to
a wrapper script.

For Autotools specifically, the replacement for AM_PATH_SDL2 (which
will be officially deprecated in a subsequent commit) is
PKG_CHECK_MODULES.

CMake has its own semi-declarative mechanism for dependency discovery,
"config packages", and the SDL build already installs a config
package. There's a good example of using a config package to discover
SDL in `cmake/test/`.

Meson natively supports pkg-config, and already uses it in preference
to sdl2-config.

Other build systems can run pkg-config instead of sdl2-config,
preferably checking the PKG_CONFIG environment variable first.
https://github.com/ioquake/ioq3 is a good example of a project doing
this correctly.

Helps: #6140, #3516
Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-10-31 07:06:03 -07:00
.github workflows: Check we can screen-scrape the SDL_REVISION from Linux builds 2022-10-22 09:27:10 -07:00
VisualC updated VS project file 2022-10-06 18:03:28 +03:00
VisualC-GDK move SDL_windowstaskdialog.h contents into SDL_windowsmessagebox.c 2022-09-16 20:03:50 +03:00
VisualC-WinRT Add UWP-ARM64 Support. 2022-10-29 09:43:26 -07:00
Xcode cmake+xcode: only create SDL2::SDL2main target when it does not exist again 2022-10-04 21:15:09 +02:00
Xcode-iOS/Demos Updated iOS demos Xcode project 2022-09-28 01:10:23 -07:00
acinclude autotools: revised and silenced esound detection a bit. 2022-09-24 20:01:04 +03:00
android-project Reverted game controller buttons from interacting with message box dialogs 2022-10-06 12:10:46 -07:00
android-project-ant
build-scripts build-scripts/fnsince.pl: Deal with new point-release system. 2022-10-25 14:03:32 -04:00
cmake On x86, pass -nodefaultlib to linker when wanting to avoid the C library 2022-10-22 09:28:00 -07:00
docs docs: Add notes about Emscripten audio quirks. 2022-10-28 16:08:23 -04:00
include SDL_HINTS.H: Correct spelling mistake 2022-10-30 11:24:42 -04:00
mingw/pkg-support/cmake cmake: else() does not need an argument 2022-10-20 13:29:35 +02:00
src SDL_KMSDRMOPENGLES.H: Correct spelling mistakes 2022-10-30 11:24:42 -04:00
test Fixed build 2022-10-25 10:30:56 -07:00
visualtest remove all unnecessary stuff from visualtest configury. 2021-12-21 20:01:02 +03:00
wayland-protocols Add support for X11 primary selection (#6132) 2022-09-14 09:28:35 -07:00
.clang-format Disable formatting not supported by Visual Studio 2019 2022-05-27 15:29:21 -07:00
.editorconfig .editorconfig: Use correct path for wayland-protocols 2022-08-23 06:28:04 -07:00
.gitignore build: Expand version info in SDL_REVISION and SDL_GetRevision() 2022-10-22 09:27:10 -07:00
.wikiheaders-options wikiheaders.pl: changes to make this usable with external projects. 2022-06-15 23:26:24 -04:00
Android.mk fix permissions of Android.mk 2022-10-01 04:25:40 +03:00
BUGS.txt
CMakeLists.txt On x86, pass -nodefaultlib to linker when wanting to avoid the C library 2022-10-22 09:28:00 -07:00
CREDITS.txt
INSTALL.txt INSTALL.txt: Say "macOS" instead of "Mac OS X" in modern times. 2022-03-15 13:07:55 -04:00
LICENSE.txt Updated copyright for 2022 2022-01-03 09:40:21 -08:00
Makefile.in build: Add a mechanism to mark builds with vendor info 2022-10-22 09:27:10 -07:00
Makefile.minimal build libSDL2_test too with Makefile.minimal 2021-11-14 01:10:32 +03:00
Makefile.os2 watcom: add ENABLE_WERROR option to makefiles 2022-10-08 23:41:07 +02:00
Makefile.pandora more fixes to standalone makefiles. 2021-11-13 21:56:20 +03:00
Makefile.w32 watcom: add ENABLE_WERROR option to makefiles 2022-10-08 23:41:07 +02:00
README-SDL.txt
README.md Update and rename README.txt to README.md 2021-03-20 18:46:37 -04:00
SDL2.spec.in license: Fixed references to COPYING.txt that are now LICENSE.txt. 2021-02-18 11:07:26 -05:00
SDL2Config.cmake.in ci: Test cmake build script on Android 2022-06-15 11:11:49 -07:00
TODO.txt Fixed up legacy MoinMoin URLs at wiki.libsdl.org 2021-04-01 12:20:33 -04:00
WhatsNew.txt Revert "Disable the RAWINPUT joystick driver by default" 2022-10-17 17:43:06 -07:00
autogen.sh Simplified autogen.sh, thanks to @smcv for the tip 2022-05-05 11:54:24 -07:00
cmake_uninstall.cmake.in
configure build: Regenerate ./configure 2022-10-22 09:27:10 -07:00
configure.ac build: Add a mechanism to mark builds with vendor info 2022-10-22 09:27:10 -07:00
sdl2-config-version.cmake.in Add documentation to autotoo'ls sdl2-config-version.cmake.in 2022-05-31 00:10:55 +02:00
sdl2-config.cmake.in cmake: only add -Wl,--undefined=WinMain when building an executable 2022-09-27 07:00:02 +03:00
sdl2-config.in sdl2-config.in: Deprecate sdl2-config 2022-10-31 07:06:03 -07:00
sdl2.m4 Fixed macOS framework detection in sdl2.m4 2022-08-26 09:12:56 -07:00
sdl2.pc.in Compatible with including as <SDL2/SDL.h> 2022-07-28 20:34:34 -07:00

README.md

Simple DirectMedia Layer (SDL) Version 2.0

https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting with README.md

Enjoy!

Sam Lantinga (slouken@libsdl.org)