CMakeLists.txt


Log

Author Commit Date CI Message
Anonymous Maarten c61367c2 2022-06-16T04:14:52 cmake: do list(APPEND SDLMAIN_SOURCES)
Anonymous Maarten b3159714 2022-06-16T03:30:34 cmake: set HAVE_STATIC_PIC for correct summary
Anonymous Maarten de409d2a 2022-06-16T03:28:30 cmake: remove spurious UNIX_SYS in dep_option
Anonymous Maarten 3617691f 2022-06-16T03:37:05 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)` ```
Anonymous Maarten 2f321fb7 2022-06-16T03:27:52 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.
Anonymous Maarten 5f4e9fb9 2022-06-21T02:26:49 cmake: use add_custom_command to copy include files Otherwise, the make program would not rebuild when a header got changed
Anonymous Maarten 485b1037 2022-06-21T01:30:50 cmake: copy all headers to the build directory and exclusively use that
Anonymous Maarten 3e102123 2022-06-20T20:51:12 cmake: also add the recently-added include folder to the public interface
Anonymous Maarten 4ad4fe67 2022-06-20T20:47:21 cmake: install generated SDL_config.h The generated SDL_config.h recently changed location, so update the install.
Anonymous Maarten d460000b 2022-06-20T19:29:13 cmake: use add_definitions for compatibility with cmake 3.0
Ozkan Sezer bdcdbfc7 2022-06-19T11:04:24 Enable D3D12 detection when using mingw-w64 with cmake too c.f.: autotools commit 59fb7acbf7af9d64a2d5432bb6677585a0ddd50a
Ozkan Sezer a8d41b3b 2022-06-18T21:51:32 check for shellscalingapi.h presence instead of WINVER >= 0x0603
Anonymous Maarten b19099d5 2022-06-16T19:59:57 cmake: use find_package(SampleRate) to find samplerate + allow targets
Sam Lantinga b004133f 2022-06-16T12:49:17 Updated to version 2.23.1 for pre-release checkpoint
Francisco Javier Trujillo Mata fc78d0ff 2022-06-16T00:36:52 Fix Compilation CI
Francisco Javier Trujillo Mata 6b03c1ad 2022-06-13T20:59:18 Add filesystem driver
Francisco Javier Trujillo Mata 52f00833 2022-06-13T20:58:18 Add Thread drivers
Francisco Javier Trujillo Mata 217d3a6d 2022-06-13T20:35:27 Add systimer support
Francisco Javier Trujillo Mata 580416d3 2022-06-06T00:02:08 Initial CMake configuration
Alex Richardson cd8f57ee 2022-05-29T10:38:56 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.
Anonymous Maarten ae7446a9 2022-06-15T20:48:54 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.
Anonymous Maarten 18206446 2022-06-15T17:10:31 cmake: collect SDL_LIBS as list + export PKG_DIRECTFB_LDFLAGS
Anonymous Maarten b5f1fe50 2022-06-15T06:17:59 cmake: Allow integers for SDL_ASSERTIONS + fix -DSDL_ASSERTIONS=0
Yao Wei Tjong 姚伟忠 c90e1ec3 2021-08-15T21:51:31 Remove redundant sizeof "size_t" check The result variables: HAVE_${VARIABLE}, ${VARIABLE}, ${VARIABLE}_CODE, etc. do not seem to be referenced anywhere in the CMake build script.
Anonymous Maarten 6d1dfc83 2022-06-15T04:29:14 cmake: make sure SDL2::SDL2 is always available
Anonymous Maarten 8a2c6b60 2022-06-15T03:11:33 cmake: don't link to libibus (not needed, I think)
Anonymous Maarten c950018f 2022-06-15T03:07:41 cmake: don't link to libdbus (see note in SDL_dbus.c)
Anonymous Maarten fb7c03eb 2022-06-15T03:04:10 cmake: install LICENSE.txt
Anonymous Maarten afc350ee 2022-06-15T03:03:33 cmake: do 's#set(SOURCE_FILES #list(APPEND SOURCE_FILES #g'
Anonymous Maarten 6606ab8b 2022-06-13T18:35:32 Introduce EXTRA_TEST_LIBS variable for test-only libraries
Anonymous Maarten 851eecdf 2022-06-13T18:04:10 Don't add extra build linker flags to SDL2_static These leak to users, when SDL2 is vendored.
Cameron Cawley 25367efc 2022-05-08T17:36:22 Add missing library needed for locale functions on PS Vita
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 298ad937 2022-06-08T01:10:12 cmake: wrap SDL_STATIC_PIC in double quotes (aka never trust user input) Suggested by @Wohlstand
Anonymous Maarten ad272ac6 2022-06-08T00:32:15 Set POSITION_INDEPENDENT_CODE property on SDL2 for CMake 3.0
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.