CMakeLists.txt


Log

Author Commit Date CI Message
Anonymous Maarten c3b13346 2022-10-21T18:32:53 On x86, pass -nodefaultlib to linker when wanting to avoid the C library
Simon McVittie 4ca5ea5b 2022-10-20T20:02:21 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>
Simon McVittie 2dc788cb 2022-10-20T19:54:24 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>
Anonymous Maarten 5ed091c1 2022-10-21T15:32:05 cmake: fix reporting of SDL_TESTS
Anonymous Maarten 96361fc4 2022-10-04T21:17:10 cmake: create and install sdl2.pc for MSVC & WATCOM
Anonymous Maarten d542f43b 2022-10-19T16:03:43 cmake: add SDL_INSTALL_CMAKEDIR cache variable to override location of cmake config files
Wouter Wijsman 428b5ae5 2022-10-18T10:34:51 PSP: Reorder extra imports
Pierre Wendling 392f3882 2022-09-20T22:45:24 N3DS: Use SDL_Sensor instead of Joystick sensors.
Pierre Wendling 27557b62 2022-09-20T19:53:45 N3DS: Prefix timer sources with `N3DS_`.
Pierre Wendling 65527537 2021-03-30T04:32:39 N3DS port (squashed) A dedicated renderer using Citro3D would likely allow for better much better graphical performances.
Aaron Barany 6ffc45b0 2022-10-09T17:22:31 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.
Anonymous Maarten 07225d2e 2022-10-06T00:55:37 cmake: fix check for -marm This fixes the following warning: clang: warning: argument unused during compilation: '-marm' [-Wunused-command-line-argument]
Anonymous Maarten 45da1339 2022-10-06T00:39:47 cmake: don't error on apple when using deprecated declarations
Anonymous Maarten 77822ed1 2022-10-05T15:14:08 cmake: add SDL_WERROR to conditionally enable/disable -Werror
Anonymous Maarten 1064fdee 2022-10-06T05:04:51 cmake: append to COMPILE_FLAGS property
Anonymous Maarten 37beabd1 2022-10-06T02:16:07 SDL_mslib.c: clang-cl does not support `/GL-`
Ozkan Sezer fa7ffa4e 2022-10-06T03:37:50 change the iconv configuration option names to be more verbose.
Ozkan Sezer 294ccba0 2022-10-05T23:56:56 better wording for --enable-iconv description
Anonymous Maarten c9f60cce 2022-10-05T17:12:08 cmake+autotools: add option to enable/disable iconv
Anonymous Maarten d0657fde 2022-10-05T02:15:22 cmake: Use DWARF 4 debug information when building using mingw See f18fae4c689a68bd50ce34d6b9c1f014c2f220a2
Anonymous Maarten 70214ed3 2022-06-17T02:58:45 cmake: append to CMAKE_MODULE_PATH instead of overwriting
Anonymous Maarten a193a03d 2022-09-27T17:33:49 cmake: add -Wno-declaration-after-statement to cpu-features.c alone
Anonymous Maarten 2f9c9b5f 2022-09-27T02:30:43 cmake: make sure check_* uses 2 different variables for clock_gettime
Anonymous Maarten bfecd781 2022-09-27T01:08:04 cmake: use check_symbol_exists to check dlopen + need for dl library
Ozkan Sezer f6c9b065 2022-09-23T23:56:04 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
Anonymous Maarten 3b20e0ec 2022-09-19T02:38:36 cmake: only add -Wl,--undefined=WinMain when building an executable
Ivan Epifanov 202dfea5 2022-09-17T14:12:13 Vita: drop memory defines
Ivan Epifanov 7115ceb7 2022-09-17T11:52:19 Vita: restore sceClibMemcmp
quyykk 37effc77 2022-09-15T19:39:35 Build the offscreen video driver by default.
Rinnegatamante eb0bf2c2 2022-09-12T21:52:39 vita: Drop memcmp redirect to sceClibMemcmp.
Ozkan Sezer 5b2884cb 2022-09-12T20:28:00 apply commit d0a3570300812bc81888e7a7eadb9311621dc9a7 to cmake side too.
Sam Lantinga 181265ba 2022-09-05T11:36:20 Removed unused variable
Sam Lantinga acf397b4 2022-09-05T11:21:13 Actually, DYLIB_COMPATIBILITY_VERSION shouldn't be updated for a stable point release @smcv
Cameron Cawley fd93f817 2022-09-04T17:50:29 Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008
Sam Lantinga ef988fe1 2022-09-05T08:58:49 Only use CETCOMPAT on x86/x64 platforms Fixes https://github.com/libsdl-org/SDL/issues/6173
Sam Lantinga 4e98ba61 2022-09-05T08:28:06 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
Gleb Mazovetskiy 803924b2 2022-08-30T00:50:44 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).
Ludovico de Nittis e8cb4da7 2022-08-26T12:28:33 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>
Anonymous Maarten 32c4996c 2022-08-26T02:38:54 cmake: add SDL_IBUS option to enable/disable DBUS + test sys/inotify.h
Anonymous Maarten c8b56ee5 2022-08-26T02:37:57 cmake: add SDL_DBUS option to enable/disable DBUS
Anonymous Maarten 032ff640 2022-08-26T02:37:17 cmake: OpenIndiana announces SunOS, which is the former name of Solaris
Anonymous Maarten 711846c1 2022-08-26T01:56:20 cmake: fix build with SDL_WAYLAND_SHARED=OFF
Cameron Gutman 2ceea460 2022-08-21T14:15:06 cmake: Enable CET compatibility for x86/x64 targets using VS 16.7+
Sam Lantinga 6e9c14e5 2022-08-19T09:38:42 Updated to version 2.25.0 for development
Sam Lantinga 8c9beb0c 2022-08-19T08:44:09 Updated to version Updated to version 2.24.0 for release
Sam Lantinga f1416ef2 2022-08-12T20:27:22 Updated to version 2.23.2 for release candidate
Aaron Barany 3f19e36d 2022-08-07T20:55:27 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
Anonymous Maarten 17b329d1 2022-07-26T02:51:07 cmake: enable disabing hidapi
Anonymous Maarten a4e6f3ca 2022-07-26T02:41:43 cmake: when there are alternatives, don't use libusb by default
Francisco Javier Trujillo Mata 4564e898 2022-07-03T18:54:56 put files at the same line
Daniel Santos 147a71b9 2022-06-30T12:57:37 Finish dummy driver
Daniel Santos 2660449c 2022-06-30T11:44:35 Add dummy driver
Daniel Santos a81aa992 2022-06-24T15:48:50 Add prim video support
Francisco Javier Trujillo Mata 46f95a7a 2022-06-24T00:20:11 Create dummy PS2 Video driver
Sam Lantinga 954bbdf3 2022-08-01T09:51:21 Allow emscripten platform to build without threads
Sam Lantinga e4cc076a 2022-08-01T09:15:44 Threads are used by many SDL subsystems and may not be disabled. Fixes https://github.com/libsdl-org/SDL/issues/5095
Anonymous Maarten 83f5bbdf 2022-07-28T14:08:20 cmake: define SDL_STATIC_LIB for static SDL2 library
Anonymous Maarten bdd1d035 2022-07-28T02:38:04 cmake: Don't add /NODEFAULTLIB to link flags when building SDL-static
Anonymous Maarten 02c87471 2022-07-27T15:05:41 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
Anonymous Maarten 5da85376 2022-07-26T21:47:52 stdlib: move all mslibc functions to SDL_mslibc.c This allows disabling LTO on them by only specifying a single file.
Anonymous Maarten 5c70e45c 2022-07-25T23:46:36 cmake: don't use result of 'find_library' for Android libraries
Anonymous Maarten 4690689a 2022-07-25T23:06:52 cmake: on Apple, don't use find_library for frameworks + use EXTRA_LDFLAGS
Anonymous Maarten fc2497b1 2022-07-23T18:05:35 Revert "cmake: don't add -mwindows to link flags in sdl2.pc" This reverts commit d211aaddc1edaad0e7d461d6837f3f1d2f9f4b41.
Anonymous Maarten d211aadd 2022-07-23T15:29:39 cmake: don't add -mwindows to link flags in sdl2.pc
Anonymous Maarten d63a699e 2022-07-23T15:29:13 cmake: by default, disable install target when building SDL as a subproject
Ivan Epifanov 0a164163 2022-07-21T20:30:33 VIta: enable arm neon/simd optimisations
Anonymous Maarten 8f33de84 2022-07-21T14:08:19 cmake: set CMP0054 policy to NEW
Francisco Javier Trujillo Mata e4a80875 2022-06-24T16:43:20 Initial Audio driver
Francisco Javier Trujillo Mata 7fd46ec5 2022-06-18T17:40:53 Initial PS2_Joystick implementation
Francisco Javier Trujillo Mata 84d69da4 2022-03-20T19:42:06 Initial SDL_ps2_main implementation
Anonymous Maarten fa39f735 2022-06-26T23:34:30 cmake: add generated files to a custom target (#5851) This way, headers are only generated once .
Anonymous Maarten 76f40e2b 2022-06-24T14:41:35 cmake: remove stray debug line
Anonymous Maarten ca309363 2022-06-24T14:41:06 cmake: check and use clock_gettime by default on android
hsdk123 bd496961 2022-06-23T08:18:44 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>
Anonymous Maarten 78a37516 2022-06-16T16:38:58 cmake+ci: fix+test sdl2-config + sdl2.pc for all supported platforms
Anonymous Maarten c61367c2 2022-06-16T04:14:52 cmake: do list(APPEND SDLMAIN_SOURCES)
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 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 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