Commit Graph
98 Commits
Author SHA1 Message Date
Anonymous Maarten b42c033b13 cmake: use target_link_libraries to pass -Wl,--undefined=WinMain
(cherry-picked from commit e2060de714)
2022-11-29 21:15:22 +03:00
Anonymous Maarten 711d30ddd4 The SDL2::SDL2 target in SDL2.framework needs to see the SDL2 include folder
SDL.h includes other files through SDL2/SDL_xxx.h
2022-11-15 19:33:43 +01:00
Anonymous Maarten beeac60227 cmake: fix finding wayland-libdecor
It was broken in 11d53c84a7
(cherry-picked from commit 0823b5973a)
2022-10-24 20:37:00 +03:00
Anonymous Maarten 214258660f cmake: use pkg-config's library dirs as hint for finding a shared library
(cherry-picked from commit 11d53c84a7)
2022-10-24 20:37:00 +03:00
Anonymous Maarten b8c6d3d7e1 cmake: mark hidapi as disabled when not found
(cherry-picked from commit 19b13aab98)
(cherry-picked from commit c3495ec6ea)
(cherry-picked from commit 6dfd7a17e1)
2022-10-24 20:04:21 +03:00
Anonymous Maarten 1e5daf1bef cmake: fix build with SDL_WAYLAND_SHARED=OFF
(cherry-picked from commit 711846c1f4)
2022-10-24 20:04:21 +03:00
Anonymous Maarten 36b987dabe cmake: else() does not need an argument 2022-10-20 13:30:37 +02:00
Anonymous Maarten a23b54b74a cmake+xcode: only create SDL2::SDL2main target when it does not exist again 2022-10-04 21:17:29 +02:00
Anonymous Maarten a1026d6368 cmake: use check_symbol_exists to check dlopen + need for dl library
(cherry-picked from commit bfecd78159)
2022-09-27 17:01:01 +03:00
Anonymous Maarten c7950bf0c6 cmake: only add -Wl,--undefined=WinMain when building an executable
(cherry-picked from commit 653e433c08)
2022-09-27 14:37:55 +03:00
Anonymous Maarten 4d78a6fad4 cmake: only add -Wl,--undefined=WinMain when building an executable
(cherry picked from commit 3b20e0ecef)
2022-09-19 05:02:04 +03:00
Anonymous Maarten 08e8824372 cmake: fix location of SDL2::SDL2test imported library 2022-09-05 21:54:48 +02:00
Anonymous Maarten 62302d08f1 cmake: always create SDL2::SDL2main target in autotools' cmake config script 2022-08-24 06:41:20 -07:00
Anonymous Maarten b19e2f1e56 cmake: create SDL2::SDL2main target in Apple framework official release 2022-08-24 06:41:20 -07:00
Anonymous Maarten 329794daf3 cmake: add library directories & pthread to imported targets of sdl2-config.cmake
This fixes linking to SDL2::SDL2-static on systems where external libraries such as X11 are not in a standard location.
Pthread also needs special care.
2022-08-20 19:17:37 -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
Anonymous Maarten 36dfbe5d66 stdlib: exclude mslibc functions using SDL_STATIC_LIB macro 2022-07-29 15:05:19 +02:00
Anonymous Maarten f8aa00d198 cmake: add HAVE_STDDEF_H to SDL_config.h.cmake 2022-07-29 15:05:19 +02: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 65473ae36d autoconf: use ax_compute_relative_paths 2022-07-27 21:06:31 +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 430c39082f ci: test 'sdl2-config --static-libs' + 'pkg-config sdl2 --static' on ci 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 f86ec47f86 ci: don't use ANDROID_NDK_HOME environment variable in Android workflow 2022-07-25 15:08:33 +02: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 2fdedd17be Revert 6fa7d62 and 856c99e5 2022-07-23 17:29:45 +02:00
Anonymous Maarten 856c99e583 android: target android-19 by default when building with build-scripts/androidbuildlibs.sh 2022-07-23 16:28:50 +02:00
Anonymous Maarten 832754b970 ci: install SDL when built as a subproject 2022-07-23 15:43:06 +02:00
Anonymous Maarten 6fa7d62408 ci: use android-ndk r25 (LTS) on CI 2022-07-23 15:31: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
Anonymous Maarten e5698d1394 cmake: allow cmake re-configuration after installation of x11 library
check_include_path is not meant to be used to check for presence of a
library. This is because a BOOL is cached.
Avoid this caching by using find_file.
`find_file` caches a patch instead of a bool and will always run when
the result failed.
2022-07-21 18:38:12 +02:00
Anonymous Maarten 9ad3711a6b cmake: only enable x11_xss/x11_xrandr/x11_xfixes when its lib is available 2022-07-21 15:19:19 +02:00
Anonymous Maarten ac9e8691a2 cmake: only build testnative when X11 is available 2022-07-21 14:49:35 +02:00
Anonymous Maarten aa7a6c0ea6 cmake: only enable x11_xcursor and x11_xinput when its library is available 2022-07-21 14:38:57 +02:00
Anonymous Maarten 8f33de8462 cmake: set CMP0054 policy to NEW 2022-07-21 14:08:23 +02:00
Anonymous Maarten db7dfece16 cmake: fix name+location of SDL2.dll in configure generated SDL2::SDL2 target 2022-06-28 23:09:28 +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
Anonymous Maarten 6dcb2868b0 cmake: avoid use of possible non-available XEXT_LIB 2022-06-23 14:17:38 +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 965c164537 cmake: let cmake test script make use of the installed cmake scripts 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
Anonymous Maarten e7ad511b4b cmake: fix location of include dir for SDL2 VC sdk 2022-06-18 13:30:54 +02:00
Anonymous Maarten b19099d557 cmake: use find_package(SampleRate) to find samplerate + allow targets 2022-06-16 16:47:19 -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
Anonymous Maarten 86f50ae7d7 ci: Test cmake build script on Android
android
2022-06-15 11:11:49 -07:00
Anonymous Maarten 18206446bf cmake: collect SDL_LIBS as list + export PKG_DIRECTFB_LDFLAGS 2022-06-15 11:11:49 -07:00
Anonymous Maarten b5f1fe5004 cmake: Allow integers for SDL_ASSERTIONS + fix -DSDL_ASSERTIONS=0 2022-06-15 11:11:49 -07:00
Anonymous Maarten 97711e99fe cmake: no need to explicitly add a depency (target_link_libraries does this implicitly) 2022-06-15 11:11:49 -07:00
Anonymous Maarten ad21c70408 cmake: fix CMP0072 warning by prefering GLVND 2022-06-15 11:11:49 -07:00
Anonymous Maarten 6d1dfc8322 cmake: make sure SDL2::SDL2 is always available 2022-06-14 20:15:34 -07:00
Anonymous Maarten 69df26a0d4 ci: test clang+MinGW on CI 2022-06-14 20:15:34 -07:00
Anonymous Maarten 32df5aeb3d Check result of FindLibraryAndSONAME before use 2022-06-15 05:33:40 +03:00
Anonymous Maarten 8a2c6b604c cmake: don't link to libibus (not needed, I think) 2022-06-15 05:33:40 +03:00
Anonymous Maarten c950018fe0 cmake: don't link to libdbus (see note in SDL_dbus.c) 2022-06-15 05:33:40 +03:00
Anonymous Maarten fb7c03ebb5 cmake: install LICENSE.txt 2022-06-15 05:33:40 +03:00
Anonymous Maarten afc350eeff cmake: do 's#set(SOURCE_FILES #list(APPEND SOURCE_FILES #g' 2022-06-15 05:33:40 +03:00
Anonymous Maarten 6606ab8b56 Introduce EXTRA_TEST_LIBS variable for test-only libraries 2022-06-13 10:05:30 -07:00
Anonymous Maarten e99a7144ff Use list(APPEND EXTRA_LIBS) everywhere 2022-06-13 10:05:30 -07:00
Anonymous Maarten 851eecdf40 Don't add extra build linker flags to SDL2_static
These leak to users, when SDL2 is vendored.
2022-06-13 10:05:30 -07:00
Anonymous Maarten 298ad937c0 cmake: wrap SDL_STATIC_PIC in double quotes (aka never trust user input)
Suggested by @Wohlstand
2022-06-07 18:44:47 -07:00
Anonymous Maarten ad272ac690 Set POSITION_INDEPENDENT_CODE property on SDL2 for CMake 3.0 2022-06-07 18:44:47 -07:00
Anonymous Maarten 5abd676917 Allow empty default values to the dep_option macro 2022-06-07 09:17:44 -07:00
Anonymous Maarten 20c76599f9 Fix MinGW SDK redist: sdl2-config.cmake needs to set SDL2_FOUND 2022-06-03 21:05:55 -07:00
Anonymous Maarten fd3f381021 Initialize SDL_STATIC_PIC from CMAKE_POSITION_INDEPENDENT_CODE 2022-06-03 21:05:04 -07:00
Anonymous Maarten d6143ab369 Add -Wl,-Bstatic to "sdl2-config --static-libs" output 2022-06-03 16:27:13 -07:00
Anonymous Maarten 799d39a302 Make the sdl2-config script relocatable 2022-06-03 16:27:13 -07:00
Anonymous Maarten f858d1305a ci: test installed packages using CMake 2022-06-03 12:41:36 -07:00
Anonymous Maarten 96e3733a18 cmake: make Xcode's sdl2-config.cmake compatible with the one from autotools 2022-06-03 12:41:36 -07:00
Anonymous Maarten 5a8ccf4522 cmake: make VisualC's sdl2-config.cmake compatible with the one from autotools 2022-06-03 12:41:36 -07:00
Anonymous Maarten 5ec2d46f47 cmake: make SDL2Config.cmake compatible with autotools' sdl2-config.cmake 2022-06-03 12:41:36 -07:00
Anonymous Maarten 9ff8f29f43 cmake: Add mini-SDL2 CMake project to test SDL2 prefixes 2022-06-03 12:41:36 -07:00
Anonymous Maarten 67792767f5 cmake: Add CMake configuration files, meant for the prebuilt MinGW SDK 2022-06-03 12:41:36 -07:00
Anonymous Maarten 246f3ba52c cmake: rewrite autotools' sdl2-config.cmake.in with IMPORTED targets + no more -lmingw32 2022-06-03 12:41:36 -07:00
Anonymous Maarten 6f3474db2d autotools: export relative path of an installed sdl2-config.cmake to the prefix root 2022-06-03 12:41:36 -07:00
Anonymous Maarten 8e13cc309e cmake: add 'compatible interface properties' to allow enforcing SDL2 sharedness 2022-06-03 12:41:36 -07:00
Anonymous Maarten 1087eaad7e cmake: install SDL2::SDL2test when configuring with SDL2_TEST enabled 2022-06-03 12:41:36 -07:00
Anonymous Maarten 3c3c02518c Add Compatible Interface Properties to VisualC and Xcode SDL2 config file 2022-05-31 00:10:55 +02:00
Anonymous Maarten 4809bd356e Add documentation to autotoo'ls sdl2-config-version.cmake.in 2022-05-31 00:10:55 +02:00
Anonymous Maarten 774c50174c Add CMake section to the Xcode ReadMe.txt 2022-05-31 00:10:55 +02:00
Anonymous Maarten f73c25648f cmake: attempt to use framework in Xcode's sdl2-config.cmake 2022-05-31 00:10:55 +02:00
Anonymous Maarten 4c3d1d32a5 Use INTERFACE_INCLUDE_DIRECTORIES in Xcode's sdl2-config.cmake 2022-05-31 00:10:55 +02:00
Anonymous Maarten 2c591e408e Add CMake configuration files, meant for Macos framework 2022-05-31 00:10:55 +02:00
Anonymous Maarten 8ac8230bfa Add CMake configuration files, meant for VC devel package 2022-05-31 00:10:55 +02:00