diff options
Diffstat (limited to 'media-libs/libsdl2/files')
-rw-r--r-- | media-libs/libsdl2/files/libsdl2-2.24.0-cmake-target-fixes.patch | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/media-libs/libsdl2/files/libsdl2-2.24.0-cmake-target-fixes.patch b/media-libs/libsdl2/files/libsdl2-2.24.0-cmake-target-fixes.patch new file mode 100644 index 000000000000..59353b98e06d --- /dev/null +++ b/media-libs/libsdl2/files/libsdl2-2.24.0-cmake-target-fixes.patch @@ -0,0 +1,145 @@ +https://github.com/libsdl-org/SDL/commit/329794daf3f58088b56a64bdfa36b2021903be20 +https://github.com/libsdl-org/SDL/commit/62302d08f13ca5303135505c6b355afbbf069745 + +From: Anonymous Maarten <anonymous.maarten@gmail.com> +Date: Sun, 21 Aug 2022 04:03:32 +0200 +Subject: [PATCH] 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. +--- a/sdl2-config.cmake.in ++++ b/sdl2-config.cmake.in +@@ -39,18 +39,25 @@ unset(bindir) + unset(libdir) + unset(includedir) + +-set(_sdl2_libraries "@SDL_LIBS@") +-set(_sdl2_static_private_libs "@SDL_STATIC_LIBS@") ++set(_sdl2_libraries_in "@SDL_LIBS@") ++set(_sdl2_static_private_libs_in "@SDL_STATIC_LIBS@") + +-# Convert _sdl2_libraries to list and keep only libraries +-string(REGEX MATCHALL "-[lm]([-a-zA-Z0-9._]+)" _sdl2_libraries "${_sdl2_libraries}") ++# Convert _sdl2_libraries to list and keep only libraries + library directories ++string(REGEX MATCHALL "-[lm]([-a-zA-Z0-9._]+)" _sdl2_libraries "${_sdl2_libraries_in}") + string(REGEX REPLACE "^-l" "" _sdl2_libraries "${_sdl2_libraries}") + string(REGEX REPLACE ";-l" ";" _sdl2_libraries "${_sdl2_libraries}") ++string(REGEX MATCHALL "-L([-a-zA-Z0-9._/]+)" _sdl2_libdirs "${_sdl2_libraries_in}") ++string(REGEX REPLACE "^-L" "" _sdl2_libdirs "${_sdl2_libdirs}") ++string(REGEX REPLACE ";-L" ";" _sdl2_libdirs "${_sdl2_libdirs}") ++list(APPEND _sdl2_libdirs "${SDL2_LIBDIR}") + +-# Convert _sdl2_static_private_libs to list and keep only libraries +-string(REGEX MATCHALL "(-[lm]([-a-zA-Z0-9._]+))|(-Wl,[^ ]*framework[^ ]*)" _sdl2_static_private_libs "${_sdl2_static_private_libs}") ++# Convert _sdl2_static_private_libs to list and keep only libraries + library directories ++string(REGEX MATCHALL "(-[lm]([-a-zA-Z0-9._]+))|(-Wl,[^ ]*framework[^ ]*)|(-pthread)" _sdl2_static_private_libs "${_sdl2_static_private_libs_in}") + string(REGEX REPLACE "^-l" "" _sdl2_static_private_libs "${_sdl2_static_private_libs}") + string(REGEX REPLACE ";-l" ";" _sdl2_static_private_libs "${_sdl2_static_private_libs}") ++string(REGEX MATCHALL "-L([-a-zA-Z0-9._/]+)" _sdl2_static_private_libdirs "${_sdl2_static_private_libs_in}") ++string(REGEX REPLACE "^-L" "" _sdl2_static_private_libdirs "${_sdl2_static_private_libdirs}") ++string(REGEX REPLACE ";-L" ";" _sdl2_static_private_libdirs "${_sdl2_static_private_libdirs}") + + if(_sdl2_libraries MATCHES ".*SDL2main.*") + list(INSERT SDL2_LIBRARIES 0 SDL2::SDL2main) +@@ -103,6 +110,7 @@ if(WIN32) + set_target_properties(SDL2::SDL2 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_sdl2_link_libraries}" ++ INTERFACE_LINK_DIRECTORIES "${_sdl2_libdirs}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_IMPLIB "${_sdl2_implib}" + IMPORTED_LOCATION "${_sdl2_dll}" +@@ -122,6 +130,7 @@ else() + set_target_properties(SDL2::SDL2 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_sdl2_link_libraries}" ++ INTERFACE_LINK_DIRECTORIES "${_sdl2_libdirs}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${_sdl2_shared}" + ) +@@ -142,6 +151,7 @@ if(EXISTS "${_sdl2_static}") + IMPORTED_LOCATION "${_sdl2_static}" + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_sdl2_link_libraries};${_sdl2_static_private_libs}" ++ INTERFACE_LINK_DIRECTORIES "${_sdl2_libdirs};${_sdl2_static_private_libdirs}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + ) + endif() + +From: Anonymous Maarten <anonymous.maarten@gmail.com> +Date: Wed, 24 Aug 2022 04:14:52 +0200 +Subject: [PATCH] cmake: always create SDL2::SDL2main target in autotools' + cmake config script + +--- a/sdl2-config.cmake.in ++++ b/sdl2-config.cmake.in +@@ -62,38 +62,39 @@ string(REGEX REPLACE ";-L" ";" _sdl2_static_private_libdirs "${_sdl2_static_priv + if(_sdl2_libraries MATCHES ".*SDL2main.*") + list(INSERT SDL2_LIBRARIES 0 SDL2::SDL2main) + list(INSERT SDL2_STATIC_LIBRARIES 0 SDL2::SDL2main) +- set(_sdl2main_library ${SDL2_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2main${CMAKE_STATIC_LIBRARY_SUFFIX}) +- if(EXISTS "${_sdl2main_library}") +- set(SDL2MAIN_LIBRARY SDL2::SDL2main) +- if(NOT TARGET SDL2::SDL2main) +- add_library(SDL2::SDL2main STATIC IMPORTED) +- set_target_properties(SDL2::SDL2main +- PROPERTIES +- IMPORTED_LOCATION "${_sdl2main_library}" +- ) +- if(WIN32) +- # INTERFACE_LINK_OPTIONS needs CMake 3.13 +- cmake_minimum_required(VERSION 3.13) +- # Mark WinMain/WinMain@16 as undefined, such that it will be withheld by the linker. +- if(CMAKE_SIZEOF_VOID_P EQUAL 4) +- set_target_properties(SDL2::SDL2main +- PROPERTIES +- INTERFACE_LINK_OPTIONS "-Wl,--undefined=_WinMain@16" +- ) +- else() +- set_target_properties(SDL2::SDL2main +- PROPERTIES +- INTERFACE_LINK_OPTIONS "-Wl,--undefined=WinMain" +- ) +- endif() ++endif() ++ ++set(_sdl2main_library ${SDL2_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2main${CMAKE_STATIC_LIBRARY_SUFFIX}) ++if(EXISTS "${_sdl2main_library}") ++ set(SDL2MAIN_LIBRARY SDL2::SDL2main) ++ if(NOT TARGET SDL2::SDL2main) ++ add_library(SDL2::SDL2main STATIC IMPORTED) ++ set_target_properties(SDL2::SDL2main ++ PROPERTIES ++ IMPORTED_LOCATION "${_sdl2main_library}" ++ ) ++ if(WIN32) ++ # INTERFACE_LINK_OPTIONS needs CMake 3.13 ++ cmake_minimum_required(VERSION 3.13) ++ # Mark WinMain/WinMain@16 as undefined, such that it will be withheld by the linker. ++ if(CMAKE_SIZEOF_VOID_P EQUAL 4) ++ set_target_properties(SDL2::SDL2main ++ PROPERTIES ++ INTERFACE_LINK_OPTIONS "-Wl,--undefined=_WinMain@16" ++ ) ++ else() ++ set_target_properties(SDL2::SDL2main ++ PROPERTIES ++ INTERFACE_LINK_OPTIONS "-Wl,--undefined=WinMain" ++ ) + endif() + endif() +- set(SDL2_SDL2main_FOUND TRUE) +- else() +- set(SDL2_SDL2main_FOUND FALSE) + endif() +- unset(_sdl2main_library) ++ set(SDL2_SDL2main_FOUND TRUE) ++else() ++ set(SDL2_SDL2main_FOUND FALSE) + endif() ++unset(_sdl2main_library) + + # Remove SDL2 since this is the "central" library + # Remove SDL2main since this will be provided by SDL2::SDL2main (if available) + |