Sam Lantinga
9f8b68a278
Fixed building without linux/input.h
...
https://github.com/libsdl-org/SDL/issues/6169
2022-11-11 10:25:52 -08:00
Anonymous Maarten
61297f703a
cmake: on Apple, check for presence of an OBJC compiler
2022-11-03 15:03:47 +01:00
Luca Lolli
b50e429354
Fix compilation for .m files extension
2022-11-03 15:03:47 +01:00
Anonymous Maarten
4c704ecfdd
cmake: use SDL2-static as static library output name when prefix/static == ""/".lib"
...
Apparently, some clang@Windows compilers do this.
2022-11-01 13:53:09 -07:00
Anonymous Maarten
c3b13346e0
On x86, pass -nodefaultlib to linker when wanting to avoid the C library
2022-10-22 09:28:00 -07:00
Simon McVittie
4ca5ea5b7e
build: Add a mechanism to mark builds with vendor info
...
Downstream distributors can use this to mark a version with their
preferred version information, like a Linux distribution package version
or the Steam revision it was built to be bundled into, or just to mark
it with the vendor it was built by or the environment it's intended to
be used in.
For instance, in Debian I'd use this by configuring with:
--enable-vendor-info="${DEB_VENDOR} ${DEB_VERSION}"
to get a SDL_REVISION like:
release-2.24.1-0-ga1d1946dc (Debian 2.24.1+dfsg-2)
which gives a Debian user enough information to track down the patches
and build-time configuration that were used for package revision 2.
In Autotools and CMake, this is a configure-time option like any other,
and will go into both SDL_REVISION (via SDL_revision.h) and
SDL_GetRevision().
In other build systems (MSVC, Xcode, etc.), defining the
SDL_VENDOR_INFO macro will get it into the output of SDL_GetRevision(),
although not SDL_REVISION.
Resolves: https://github.com/libsdl-org/SDL/issues/6418
Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-10-22 09:27:10 -07:00
Simon McVittie
2dc788cb9f
build: Expand version info in SDL_REVISION and SDL_GetRevision()
...
Instead of using a URL and git sha1, this uses `git describe` to
describe the version relative to the nearest previous git tag, which
gives a better indication of whether this is a release, a prerelease,
a slightly patched prerelease, or a long way after the last release
during active development.
This serves two purposes: it makes those APIs more informative, and it
also puts this information into the binary in a form that is easy to
screen-scrape using strings(1). For instance, if the bundled version of
SDL in a game has this, we can see at a glance what version it is.
It's also shorter than using the web address of the origin git
repository and the full git commit sha1.
Also write the computed version into a file ./VERSION in `make dist`
tarballs, so that when we build from a tarball on a system that doesn't
have git available, we still get the version details.
For the Perforce code path in showrev.sh, output the version number
followed by the Perforce revision, in a format reminiscent of
`git describe` (with p instead of g to indicate Perforce).
For the code path with no VCS available at all, put a suffix on the
version number to indicate that this is just a guess (we can't know
whether this SDL version is actually a git snapshot or has been
patched locally or similar).
Resolves: https://github.com/libsdl-org/SDL/issues/6418
Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-10-22 09:27:10 -07:00
Anonymous Maarten
5ed091c12d
cmake: fix reporting of SDL_TESTS
2022-10-21 15:32:05 +02:00
Anonymous Maarten
96361fc476
cmake: create and install sdl2.pc for MSVC & WATCOM
2022-10-20 19:02:31 +02:00
Anonymous Maarten
d542f43b2a
cmake: add SDL_INSTALL_CMAKEDIR cache variable to override location of cmake config files
2022-10-19 16:41:25 +02:00
Wouter Wijsman
428b5ae546
PSP: Reorder extra imports
2022-10-18 10:34:51 +02:00
Pierre Wendling
392f3882d0
N3DS: Use SDL_Sensor instead of Joystick sensors.
2022-10-10 08:50:59 -07:00
Pierre Wendling
27557b62b6
N3DS: Prefix timer sources with N3DS_
.
2022-10-10 08:50:59 -07:00
Pierre Wendling
655275378d
N3DS port (squashed)
...
A dedicated renderer using Citro3D would likely allow for better
much better graphical performances.
2022-10-10 08:50:59 -07:00
Aaron Barany
6ffc45b0ed
Removed "undefined" argument for Apple platforms.
...
This is incompatible with enabling bitcode, such as with iOS builds. The
default value for "undefined" is "error" so this option should be
redundant.
2022-10-09 18:57:55 -07:00
Anonymous Maarten
37beabd11c
SDL_mslib.c: clang-cl does not support /GL-
2022-10-08 23:41:07 +02:00
Anonymous Maarten
07225d2e26
cmake: fix check for -marm
...
This fixes the following warning:
clang: warning: argument unused during compilation: '-marm' [-Wunused-command-line-argument]
2022-10-08 23:41:07 +02:00
Anonymous Maarten
45da133999
cmake: don't error on apple when using deprecated declarations
2022-10-08 23:41:07 +02:00
Anonymous Maarten
77822ed166
cmake: add SDL_WERROR to conditionally enable/disable -Werror
2022-10-08 23:41:07 +02:00
Anonymous Maarten
1064fdee8c
cmake: append to COMPILE_FLAGS property
2022-10-08 23:41:07 +02:00
Ozkan Sezer
fa7ffa4e88
change the iconv configuration option names to be more verbose.
2022-10-06 03:37:50 +03:00
Ozkan Sezer
294ccba0a2
better wording for --enable-iconv description
2022-10-05 23:56:56 +03:00
Anonymous Maarten
c9f60cce40
cmake+autotools: add option to enable/disable iconv
2022-10-05 10:00:28 -07:00
Anonymous Maarten
d0657fde30
cmake: Use DWARF 4 debug information when building using mingw
...
See f18fae4c68
2022-10-04 18:03:57 -07:00
Anonymous Maarten
70214ed3ed
cmake: append to CMAKE_MODULE_PATH instead of overwriting
2022-09-27 13:13:52 -07:00
Anonymous Maarten
a193a03d81
cmake: add -Wno-declaration-after-statement to cpu-features.c alone
2022-09-27 13:13:52 -07:00
Anonymous Maarten
2f9c9b5f80
cmake: make sure check_* uses 2 different variables for clock_gettime
2022-09-27 03:47:20 +03:00
Anonymous Maarten
bfecd78159
cmake: use check_symbol_exists to check dlopen + need for dl library
2022-09-27 03:47:20 +03:00
Ozkan Sezer
f6c9b06562
cmake: output libSDL2-2.0.0.dylib like autotools, not libSDL2-2.0.dylib.
...
libSDL2-2.0.dylib is now installed as a symlink to libSDL2-2.0.0.dylib :
$ ls -l *.dylib
-rwxr-xr-x. 1 ozkan ozkan 1755488 Sep 23 23:53 libSDL2-2.0.0.dylib
lrwxrwxrwx. 1 ozkan ozkan 19 Sep 23 23:53 libSDL2-2.0.dylib -> libSDL2-2.0.0.dylib
lrwxrwxrwx. 1 ozkan ozkan 17 Sep 23 23:53 libSDL2.dylib -> libSDL2-2.0.dylib
Reference issue: https://github.com/libsdl-org/sdl12-compat/issues/217
2022-09-23 23:56:04 +03:00
Anonymous Maarten
3b20e0ecef
cmake: only add -Wl,--undefined=WinMain when building an executable
2022-09-19 05:00:24 +03:00
Ivan Epifanov
202dfea502
Vita: drop memory defines
2022-09-17 10:12:46 -07:00
Ivan Epifanov
7115ceb775
Vita: restore sceClibMemcmp
2022-09-17 10:12:46 -07:00
quyykk
37effc7700
Build the offscreen video driver by default.
2022-09-15 10:59:37 -07:00
Rinnegatamante
eb0bf2c29d
vita: Drop memcmp redirect to sceClibMemcmp.
2022-09-12 13:32:48 -07:00
Ozkan Sezer
5b2884cb02
apply commit d0a3570300
to cmake side too.
2022-09-12 20:28:00 +03:00
Sam Lantinga
181265ba71
Removed unused variable
2022-09-05 11:36:20 -07:00
Sam Lantinga
acf397b4df
Actually, DYLIB_COMPATIBILITY_VERSION shouldn't be updated for a stable point release
...
@smcv
2022-09-05 11:21:13 -07:00
Cameron Cawley
fd93f817ba
Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008
2022-09-05 09:01:31 -07:00
Sam Lantinga
ef988fe184
Only use CETCOMPAT on x86/x64 platforms
...
Fixes https://github.com/libsdl-org/SDL/issues/6173
2022-09-05 08:59:17 -07:00
Sam Lantinga
4e98ba612b
Set DYLIB_COMPATIBILITY_VERSION to DYLIB_CURRENT_VERSION to match autotools
...
Autotools sets both versions to the same value, so Xcode and CMake need to match for the libraries to be compatible between the different builds.
See these for details:
https://github.com/libsdl-org/sdl12-compat/pull/207
https://github.com/libsdl-org/SDL/issues/2934
https://stackoverflow.com/questions/67055770/usage-of-current-version-and-compatibility-version-on-macos
2022-09-05 08:28:06 -07:00
Gleb Mazovetskiy
803924b223
CMake: Make SDL_SHARED/STATIC/TEST options
...
This makes it easier to set these options when SDL is used as a subprojects.
Since CMake v3.13+, one can simply `set(SDL_TEST OFF)` before include the SDL2 subproject because options do not override existing variables. (https://cmake.org/cmake/help/latest/policy/CMP0077.html#policy:CMP0077 )
This is also true for `set(CACHE)` commands but only in CMake v3.21+ (https://cmake.org/cmake/help/latest/policy/CMP0126.html ).
2022-08-29 17:47:32 -07:00
Ludovico de Nittis
e8cb4da71f
Add utility function to detect if SDL is inside a sandbox
...
Refactor the previous sandbox check in a standalone function that also
includes Snap support.
Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
2022-08-29 06:30:40 -07:00
Anonymous Maarten
32c4996c04
cmake: add SDL_IBUS option to enable/disable DBUS + test sys/inotify.h
2022-08-25 18:12:16 -07:00
Anonymous Maarten
c8b56ee5e6
cmake: add SDL_DBUS option to enable/disable DBUS
2022-08-25 18:12:16 -07:00
Anonymous Maarten
032ff64041
cmake: OpenIndiana announces SunOS, which is the former name of Solaris
2022-08-25 18:12:16 -07:00
Anonymous Maarten
711846c1f4
cmake: fix build with SDL_WAYLAND_SHARED=OFF
2022-08-25 17:15:54 -07:00
Cameron Gutman
2ceea46061
cmake: Enable CET compatibility for x86/x64 targets using VS 16.7+
2022-08-24 11:29:36 -07:00
Sam Lantinga
6e9c14e550
Updated to version 2.25.0 for development
2022-08-19 09:38:42 -07:00
Sam Lantinga
8c9beb0c87
Updated to version Updated to version 2.24.0 for release
2022-08-19 08:44:09 -07:00
Sam Lantinga
f1416ef2ba
Updated to version 2.23.2 for release candidate
2022-08-12 20:27:22 -07:00
Aaron Barany
3f19e36d12
Disable declaration-after-statement warning on Android
...
External .c files are brought in that don't adhere to this requirement for
pre-C99 code and causes the build to break with the latest NDK.
Fixes #6019
2022-08-08 08:31:40 -07:00
Anonymous Maarten
17b329d199
cmake: enable disabing hidapi
2022-08-05 13:06:51 -07:00
Anonymous Maarten
a4e6f3ca9d
cmake: when there are alternatives, don't use libusb by default
2022-08-05 13:06:51 -07:00
Francisco Javier Trujillo Mata
4564e89825
put files at the same line
2022-08-02 11:40:31 -07:00
Daniel Santos
147a71b976
Finish dummy driver
2022-08-02 11:40:31 -07:00
Daniel Santos
2660449c6c
Add dummy driver
2022-08-02 11:40:31 -07:00
Daniel Santos
a81aa99298
Add prim video support
2022-08-02 11:40:31 -07:00
Francisco Javier Trujillo Mata
46f95a7a5f
Create dummy PS2 Video driver
2022-08-02 11:40:31 -07:00
Sam Lantinga
954bbdf3ae
Allow emscripten platform to build without threads
2022-08-01 09:51:21 -07:00
Sam Lantinga
e4cc076a79
Threads are used by many SDL subsystems and may not be disabled.
...
Fixes https://github.com/libsdl-org/SDL/issues/5095
2022-08-01 09:17:05 -07:00
Anonymous Maarten
83f5bbdf25
cmake: define SDL_STATIC_LIB for static SDL2 library
2022-07-29 15:05:19 +02:00
Anonymous Maarten
bdd1d035b7
cmake: Don't add /NODEFAULTLIB to link flags when building SDL-static
2022-07-29 15:05:19 +02:00
Anonymous Maarten
02c8747176
math.h does not always provide M_PI
...
This fixes the following error when building with SDL_LIBC:
SDL\test\testautomation_math.c(1965): error C2065: 'M_PI': undeclared identifier
2022-07-27 09:10:18 -07:00
Anonymous Maarten
5da85376b9
stdlib: move all mslibc functions to SDL_mslibc.c
...
This allows disabling LTO on them by only specifying a single file.
2022-07-27 09:07:56 -07:00
Anonymous Maarten
5c70e45c53
cmake: don't use result of 'find_library' for Android libraries
2022-07-26 14:24:36 -07:00
Anonymous Maarten
4690689a4c
cmake: on Apple, don't use find_library for frameworks + use EXTRA_LDFLAGS
2022-07-26 14:24:36 -07:00
Anonymous Maarten
fc2497b109
Revert "cmake: don't add -mwindows to link flags in sdl2.pc"
...
This reverts commit d211aaddc1
.
2022-07-23 18:05:35 +02:00
Anonymous Maarten
d211aaddc1
cmake: don't add -mwindows to link flags in sdl2.pc
2022-07-23 15:29:39 +02:00
Anonymous Maarten
d63a699e01
cmake: by default, disable install target when building SDL as a subproject
2022-07-23 15:29:13 +02:00
Ivan Epifanov
0a1641635d
VIta: enable arm neon/simd optimisations
2022-07-21 10:45:45 -07:00
Anonymous Maarten
8f33de8462
cmake: set CMP0054 policy to NEW
2022-07-21 14:08:23 +02:00
Francisco Javier Trujillo Mata
e4a8087551
Initial Audio driver
2022-06-27 15:18:48 -07:00
Francisco Javier Trujillo Mata
7fd46ec581
Initial PS2_Joystick implementation
2022-06-27 00:32:43 -07:00
Francisco Javier Trujillo Mata
84d69da4e1
Initial SDL_ps2_main implementation
2022-06-27 00:32:43 -07:00
Anonymous Maarten
fa39f73552
cmake: add generated files to a custom target ( #5851 )
...
This way, headers are only generated once .
2022-06-26 23:34:30 +02:00
Anonymous Maarten
76f40e2b3b
cmake: remove stray debug line
2022-06-24 19:12:39 +02:00
Anonymous Maarten
ca30936314
cmake: check and use clock_gettime by default on android
2022-06-24 19:12:15 +02:00
hsdk123
bd49696133
cmake: use CMAKE_CURRENT_BINARY_DIR instead of CMAKE_BINARY_DIR ( #5834 )
...
* Update install directory to match generated
https://github.com/libsdl-org/SDL/blob/main/CMakeLists.txt#L3122
Sets `SDL2Config.cmake` to `CMAKE_BINARY_DIR`, whereas the install file tries to find it from a different location.
* cmake: use CMAKE_CURRENT_BINARY_DIR instead of CMAKE_BINARY_DIR
* ci: test SDL included as a cmake subproject
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
2022-06-23 14:18:44 +02:00
Anonymous Maarten
78a3751659
cmake+ci: fix+test sdl2-config + sdl2.pc for all supported platforms
2022-06-23 14:17:38 +02:00
Anonymous Maarten
c61367c273
cmake: do list(APPEND SDLMAIN_SOURCES)
2022-06-23 14:17:38 +02:00
Anonymous Maarten
3617691fe0
cmake: install Android.mk files for ndk-build
...
This allows including SDL2 with ndk-build using
NDK_MODULE_PATH + import-module
An install tree looks like:
```
`-- share
|-- aclocal
| `-- sdl2.m4
|-- licenses
| `-- SDL2
| `-- LICENSE.txt
`-- ndk-modules
|-- SDL2
| `-- Android.mk
|-- SDL2-static
| `-- Android.mk
|-- SDL2main
| `-- Android.mk
`-- SDL2test
`-- Android.mk
```
The generated `/share/ndk-modules/SDL2/Android.mk` contains:
```
LOCAL_PATH := $(call my-dir)
_IMPORT_PREFIX := $(LOCAL_PATH)/../../..
include $(CLEAR_VARS)
LOCAL_MODULE := SDL2
LOCAL_SRC_FILES := $(_IMPORT_PREFIX)/lib/libSDL2.so
LOCAL_CPP_FEATURES := rtti exceptions
LOCAL_EXPORT_C_INCLUDES := ${_IMPORT_PREFIX}/include\
${_IMPORT_PREFIX}/include/SDL2
include $(PREBUILT_SHARED_LIBRARY)`
```
2022-06-23 14:17:38 +02:00
Anonymous Maarten
b3159714db
cmake: set HAVE_STATIC_PIC for correct summary
2022-06-23 14:17:38 +02:00
Anonymous Maarten
de409d2a81
cmake: remove spurious UNIX_SYS in dep_option
2022-06-23 14:17:38 +02:00
Anonymous Maarten
2f321fb73c
cmake: disable UNIX_SYS by default for Android
...
This force disables SDL_OSS, SDL_ALSA, SDL_JACK, SDL_ESD,
SDL_PIPEWIRE, SDL_ARTS, SDL_NAS, SDL_SNDIO, SDL_LIBSAMPLERATE,
SDL_RPATH, SDL_CLOCK_GETTIME and SDL_X11.
2022-06-23 14:17:38 +02:00
Anonymous Maarten
5f4e9fb9b3
cmake: use add_custom_command to copy include files
...
Otherwise, the make program would not rebuild when a header got changed
2022-06-22 17:04:58 +02:00
Anonymous Maarten
485b1037b0
cmake: copy all headers to the build directory and exclusively use that
2022-06-22 17:04:58 +02:00
Anonymous Maarten
3e1021239a
cmake: also add the recently-added include folder to the public interface
2022-06-22 17:04:58 +02:00
Anonymous Maarten
4ad4fe67c7
cmake: install generated SDL_config.h
...
The generated SDL_config.h recently changed location, so update the install.
2022-06-22 17:04:58 +02:00
Anonymous Maarten
d460000b45
cmake: use add_definitions for compatibility with cmake 3.0
2022-06-20 19:29:13 +02:00
Ozkan Sezer
bdcdbfc757
Enable D3D12 detection when using mingw-w64 with cmake too
...
c.f.: autotools commit 59fb7acbf7
2022-06-19 11:04:24 +03:00
Ozkan Sezer
a8d41b3b45
check for shellscalingapi.h presence instead of WINVER >= 0x0603
2022-06-18 13:00:44 -07:00
Anonymous Maarten
b19099d557
cmake: use find_package(SampleRate) to find samplerate + allow targets
2022-06-16 16:47:19 -07:00
Sam Lantinga
b004133f08
Updated to version 2.23.1 for pre-release checkpoint
2022-06-16 12:50:19 -07:00
Francisco Javier Trujillo Mata
fc78d0ff39
Fix Compilation CI
2022-06-16 02:04:32 +03:00
Francisco Javier Trujillo Mata
6b03c1adf6
Add filesystem driver
2022-06-15 15:15:26 -07:00
Francisco Javier Trujillo Mata
52f00833b0
Add Thread drivers
2022-06-15 15:15:26 -07:00
Francisco Javier Trujillo Mata
217d3a6dab
Add systimer support
2022-06-15 15:15:26 -07:00
Francisco Javier Trujillo Mata
580416d3c8
Initial CMake configuration
2022-06-15 15:15:26 -07:00
Alex Richardson
cd8f57ee4e
cmake: freebsd: Don't REQUIRE libunwind.pc on FreeBSD
...
FreeBSD includes the libunwind APIs in in the base system libgcc_s and
does not install a .pc file for it.
This change fixes the build on FreeBSD for me.
2022-06-15 14:18:27 -07:00
Anonymous Maarten
ae7446a959
stlib: Extract SDL_memcpy and SDL_memset to its own file respectively
...
This is done such that we can disable LTO for these 2 functions when
building with MSVC.
This is due to a limitation of Link Time Code Generation (LTCG).
Code generation might generate a new reference to memset after linking
has started. The LTCG must make assumptions about where memset is
defined which is normally the C runtime.
2022-06-15 14:17:35 -07:00