CMakeLists.txt


Log

Author Commit Date CI Message
chalonverse b9c2ad83 2022-06-07T22:19:58 Added additional check for HAVE_D3D12_H and missing SDL_VIDEO_RENDER_D3D12 in SDL_config.h.cmake
Anonymous Maarten ad272ac6 2022-06-08T00:32:15 Set POSITION_INDEPENDENT_CODE property on SDL2 for CMake 3.0
Anonymous Maarten 298ad937 2022-06-08T01:10:12 cmake: wrap SDL_STATIC_PIC in double quotes (aka never trust user input) Suggested by @Wohlstand
chalonverse 7a335df9 2022-06-07T16:11:25 Updated CMakeLists.txt and configure.asc/script so that it checks for the required Windows SDK version before it enables the d3d12 renderer. Also fixed reported warnings in some builds.
Anonymous Maarten 5abd6769 2022-06-07T04:28:55 Allow empty default values to the dep_option macro
chalonverse 40828218 2022-06-06T17:42:30 DirectX 12 Renderer (#5761) * DirectX 12 Renderer (27 squashed commits) * Add missing SDL_hidapi.h of merge of SDL.vcxproj.filters * Fixed OpenWatcom build failure * Dynapi fix Co-authored-by: Ryan C. Gordon <icculus@icculus.org>
Anonymous Maarten fd3f3810 2022-06-04T03:16:27 Initialize SDL_STATIC_PIC from CMAKE_POSITION_INDEPENDENT_CODE
Simon McVittie 65a3453b 2022-05-26T16:02:15 build: Compile with large inode number support where possible On filesystems with large inode numbers, such as overlayfs, attempting to stat() a file on a 32-bit system using legacy syscalls can fail with EOVERFLOW. If we opt-in to more modern "large file support" syscalls, then source code references to functions like stat() are transparently replaced with ABIs that support large file sizes and inode numbers, such as stat64(). This cannot safely be done globally by Linux distributions, because some libraries expose types like `off_t` or `struct stat` in their ABI, meaning that enabling large file support would be an incompatible change that would cause crashes. However, SDL appears to be careful to avoid these types in header files, so it should be OK to enable this. Signed-off-by: Simon McVittie <smcv@collabora.com>
Anonymous Maarten 799d39a3 2022-06-03T23:08:22 Make the sdl2-config script relocatable
Anonymous Maarten 5ec2d46f 2022-06-03T20:12:52 cmake: make SDL2Config.cmake compatible with autotools' sdl2-config.cmake
Anonymous Maarten 8e13cc30 2022-05-30T00:46:00 cmake: add 'compatible interface properties' to allow enforcing SDL2 sharedness
Anonymous Maarten 1087eaad 2022-05-27T01:40:11 cmake: install SDL2::SDL2test when configuring with SDL2_TEST enabled
Tim Schumacher 12cc636c 2022-05-21T23:33:31 Make sdl2-config prefixes configurable again The installation prefix ended up being hard-coded into the `sdl2-config` script after the placeholders were accidentally removed in 6956f4aa1982b66b234026b46f7bb2dd44c67894.
Sam Lantinga 6da6a6cb 2022-05-21T13:51:21 Make sure Objective C files are built with the same flags as C files. Fixes https://github.com/libsdl-org/SDL/issues/5707
Cameron Cawley e0f3da49 2022-05-12T12:18:23 Remove unused SDL_ASSEMBLY_ROUTINES define
Alex Szpakowski ec8fa577 2022-05-07T21:57:23 macOS: always use Objective-C ARC (automatic ref counting). Change Cocoa SDL_VideoData and SDL_WindowData implementations from C structs to Objective-C objects, since bridging between C and ObjC is easier that way.
Cameron Cawley 9ef68857 2022-05-08T15:53:43 Fix MSVC ARM32 builds
Sam Lantinga 0c196021 2022-05-06T07:59:36 Applied 0004-Define-crt-macros.patch.txt from vcpkg ports
Simon McVittie 38ef6789 2020-11-25T13:30:29 test: Add a `make install` target for the tests This makes it more convenient to compile them alongside SDL, install them in an optional package and use them as smoke-tests or diagnostic tools. The default installation directory is taken from GNOME's installed-tests, which seems as good a convention as any other: https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 7d2808e3 2022-04-12T13:33:58 test: Run selected noninteractive tests at build-time In Autotools, these are run by `make -C ${builddir}/test check`. In CMake, they're run by `make -C ${builddir} test` or `ninja -C ${builddir} test` or `ctest --test-dir ${builddir}`. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie fff97c95 2022-05-04T16:40:11 build: Mechanically generate ABI versions from version number If we're strict about applying something resembling semantic versioning to the "marketing" version number, then we can mechanically generate the ABI version from it. This limits the range of valid micro versions (patchlevels) to 0-99. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie cd7c2f1d 2022-05-03T15:16:11 Switch versioning scheme to be the same as GLib and Flatpak For stable releases, this gives us the ability to make bugfix-only point releases such as 2.24.1 if we want to, and distinguish between them programmatically. For example, this ability could have been useful after 2.0.16 to fix Xwayland regressions, and after 2.0.18 to fix event loop regressions. For development releases, this gives us the ability to make multiple prereleases during the same feature cycle, and distinguish between them programmatically. For example, this would have been useful during 2.0.22 development, which went through three prereleases before reaching the final release. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 63814ec7 2022-05-03T14:39:00 Add static assertions that the version number is consistent Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 22002d91 2022-05-03T14:09:12 docs/release_checklist.md: Document how/where to bump version numbers Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 2021a109 2022-05-03T20:37:03 cmake: Defer test subproject until after defining install/uninstall It looks as though something in the test subproject "leaks" into the main build system, causing us to try to install ${builddir}/test/sdl2.pc instead of the correct ${builddir}/sdl2.pc. Moving the tests subproject further down avoids this. Resolves: https://github.com/libsdl-org/SDL/issues/5604 Signed-off-by: Simon McVittie <smcv@collabora.com>
Ryan C. Gordon 7d7ec9c9 2022-04-26T16:41:28 x11: Remove XVidMode and Xinerama support. Fixes #1782.
Ozkan Sezer e9ff4fdd 2022-04-25T23:55:50 add SDL_bsearch
Sam Lantinga fa29e2d7 2022-04-25T13:45:51 Updated to version 2.0.23 for development
Ryan C. Gordon 634b9edc 2022-04-15T20:50:55 cmake: Fixed indenting and some oldschool `endif(TEXT)` things.
Semphris dc5bc523 2022-04-15T17:11:29 Added CMake option to disable the installer
Ivan Epifanov b7599613 2022-04-11T23:31:09 Vita: fix VIDEO_VITA_PVR flag
Sam Lantinga 505d6a4a 2022-04-08T18:18:56 Update version to 2.0.22 for release
Ozkan Sezer c0bb39e5 2022-04-02T02:50:02 check for HAVE_ROAPI_H in cmake and autotools, and update SDL_config_windows.h and SDL_config_winrt.h
Jaylon Gowie 8c542a35 2022-03-29T19:08:56 Desktop OpenGL 1.X/2.X PSVita Support
Ivan Epifanov cbdb67b4 2022-03-30T00:12:42 Vita: add SDL_GetPreferredLocales support
Ivan Epifanov 178ac196 2022-03-29T23:48:08 Vita: add audio capture support
Sam Lantinga d3cc5764 2022-03-18T07:36:16 Modern CMake doesn't need "LANGUAGE C" for Objective-C CMake 3.19 fails to compile Objective-C with that property set Fixes https://github.com/libsdl-org/SDL/issues/5418
pionere 85dff3e4 2022-03-16T08:58:52 emscripten: obey enable-misc/SDL_MISC settings
Ozkan Sezer 61a93d3c 2022-03-15T23:10:02 minor whitespace cleanup.
Ryan C. Gordon 3ab739af 2022-03-13T12:10:52 cmake: Make test code use proper C main functions. Fixes #5021.
Ozkan Sezer 4a43321c 2022-02-23T18:10:02 cmake: Fix bug #5361. src/joystick/*.c wasn't unconditionally added to source list even though joystick is an SDL subsystem. Also removed the `SDL_JOYSTICK AND NOT APPLE` condition from src/joystick/dummy/*.c source addition: the OSX unresolved symbols issue, if it really is there, should be fixed separately. Fixes https://github.com/libsdl-org/SDL/issues/5361, i.e. build failures when SDL_JOYSTICK and SDL_HAPTIC are disabled.
Ozkan Sezer b5614d0c 2022-02-04T20:05:14 cmake: fix UWP joystick. from: https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/0005-Fix-uwp-joystick.patch
pionere ff2d62d8 2022-01-15T12:27:25 dlopen is not a subsystem
pionere fa8075c4 2022-01-12T17:21:06 add audio/video dummies if nothing else available
pionere 39c723fc 2022-01-12T17:18:37 fix HAVE_SDL_VIDEO flag of CMakeLists.txt [IOS OR TVOS]
pionere 3dba2a73 2022-01-12T17:17:48 fix HAVE_SDL_AUDIO flag of CMakeLists.txt II.
pionere 3936af99 2022-01-12T16:31:00 fix HAVE_SDL_AUDIO flag of CMakeLists.txt
pionere 21510387 2022-01-12T13:05:12 fix CMakeLists.txt vs. configure inconsistencies - atomic subsystem is disabled by default (changed in configure) - SDL_WAYLAND_LIBDECOR is disabled by default if SDL_WAYLAND is not set (changed in CMakeLists.txt)
pionere 11cdde01 2022-01-12T10:06:22 fix MacOS build with disabled SDL_SENSOR + get rid of the double-check (SDL_HAPTIC depends on SDL_JOYSTICK)
pionere 176941a4 2022-01-12T10:02:52 allow MacOS build without SDL_FILE
pionere eb80f2c6 2022-01-11T10:45:41 sync handling of subsystems II.
pionere 65e9415b 2022-01-10T17:00:32 sync handling of subsystems - add DUMMY-define in case the subsystem is enabled but not available (filesystem/misc/locale) - add missing PSP/VITA-filesystem defines - sync the order of filesystems in SDL_config.h.cmake/in - add option to disable locale subsystem in configure
pionere 118de862 2022-01-10T15:39:42 more conform vulkan/metal configuration
pionere 606d2ea8 2022-01-09T17:00:41 bugfix for "add 'Misc' subsystem"
pionere 998117b3 2022-01-09T16:00:22 add 'Misc' subsystem
Eric Wasylishen 71e06a53 2021-11-26T18:27:34 cmake: fix Metal detection Confirmed to work on: macOS 10.15.7 XCode Version 12.4 (12D4e)
Charlie Birks 15ebad6e 2022-01-22T13:31:11 emscripten: Implement SDL_OpenURL
Sam Lantinga a0e3c884 2022-01-17T15:32:27 Updated to version 2.0.21 for development
Ozkan Sezer a575e2cf 2022-01-17T20:56:24 Enable alloca on mingw/cygwin builds: This effectively reverts commit 391d73e37b26614e2e343ca8e9d4334e07380896 Fixes https://github.com/libsdl-org/SDL/issues/5234
Ozkan Sezer 407d4e47 2022-01-12T20:32:00 cmake: simplify after the previous os/2 commit.
Ozkan Sezer f199f832 2022-01-12T20:22:28 cmake: added target_properties for os/2.
ulatekh bb9ebad7 2022-01-11T09:34:14 Optionally disable generation of SDL2main and uninstall projects. Mostly meant to allow SDL2 to be incorporated as a sub-project of external CMake projects.
Khem Raj fcf0e524 2022-01-07T11:17:47 cmake: Remove libunwind-generic as hard dependency when using alternate unwind implementations like LLVM libunwind this library is not provided yet the libunwind features are fully implemented in main libunwind, making this hard dependency assumes a particular libunwind implementation, this patch makes it optional which makes the builds to work with llvm libunwind Signed-off-by: Khem Raj <raj.khem@gmail.com>
Ozkan Sezer b2656776 2022-01-11T11:33:02 cmake: initial attempt at adding os/2 support.
Neal Gompa 0696fc01 2022-01-07T14:30:26 cmake: Split SDL2-static and SDL2main into their own target exports This makes it so that the generated targets are not interdependent, which allows Linux distributions to split libraries into the appropriate subpackages as needed.
Sam Lantinga 92946348 2022-01-07T18:28:25 Updated to version 2.0.20 for release
Ozkan Sezer 75ac944b 2022-01-06T22:24:00 check for tpcshrd.h and define HAVE_TPCSHRD_H if it's available.
ulatekh 3ea82eaa 2022-01-04T15:46:04 Under MSVC, build project-sources in parallel.
Wouter Wijsman cd1f24a9 2022-01-03T18:41:02 Add forgotten psppower library to link
Francisco Javier Trujillo Mata 13a9cd47 2022-01-01T16:08:00 Adding sysfilesystem driver to PSP
Cameron Gutman 83583dc4 2021-12-19T15:07:37 cmake: Fix WGI detection with older SDKs
Sam Lantinga 881feca1 2021-12-17T19:14:34 CMAKE: fixed cflags check for build type Martin Gerhardy wrote: If there is a variable named test, then cmake does variable-value comparison: if (test STREQUAL "") is equivalent to: if ("${test}" STREQUAL "") If there is no variable named test, then cmake does string literal comparison: if (test STREQUAL "") is equivalent to: if ("test" STREQUAL "") That means basically - the current stuff works - but is not how it should be done. Fixes https://github.com/libsdl-org/SDL/issues/2100
Ivan Epifanov 60c3ca49 2021-12-15T01:20:51 Vita: disable arm asm blitters and add missing pvr dep
Ozkan Sezer 493d45f0 2021-12-07T14:24:32 minor tidy-up in cmake script.
Wouter Wijsman 897c7cfa 2021-12-07T10:24:46 Make sure SDL_VIDEO_RENDER_PSP is set
Wouter Wijsman 21fd0047 2021-11-29T18:42:13 Initial for building PSP version with CMake
Anders Jenbo d68b429c 2021-12-02T23:57:00 [ios] Fix failing to link iconv when build using CMake
Sam Lantinga 5fc901d4 2021-11-30T09:58:21 Updated to version 2.0.19 for development
Ozkan Sezer 5a0ea7fb 2021-11-27T19:10:10 Check for O_CLOEXEC definition in fcntl.h at configuration time, If not available, define it internally as 0 (in SDL_internal.h). Define it as available for macOS >= 10.7 in SDL_config_macosx.h.
Ozkan Sezer cb2f3bed 2021-11-26T21:20:50 tidy-up a comment in cmake script
Ozkan Sezer 22e59cd1 2021-11-26T19:15:28 CMakeLists.txt: update DYLIB_CURRENT_VERSION too 2.0.18 for release
Sam Lantinga 7242075b 2021-11-26T08:12:45 Updated version to 2.0.18 for release
Cameron Gutman 2fa35757 2021-11-24T23:34:45 cmake: Weak link to GameController.framework to handle older OSes
Cameron Gutman bc409163 2021-11-20T17:05:28 cmake: Detect SDL_JOYSTICK_MFI for macOS
Ozkan Sezer d9f70878 2021-11-24T18:10:00 don't use CMAKE_COMPILER_IS_MINGW Fixes https://github.com/libsdl-org/SDL/issues/5002
Ozkan Sezer b7f9c208 2021-11-23T18:56:50 cmake: handle warning flags properly (thanks to hgs3 for pointers.) fixes https://github.com/libsdl-org/SDL/issues/4983
Ozkan Sezer f8900583 2021-11-23T17:04:40 removed windows winmm joystick driver
Ozkan Sezer 35b7ce18 2021-11-22T14:10:02 cmake: final report fixes for mmx, ssemath, dummyvideo, wasapi, xinput. also moved CoreVideo framework out of if(SDL_FILE) block, and removed a now-irrelevant mingw related fixme.
hgs3 6b66542e 2021-11-17T17:04:34 Fixing compilation errors for VS2019 Clang toolset (fixes #4702)
Cameron Gutman 43d1b42a 2021-11-16T17:59:38 cmake: Sync build config options with autotools - SDL_CLOCK_GETTIME now defaults to ON to match autotools build - Add detection of float.h and Xdbe - Fix detection of pthread_setname_np() (requires _GNU_SOURCE) - Move SDL_USE_IME definition into SDL_config.h.cmake
Sam Lantinga a0f8afb5 2021-11-11T09:16:44 Separated the HIDAPI subsystem from HIDAPI joysticks You can now disable HIDAPI joysticks while retaining the HIDAPI SDL API
Ryan C. Gordon 8f63e9ff 2021-11-09T11:13:52 cmake: use generated SDL_config.h to build SDLmain static lib Thanks to @toazz for the patch! Fixes #4829.
Ryan C. Gordon 3a82e432 2021-11-09T11:06:33 cmake: Moved back to requiring merely CMake 3.0.0. This means it now works with any CMake released since 2014 instead of 2018. This was mostly just readding some special cases, and requiring 3.11.0 only for Windows Stores apps, which isn't unreasonable. The biggest concern is a Linux distribution not having a recent CMake; most other places will be manually downloading and installing their own CMake. Fixes #4930.
Ethan Lee 4b42c05b 2021-11-08T13:52:48 video: Add SDL_SetWindowMouseRect. This API and implementation comes from the Unreal Engine branch of SDL, which originally called this "SDL_ConfineCursor". Some minor cleanup and changes for consistency with the rest of SDL_video, but there are two major changes: 1. The coordinate system has been changed so that `rect` is _window_ relative and not _screen_ relative, making it easier to implement without having global access to the display. 2. The UE version unset all rects when passing `NULL` as a parameter for `window`, this has been removed as it was an unused feature anyhow. Currently this is only implemented for X, but can be supported on Wayland and Windows at minimum too.
Ozkan Sezer 2636d839 2021-11-08T22:25:32 cmake: add hidapi to 'SDL_SUBSYSTEMS'
Ozkan Sezer 36067fa1 2021-11-08T21:35:24 cmake: include hid.cpp in android sources
Ozkan Sezer 001aa4da 2021-11-08T21:12:02 cmake: more hidapi fixes.
Sam Lantinga 4bbbe5f8 2021-11-08T09:28:36 Fixed CMake build by adding hidapi files This needs more work to remove the hidapi shared library build, but at least Linux builds are unblocked
Cameron Gutman 7f308abb 2021-11-04T01:02:48 cmake: Only prevent MSVC codegen using the CRT if SDL_LIBC=OFF
Cameron Gutman 16845eef 2021-10-30T12:06:58 cmake: Add SDL include path when building tests The tests can't find any of the SDL includes otherwise