CMakeLists.txt


Log

Author Commit Date CI Message
stfx b1626295 2020-07-08T17:28:34 cmake: Fix building with -DSDL_HAPTIC=Off
Ryan C. Gordon e294639a 2020-06-27T02:00:58 cmake: Fix Metal detection on macOS/iOS. Apparently the "-x objective-c" made it down to the linker, who then treats the .o file as Objective-C source code. Apparently the -ObjC argument does the same thing but gets ignored by the linker. Fixes Bugzilla #4988.
Ryan C. Gordon 363fd52b 2020-06-26T23:30:59 configure/cmake: Disable ARM SIMD and NEON by default. It's buggy at the moment.
Ryan C. Gordon 21482c15 2020-06-26T20:11:32 cmake: Bump minimum required CMake to 3.0.0 and mark link libraries PRIVATE. Fixes Bugzilla #2992.
Ryan C. Gordon d955d63b 2020-06-26T17:42:30 cmake: Build Linux-specific files like the configure script does. Otherwise we unconditionally compile things we shouldn't. Fixes Bugzilla #5175.
stfx 718e1fb8 2020-06-26T22:45:15 cmake: Fix building with -DSDL_SENSOR=Off
Ryan C. Gordon dd753ce7 2020-06-26T15:04:57 cmake: Fix building with -DSDL_POWER=Off Fixes Bugzilla #5193.
stfx efe09359 2020-06-15T10:31:16 Fix compile without DIRECTX
Sam Lantinga a8400dc3 2020-05-29T16:31:05 Fixed bug 5105 - sndio support not working in dynamic mode (dlopen) Giovanni Bajo The CMake build system supports several audio frameworks for Linux: one of them is sndio. All frameworks can be built with "runtime linking" (that is, using dlopen to load the library at runtime). In sdlchecks.cmake, there's code to do the same with sndio: ================================================================= # Requires: # - n/a # Optional: # - SNDIO_SHARED opt # - HAVE_DLOPEN opt macro(CheckSNDIO) if(SNDIO) # TODO: set include paths properly, so the sndio headers are found check_include_file(sndio.h HAVE_SNDIO_H) find_library(D_SNDIO_LIB sndio) if(HAVE_SNDIO_H AND D_SNDIO_LIB) set(HAVE_SNDIO TRUE) file(GLOB SNDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sndio/*.c) set(SOURCE_FILES ${SOURCE_FILES} ${SNDIO_SOURCES}) set(SDL_AUDIO_DRIVER_SNDIO 1) if(SNDIO_SHARED) if(NOT HAVE_DLOPEN) message_warn("You must have SDL_LoadObject() support for dynamic sndio loading") else() FindLibraryAndSONAME("sndio") set(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\"${SNDIO_LIB_SONAME}\"") set(HAVE_SNDIO_SHARED TRUE) endif() else() list(APPEND EXTRA_LIBS ${D_SNDIO_LIB}) endif() set(HAVE_SDL_AUDIO TRUE) endif() endif() endmacro() ================================================================= The feature is gated by an option called SNDIO_SHARED. It is also fully implemented in SDL_sndioaudio.c Unfortunately, it seems there is a missing line in CMakeLists.txt, so SNDIO_SHARED is not defined: ====================================================================== set_option(ALSA "Support the ALSA audio API" ${UNIX_SYS}) dep_option(ALSA_SHARED "Dynamically load ALSA audio support" ON "ALSA" OFF) set_option(JACK "Support the JACK audio API" ${UNIX_SYS}) dep_option(JACK_SHARED "Dynamically load JACK audio support" ON "JACK" OFF) set_option(ESD "Support the Enlightened Sound Daemon" ${UNIX_SYS}) dep_option(ESD_SHARED "Dynamically load ESD audio support" ON "ESD" OFF) set_option(PULSEAUDIO "Use PulseAudio" ${UNIX_SYS}) dep_option(PULSEAUDIO_SHARED "Dynamically load PulseAudio support" ON "PULSEAUDIO" OFF) set_option(ARTS "Support the Analog Real Time Synthesizer" ${UNIX_SYS}) dep_option(ARTS_SHARED "Dynamically load aRts audio support" ON "ARTS" OFF) set_option(NAS "Support the NAS audio API" ${UNIX_SYS}) set_option(NAS_SHARED "Dynamically load NAS audio API" ${UNIX_SYS}) set_option(SNDIO "Support the sndio audio API" ${UNIX_SYS}) set_option(FUSIONSOUND "Use FusionSound audio driver" OFF) dep_option(FUSIONSOUND_SHARED "Dynamically load fusionsound audio support" ON "FUSIONSOUND" OFF) ====================================================================== You can see that all frameworks define a "dep_option" NAME_SHARED, and SNDIO is the only one where the option is missing. This means that runtime loading of sndio is never activated. If sndio is found at configuration time, it is always activated in "linked" mode, so that the final binary will have a load-time dependency with libsdnio. This is unfortunate. To fix the problem, it is sufficient to add this line: dep_option(SNDIO_SHARED "Dynamically load the sndio audio API" ${UNIX_SYS} ON "SNDIO" OFF) I've verified that this fixes the bug, and sndio can now be dynamically loaded as expected.
Sylvain Becker 5b65e0af 2020-05-15T21:12:23 Fixed bug 5100 - compilation CMake Android armeabi-v7a (Thanks Steve Robinson!) fatal error: 'cpu-features.h' file not found on CMake Android armeabi-v7a
Sam Lantinga eadc8693 2020-05-11T14:31:04 Fixed bug 5103 - Port fcitx support to both fcitx 4 & 5 wengxt Due to the new major fcitx version is coming close, the existing code need to be ported to use new Fcitx dbus interface. The new dbus interface is supported by both fcitx 4 and 5, and has a good side effect, which is that it will work with flatpak for free. Also the patch remove the dependency on fcitx header. Instead, it just hardcodes a few enum value in the code so need to handle the different header for fcitx4 or 5.
Ryan C. Gordon fa23e3d0 2020-05-04T02:27:29 locale: Implemented SDL_GetPreferredLocales(). This was something I proposed a long time ago, Sylvain Becker did additional work on it, then back to me. Fixes Bugzilla #2131.
Ryan C. Gordon 7ac82710 2020-04-24T02:06:53 cmake: various Haiku settings were accidentally under "if(SDL_VIDEO)"
Ryan C. Gordon 952bac7c 2020-04-13T15:22:09 cmake: use check_symbol_exists, not check_function_exists (thanks, Manuel!) This fixes the problem where we think iOS has fseeko64, etc, but doesn't. Fixes Bugzilla #4885.
James Le Cuirot abcc6706 2020-04-12T13:24:36 build: Don't duplicate Libs in Libs.private in pkg-config file pkg-config already prepends Libs to Libs.private when you specify --static so there's no need to duplicate them. Most other projects don't do this.
James Le Cuirot 99f87a71 2020-04-11T23:38:34 build: Merge pkg-config Libs.private into Libs for static-only builds A project being built entirely statically will call pkg-config with --static, which utilises the Libs.private field. Conversely it will not use --static when not being built entirely statically, even if there is only a static build of SDL available. This will most likely cause the build to fail due to underlinking unless we merge the Libs fields. This is what the Meson build system does when it generates pkg-config files. This also also follows the behaviour of sdl2-config. At the same time, the runtime linker flags are not applicable to static-only builds so only add them for shared builds.
Ryan C. Gordon d292f6bd 2020-04-10T12:17:14 stdlib: Add SDL_trunc and SDL_truncf
Sam Lantinga 3180ba81 2020-04-08T08:34:27 First pass at Windows sensor implementation
Sam Lantinga 2be75c6a 2020-03-13T19:08:45 Fixed bug 5028 - Virtual Joysticks (new joystick backend) David Ludwig I have created a new driver for SDL's Joystick and Game-Controller subsystem: a Virtual driver. This driver allows one to create a software-based joystick, which to SDL applications will look and react like a real joystick, but whose state can be set programmatically. A primary use case for this is to help enable developers to add touch-screen joysticks to their apps. The driver comes with a set of new, public APIs, with functions to attach and detach joysticks, set virtual-joystick state, and to determine if a joystick is a virtual-one. Use of virtual joysticks goes as such: 1. Attach one or more virtual joysticks by calling SDL_JoystickAttachVirtual. If successful, this returns the virtual-device's joystick-index. 2. Open the virtual joysticks (using indicies returned by SDL_JoystickAttachVirtual). 3. Call any of the SDL_JoystickSetVirtual* functions when joystick-state changes. Please note that virtual-joystick state will only get applied on the next call to SDL_JoystickUpdate, or when pumping or polling for SDL events (via SDL_PumpEvents or SDL_PollEvent). Here is a listing of the new, public APIs, at present and subject to change: ------------------------------------------------------------ /** * Attaches a new virtual joystick. * Returns the joystick's device index, or -1 if an error occurred. */ extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type, int naxes, int nballs, int nbuttons, int nhats); /** * Detaches a virtual joystick * Returns 0 on success, or -1 if an error occurred. */ extern DECLSPEC int SDLCALL SDL_JoystickDetachVirtual(int device_index); /** * Indicates whether or not a virtual-joystick is at a given device index. */ extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index); /** * Set values on an opened, virtual-joystick's controls. * Returns 0 on success, -1 on error. */ extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualAxis(SDL_Joystick * joystick, int axis, Sint16 value); extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualBall(SDL_Joystick * joystick, int ball, Sint16 xrel, Sint16 yrel); extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualButton(SDL_Joystick * joystick, int button, Uint8 value); extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick * joystick, int hat, Uint8 value); ------------------------------------------------------------ Miscellaneous notes on the initial patch, which are also subject to change: 1. no test code is present in SDL, yet. This should, perhaps, change. Initial development was done with an ImGui-based app, which potentially is too thick for use in SDL-official. If tests are to be added, what kind of tests? Automated? Graphical? 2. virtual game controllers can be created by calling SDL_JoystickAttachVirtual with a joystick-type of SDL_JOYSTICK_TYPE_GAME_CONTROLLER, with naxes (num axes) set to SDL_CONTROLLER_AXIS_MAX, and with nbuttons (num buttons) set to SDL_CONTROLLER_BUTTON_MAX. When updating their state, values of type SDL_GameControllerAxis or SDL_GameControllerButton can be casted to an int and used for the control-index (in calls to SDL_JoystickSetVirtual* functions). 3. virtual joysticks' guids are mostly all-zeros with the exception of the last two bytes, the first of which is a 'v', to indicate that the guid is a virtual one, and the second of which is a SDL_JoystickType that has been converted into a Uint8. 4. virtual joysticks are ONLY turned into virtual game-controllers if and when their joystick-type is set to SDL_JOYSTICK_TYPE_GAMECONTROLLER. This is controlled by having SDL's default list of game-controllers have a single entry for a virtual game controller (of guid, "00000000000000000000000000007601", which is subject to the guid-encoding described above). 5. regarding having to call SDL_JoystickUpdate, either directly or indirectly via SDL_PumpEvents or SDL_PollEvents, before new virtual-joystick state becomes active (as specified via SDL_JoystickSetVirtual* function-calls), this was done to match behavior found in SDL's other joystick drivers, almost all of which will only update SDL-state during SDL_JoystickUpdate. 6. the initial patch is based off of SDL 2.0.12 7. the virtual joystick subsystem is disabled by default. It should be possible to enable it by building with SDL_JOYSTICK_VIRTUAL=1 Questions, comments, suggestions, or bug reports very welcome!
Sam Lantinga 983bbf9e 2020-03-10T18:35:31 Backed out changeset 51622f74dc85
Sam Lantinga 93ed3c8b 2020-03-10T18:25:47 Updated SDL to version 2.0.13 for development builds
Sam Lantinga 4fb06a2a 2020-03-10T18:25:47 Updated SDL to version 2.0.13 for development builds
Sam Lantinga 74ed2156 2020-03-01T14:58:16 Updated version to 2.0.12 for release candidate build
Sam Lantinga 1d624aa5 2020-02-16T00:08:36 Further improvements for bug 4128 - CMAKE: Generated target import file contains incorrect include path Mohamed It would be useful to be able to do either `#include "SDL2/SDL.h"` or `#include "SDL.h"`. This patch allows that and adds compatibility with other build systems. It also allows differentiating between SDL1 and SDL2.
Cameron Cawley 8f1a916a 2020-02-13T20:50:47 Add basic support for compiling on RISC OS
Sam Lantinga 598bcfc5 2020-01-06T07:06:58 Fixed bug 4928 - CMakeLists.txt: put cmake package helpers in proper libdir Tiago O. Use LIB_SUFFIX variable to determine the correct path.
Ryan C. Gordon 183929bd 2019-12-03T02:42:53 cmake: ${SDL_CMAKE_DEBUG_POSTFIX} needs to be wrapped in quotes. Otherwise, if it's an empty string, it causes problems. Fixes Bugzilla #4117.
Ozkan Sezer 0d0ec5fe 2019-11-26T20:41:00 CMakeLists.txt: sync DYLIB_CURRENT_VERSION to Xcode project
Ozkan Sezer 8cdb4526 2019-11-21T10:33:56 CMakeLists.txt: add several missing function checks for unix case.
Sam Lantinga 65096446 2019-11-20T16:42:50 Improved XInput VID/PID detection and added SDL_wcsstr() and SDL_wcsncmp()
Ozkan Sezer eb8f14bb 2019-11-20T20:40:50 added SDL_strtokr() as a replacement for POSIX strtok_r (bug #4046.)
Ryan C. Gordon b7df2603 2019-10-24T23:17:19 cmake: added support for enabling the ARM SIMD/NEON code.
Ozkan Sezer ffc7d091 2019-10-01T14:00:02 endpointvolume.h checks not needed since changeset 13078:8ab094a9df6b .
Brandon Schaefer 68985371 2019-09-24T16:36:48 offscreen: Add new video driver backend Offscreen The Offscreen video driver is intended to be used for headless rendering as well as allows for multiple GPUs to be used for headless rendering Currently only supports EGL (OpenGL / ES) or Framebuffers Adds a hint to specifiy which EGL device to use: SDL_HINT_EGL_DEVICE Adds testoffscreen.c which can be used to test the backend out Disabled by default for now
David Ludwig 6398abe5 2019-09-23T18:24:03 CMake: bug-fix for tvOS support tvOS Device support wasn't working, at least not with the current-latest tvOS release (13.0), with CMake failing during its configuration stage.
Sam Lantinga 3fe2d836 2019-09-22T10:37:16 Updated SDL development builds to version 2.0.11
David Ludwig ec65a34b 2019-08-27T12:30:20 CMake: tvOS support/fixes To use, set the following CMake variables when running CMake's configuration stage: - CMAKE_SYSTEM_NAME=tvOS - CMAKE_OSX_SYSROOT=<SDK> (examples: appletvos, appletvsimulator, appletvos12.4, /full/path/to/AppleTVOS.sdk, etc.) - CMAKE_OSX_ARCHITECTURES=<semicolon-separated list of CPU architectures> (example: "arm64;x86_64")
David Ludwig b13c951c 2019-08-27T11:07:43 CMake: iOS support added When using a recent version of CMake (3.14+), this should make it possible to: - build SDL for iOS, both static and dynamic - build SDL test apps (as iOS .app bundles) - generate a working SDL_config.h for iOS (using SDL_config.h.cmake as a basis) To use, set the following CMake variables when running CMake's configuration stage: - CMAKE_SYSTEM_NAME=iOS - CMAKE_OSX_SYSROOT=<SDK> (examples: iphoneos, iphonesimulator, iphoneos12.4, /full/path/to/iPhoneOS.sdk, etc.) - CMAKE_OSX_ARCHITECTURES=<semicolon-separated list of CPU architectures> (example: "arm64;armv7s") Examples: - for Simulator, using the latest, installed SDK: cmake path/to/SDL -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64 - for Device, using the latest, installed SDK, 64-bit only cmake path/to/SDL -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES=arm64 - for Device, using the latest, installed SDK, mixed 32/64 bit cmake path/to/SDL -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES="arm64;armv7s" - for Device, using a specific SDK revision (iOS 12.4, in this example): cmake path/to/SDL -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos12.4 -DCMAKE_OSX_ARCHITECTURES=arm64 - for Simulator, using the latest, installed SDK, and building SDL test apps (as .app bundles): cmake path/to/SDL -DSDL_TEST=1 -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64
Sylvain Becker 0a9c74aa 2019-08-27T11:38:43 Fixed bug 3918 - HIDAPI, CMake support for android project
Sylvain Becker 155087d1 2019-08-11T15:23:37 Fixed bug 3918 - CMake support for android project
Sam Lantinga e9ec7d41 2019-08-05T23:46:09 Fixed bug 4354 - CMake builds do not correctly enable IME on Linux Callum McGing While the CMake build checks for ibus and does enable the ibus backend with set(HAVE_IBUS_IBUS_H TRUE), this does not define SDL_USE_IME, thus CMake built SDL2 (as in Arch Linux) cannot use IME at all. The attached patch fixes this behaviour when building against ibus. IME support will still fail when only fcitx is available on the build system.
Alex Szpakowski aebaa316 2019-08-05T12:35:32 Add public APIs for creating a Metal view attached to an SDL window. Add SDL_metal.h.
Andrew Eikum e149f4c4 2019-07-31T11:34:00 cmake: Fix locating libusb header at configure-time Removing the CheckUSBHID call is necessary to avoid caching the failed header check result before we find libusb via pkg-config.
Ethan Lee f7d82e56 2019-07-31T12:20:55 hidapi: Add SDL_hidapi.c, allows support for multiple hidapi backends. This is currently supported on Linux and macOS. iOS and Android are not supported at all, Windows support could be added with some changes to the libusb backend. The Visual Studio and Xcode projects do not use this feature. Based on Valve Software's hid.cpp, written in collaboration with Andrew Eikum.
Ryan C. Gordon 70f0b093 2019-07-12T13:40:58 cmake: Add setupapi library to Windows build dependencies (hidapi needs it). Fixes Bugzilla #4719.
Ryan C. Gordon 66d4d8e2 2019-07-08T16:46:52 cmake: Added HIDAPI support.
Sam Lantinga 7f78d0f0 2019-06-21T22:01:27 Fixed bug 4684 - GLES1 variables missing under Android with CMake Braden Obrzut https://hg.libsdl.org/SDL/file/7dc39b047055/CMakeLists.txt#l911 I believe the following should also be specified there: set(SDL_VIDEO_OPENGL_ES 1) set(SDL_VIDEO_RENDER_OGL_ES 1) As it is now GLES1 support is missing when building for Android despite it linking to the library.
Sam Lantinga 67c67f3a 2019-06-17T10:13:28 Updated version to 2.0.10
Sam Lantinga 1b73d578 2019-06-08T18:32:29 Temporary fix for bug 4254 - a _lot_ of strict aliasing warnings Ozkan Sezer A horde of strict aliasing violation warnings are emitted from joystick layer, and also from a few other places. This happens with gcc-4.4.7 on Linux CentOS 6.10. Some other sysjoystick would possibly have the same warnings. Attached my full log here. Example entry: src/joystick/SDL_joystick.c: In function 'SDL_GetJoystickGUIDInfo': src/joystick/SDL_joystick.c:1094: warning: dereferencing pointer '({anonymous})' does break strict-aliasing rules
Sam Lantinga 59483c64 2019-06-08T14:36:03 Fixed bug 4593 - Respect CMake's BUILD_SHARED_LIBS default behavior tschwinger Respect the BUILD_SHARED_LIBS variable when defined, and build either shared or static libs, which is CMake's default behavior (See https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html). If the variable is not defined, the current behavior remains unchanged and both variants are built where the platform supports it. This way, it remains possible to build both in one shot, which seems convenient for distro builds and useful to promote some consistency between them.
Sam Lantinga 68bb8d6c 2019-06-08T14:34:38 Fixed bug 4594 - Fix install location of CMake targets on Apple platforms tschwinger Followup to #3651 As already noted by Ryan, no framework is being built, so we better install to lib/cmake. That code was originally part of a patch submitted by David Demelier, whose credit BTW got lost (I combined his patch for #3572 with fixes for #2576 and #3613 resulting in #3651 because things started to depend on another). I tested that the configuration files are found correctly in the new location on MacOS X based on a hint to the root (see https://cmake.org/cmake/help/latest/command/find_package.html#search-procedure).
Sam Lantinga 50aab198 2019-05-21T17:33:31 Fixed bug 4639 - CMake build does not generate libhidapi.so for Android Manuel Sabogal I noticed that the current Android.mk builds a libhidapi.so library for Android but the CMake build hasn't been updated to do so. I'll attach a patch that fixes this issue.
Sam Lantinga f79190f4 2019-04-23T07:59:31 Use _Exit() when available
Hugh McMaster af4bbb30 2019-03-25T23:01:32 configure.in: Rename to configure.ac to fix an 'aclocal' warning Also rename references in related files.
Ryan C. Gordon 8a5a05c1 2019-03-15T15:51:05 events: Let arbitrary signals to simulate iOS/Android backgrounding events. This lets you build a custom embedded device that roughly offers the "this process is going to the background NOW" semantics of SDL on a mobile device.
Serhii Charykov 510b01f5 2018-12-03T20:14:35 Fix WORKING_DIR parameter
Ryan C. Gordon d4a21f54 2018-12-02T02:43:32 cmake: Comment out some debug logging that can upset build environments. Something about the dashes, colons, numbers makes some builders believe this is an error message.
Ryan C. Gordon bc57ac27 2018-11-02T21:34:17 mir: Removed mir client support. Fixes Bugzilla #4288.
Ozkan Sezer 04761d7d 2018-10-25T11:11:02 CMakeLists.txt: set dylib version numbers properly. (bug #2915.)
Sam Lantinga c17d6299 2018-09-28T21:19:27 Mark a subsystem as dummy, not disabled, if it was intended to be compiled in. From Tom Black: I'm having problems initializing the sensor module. I'm compiling with a standard ./configure && make && sudo make install, and the module says it's enabled, but SDL_Init(SDL_INIT_EVERYTHING) is failing with SDL_GetError() returning "SDL not built with sensor support".
Sam Lantinga 14d2ec80 2018-09-28T21:03:39 commit 8f4dedc039190f5e734c47dcc4fc021b5793b659 Author: Micha? Janiszewski <janisozaur+signed@gmail.com> Date: Fri Sep 28 20:38:04 2018 +0200 CMake: fix building tests on Linux In case where libunwind.h has been found, it will be used by compiler, but linker wasn't updated to reflect use of this new library.
Ozkan Sezer b11c75e9 2018-09-28T13:41:04 configury, cmake: add check for endpointvolume.h : add HAVE_ENDPOINTVOLUME_H, HAVE_MMDEVICEAPI_H and HAVE_AUDIOCLIENT_H in SDL_config.h.in, SDL_config.h.cmake, SDL_config_windows.h, and in SDL_config_winrt.h.
Ozkan Sezer cf7460e4 2018-09-28T11:30:50 configury, cmake: make wasapi option independent of directx.
Sam Lantinga bc6c1997 2018-09-26T10:08:14 Updated version to 2.0.9
Sam Lantinga 8aaef4b9 2018-09-24T08:41:59 Fixed bug 3166 - It would be nice, if SDL would support including SDL project as a subdirectory into another CMake project Wayde Reitsma After attempting to use SDL2 in the way described in this bug, I found the main issue was the includes not being added to the compiler command. I found the issue was that the target_include_directories commands for the SDL2, SDL2-static and SDL2main targets only sets the public includes for installations using the INSTALL_INTERFACE generator expression. I have written a patch to CMakeLists.txt that fixes this issue by adding another item to the target_include_directories commands, utilizing the BUILD_INTERFACE generator expression to correctly add the include directory during builds.
Ryan C. Gordon c19516b5 2018-09-18T11:49:42 cmake: correctly report Vulkan support at configure time (thanks, Tiago!). Fixes Bugzilla #4262.
Ozkan Sezer 9753b9cc 2018-09-02T23:57:06 CMakeLists.txt: fix typo SDL_SENSORS_DISABLED -> SDL_SENSOR_DISABLED
Ryan C. Gordon df5d565f 2018-08-23T14:32:30 cmake: add sensor subsystem to the build.
Sam Lantinga 7c3040e0 2018-08-21T12:11:34 First pass on the new SDL sensor API
Drew Pirrone-Brusse 58021b38 2018-08-18T17:23:40 Correct the name of the SDL shared library in CMake for Mac OS
Ethan Lee b4fe7412 2018-08-04T11:52:46 SDL_exp
Ryan C. Gordon 4d4bb2b0 2018-08-02T16:21:43 cmake: use WINDOWS instead of WIN32.
Ozkan Sezer 88577916 2018-07-01T17:01:04 make WASAPI configurable in autofoo and cmake (default is on.) closes bug #3798.
Vitaly Novichkov 3a11bba2 2018-06-29T18:29:17 Remove "lib" prefix from DLL file on MinGW builds closes bug #4209.
Sam Lantinga 5e8c8167 2018-04-15T09:37:51 Fixed bug 4135 - Broken symlink libSDL2.so since rev11940 Tiago O. Symlink points to the wrong folder, and target will always have debug postfix, so it'll be broken for other build types.
Bastien Bouclet 9856d967 2018-04-11T06:16:23 Fix the include path in the installed CMake target import file Previously the include path was {INSTALL_PREFIX}/include, it is now {INSTALL_PREFIX}/include/SDL2 to be consistent with the other build and package configuration systems. Fixes #4128.
Saad Khattak 6b5ed0fd 2018-04-10T08:03:54 Added debug postfix to install command and fixed library path
Micha? Janiszewski 0a5c1065 2018-03-10T21:16:14 Fix ARM builds with MSVC
Olli Kallioinen 5cbb90da 2018-02-25T19:22:47 cmake: Set debug library name suffix per target instead of setting it globally. Don't add a suffix on android
Sam Lantinga 6cf4d0e4 2018-02-24T08:59:58 Fixed bug 4092 - CMake support for building everything in the "test" directory Eric Wasylishen Patch to support building the tests with cmake. Disabled by default, use: "cmake .. -DSDL_TEST=YES" to enable the tests. Tested on macOS 10.13 with the ninja, makefile, and Xcode generators, and Windows 10 with the Visual Studio 2017 generator.
Sam Lantinga c329381f 2018-02-07T14:03:24 Description: fix installation of shared library for Android Author: Boris Pek <tehnick-8@yandex.ru> Last-Update: 2018-01-10
Ethan Lee 11c348b4 2018-01-17T11:53:09 SDL_log10
Sam Lantinga f1ec8a5f 2017-12-11T12:00:12 Check for immintrin.h before using it in SDL_cpuinfo.h
Ryan C. Gordon 351d6d47 2017-12-06T12:24:32 audio: Port WASAPI to WinRT, remove XAudio2 backend. XAudio2 doesn't have capture support, so WASAPI was to replace it; the holdout was WinRT, which still needed it as its primary audio target until the WASAPI code code be made to work. The support matrix now looks like: WinXP: directsound by default, winmm as a fallback for buggy drivers. Vista+: WASAPI (directsound and winmm as fallbacks for debugging). WinRT: WASAPI
Sam Lantinga 57ebc727 2017-12-04T20:35:01 Fixed bug 3975 - Add GLES2 support for macOS via ANGLE library Andrey Seems latest google angle library successfully built & tested under macOS'es. https://github.com/google/angle We need to use GLES2 to implement true cross-platform code.
Sam Lantinga a4b33d74 2017-11-20T00:03:23 Fixed bug 3959 - cmake build broken by commit 11702 (7fdbffd47c0e) due to typo Mate Nagy There is a typo in CMakeLists.txt that makes CMake exit with failure. Change that causes the problem: (Notice the double ending brackets) ${SDL2_SOURCE_DIR}/src/video/*.c) + ${SDL2_SOURCE_DIR}/src/video/yuv2rgb/*.c) Fix: Just remove the first ending bracket resulting in: ${SDL2_SOURCE_DIR}/src/video/*.c ${SDL2_SOURCE_DIR}/src/video/yuv2rgb/*.c)
Sam Lantinga a6a4e27a 2017-11-12T22:51:12 Updated SDL's YUV support, many thanks to Adrien Descamps New functions get and set the YUV colorspace conversion mode: SDL_SetYUVConversionMode() SDL_GetYUVConversionMode() SDL_GetYUVConversionModeForResolution() SDL_ConvertPixels() converts between all supported RGB and YUV formats, with SSE acceleration for converting from planar YUV formats (YV12, NV12, etc) to common RGB/RGBA formats. Added a new test program, testyuv, to verify correctness and speed of YUV conversion functionality.
Sam Lantinga 2c5724ef 2017-11-04T21:58:48 Updated version to 2.0.8 since SDL_image depends on it
Sam Lantinga bcdf8b91 2017-11-04T17:35:03 Added SDL_fmod() and SDL_fmodf()
Sam Lantinga 34502143 2017-11-04T15:34:14 Added float versions of SDL's math functions
Sam Lantinga f658a737 2017-10-15T21:07:01 Fixed bug 3882 - cmake fix for osx Ozkan Sezer In my cross-build environment with cmake-2.8.12.1, cmake does not add SDL_coreaudio.m to its makefiles and the result is a failure. The fix is simple: set the language to C for it as it is done at other places in CMakeLists.txt.
Sam Lantinga 9c580e14 2017-10-12T13:44:28 Added functions to query and set the SDL memory allocation functions: SDL_GetMemoryFunctions() SDL_SetMemoryFunctions() SDL_GetNumAllocations()
Sam Lantinga f4cd68a5 2017-10-12T08:47:02 Fixed bug 3866 - CMake error when trying to make the 'uninstall' target when it already exists Steve Robinson In my project, the 'uninstall' target is already created by the glew library. I get this error when SDL2 tries to create it: CMake Error at _build/3rdparty/SDL2/SDL2-2.0.6/CMakeLists.txt:1816 (add_custom_target): add_custom_target cannot create target "uninstall" because another target with the same name already exists. The existing target is a custom target created in source directory "D:/Code/sdl2-tutorial/_build/3rdparty/glew/glew-2.1.0/build/cmake". See documentation for policy CMP0002 for more details. To fix it, go to the bottom of the SDL2 CMakeLists.txt file. Add an if statement to check for the existence of the target before creating it. The end result looks like this: if(NOT TARGET uninstall) configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() This is how the glew library deals with this possibility in their CMakeLists.txt file.
Sam Lantinga 0ce23a54 2017-10-12T08:08:04 Updated version to 2.0.7
Sam Lantinga 827e9850 2017-10-06T16:42:43 Fixed bug 3862 - Install is broken when adding SDL2 to an existing CMake project Steve Robinson In my existing CMake project, I use add_subdirectory to add the source for SDL2. This worked fine in 2.0.5, but now in 2.0.6 when I build the INSTALL CMake target, I get this error: file INSTALL cannot find "D:/path/to/SDL2Config.cmake". Call Stack (most recent call first): 3rdparty/SDL2/cmake_install.cmake:32 (include) 3rdparty/cmake_install.cmake:36 (include) cmake_install.cmake:32 (include) To fix this, I changed line 1770 from this: ${CMAKE_SOURCE_DIR}/SDL2Config.cmake To this: ${CMAKE_CURRENT_SOURCE_DIR}/SDL2Config.cmake
Sam Lantinga 260db92c 2017-09-22T16:33:34 Added stub Steam Controller sources to Android and iOS command line builds
Sam Lantinga 2cdb9674 2017-09-10T10:25:36 Fixed the include path for khronos with Visual Studio
Sam Lantinga f465f24d 2017-09-09T08:36:37 Fixed bug 3760 - RWops doesn't check for integer overflow when stdio_fseek only supports 32 bits Simon Hug When RWops seeks with fseek or fseeko it uses the types long or off_t which can be 32 bits on some platforms. stdio_seek does not check if the 64-bit integer for the offset fits into a 32-bit integer. Offsets equal or larger than 2 GiB will have implementation-defined behavior and failure states would be very confusing to debug. The attached patch adds range checking by using the macros from limits.h for long type and some bit shifting for off_t because POSIX couldn't be bothered to specify min and max macros. It also defines HAVE_FSEEKI64 in SDL_config_windows.h so that the Windows function gets picked up automatically with the default config. And there's an additional error message for when ftell fails.
Sam Lantinga 347fe704 2017-08-30T14:25:01 Fixed bug 3789 - Android : small clean up Sylvain Since https://hg.libsdl.org/SDL/rev/6546daa45a02 SDL_android_main.c is empty and then produce a warning nativeInit does not exist and dont need to be mark undefined
Sam Lantinga e53c5c5c 2017-08-30T00:40:06 Fix QNX build - prioritize system EGL headers over the Khronos ones