Преглед изворни кода

Merge pull request #6207 from lat9nq/sdl-2.0.14

cmake: Use SDL 2.0.14 and fix scope issue
bunnei пре 5 година
родитељ
комит
7083c5bfc8

+ 4 - 4
CMakeLists.txt

@@ -274,9 +274,9 @@ if (ENABLE_SDL2)
         target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARY}")
         target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
     else()
-        find_package(SDL2 2.0.12)
+        find_package(SDL2 2.0.14)
 
-        if(SDL2_FOUND)
+        if (SDL2_FOUND)
             # Some installations don't set SDL2_LIBRARIES
             if("${SDL2_LIBRARIES}" STREQUAL "")
                 message(WARNING "SDL2_LIBRARIES wasn't set, manually setting to SDL2::SDL2")
@@ -286,10 +286,10 @@ if (ENABLE_SDL2)
             include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
             add_library(SDL2 INTERFACE)
             target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}")
+        else()
+            message(STATUS "SDL2 2.0.14 or newer not found, falling back to externals.")
         endif()
     endif()
-else()
-    set(SDL2_FOUND NO)
 endif()
 
 # Install any missing dependencies with conan install

+ 1 - 2
externals/CMakeLists.txt

@@ -46,8 +46,7 @@ add_library(unicorn-headers INTERFACE)
 target_include_directories(unicorn-headers INTERFACE ./unicorn/include)
 
 # SDL2
-if (NOT SDL2_FOUND)
-    set(SDL2_FOUND YES)
+if (NOT SDL2_FOUND AND ENABLE_SDL2)
     add_subdirectory(SDL EXCLUDE_FROM_ALL)
 endif()
 

+ 1 - 1
externals/SDL

@@ -1 +1 @@
-Subproject commit 983bbf9ef3e572a073a6f5877faf1c0b4803527c
+Subproject commit 4cd981609b50ed273d80c635c1ca4c1e5518fb21

+ 1 - 1
src/input_common/CMakeLists.txt

@@ -62,7 +62,7 @@ else()
     )
 endif()
 
-if(SDL2_FOUND)
+if (ENABLE_SDL2)
     target_sources(input_common PRIVATE
         sdl/sdl_impl.cpp
         sdl/sdl_impl.h

+ 10 - 0
src/input_common/sdl/sdl_impl.cpp

@@ -17,7 +17,17 @@
 #include <unordered_map>
 #include <utility>
 #include <vector>
+
+// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 #include <SDL.h>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #include "common/logging/log.h"
 #include "common/param_package.h"
 #include "common/settings_input.h"

+ 10 - 0
src/yuzu_cmd/config.cpp

@@ -4,7 +4,17 @@
 
 #include <memory>
 #include <sstream>
+
+// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 #include <SDL.h>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #include <inih/cpp/INIReader.h>
 #include "common/file_util.h"
 #include "common/logging/log.h"

+ 9 - 0
src/yuzu_cmd/emu_window/emu_window_sdl2.cpp

@@ -2,7 +2,16 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 #include <SDL.h>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #include "common/logging/log.h"
 #include "common/scm_rev.h"
 #include "core/core.h"

+ 10 - 0
src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp

@@ -5,8 +5,18 @@
 #include <algorithm>
 #include <cstdlib>
 #include <string>
+
 #define SDL_MAIN_HANDLED
+// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 #include <SDL.h>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #include <fmt/format.h>
 #include <glad/glad.h>
 #include "common/assert.h"

+ 8 - 0
src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp

@@ -16,7 +16,15 @@
 #include "yuzu_cmd/emu_window/emu_window_sdl2_vk.h"
 
 // Include these late to avoid polluting everything with Xlib macros
+// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 #include <SDL.h>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
 #include <SDL_syswm.h>
 
 EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem)