From de69a5266fde93a793fc3664db205ec7bad3e9a9 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Sat, 17 Apr 2021 23:35:13 -0400 Subject: cmake: Use SDL 2.0.14 and fix CMake scope issue Forces using SDL 2.0.14. Upgrades the SDL external to that version. Adds a message when switching to the external. Fixes an error where input_common only links to SDL when SDL2_FOUND is set, but externals/CMakeLists cannot set that variable to the required scope. Switch to using ENABLE_SDL2, which we can use since we now include the SDL source. --- src/input_common/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/input_common/CMakeLists.txt b/src/input_common/CMakeLists.txt index c3cfe7efc..de53e1fda 100644 --- a/src/input_common/CMakeLists.txt +++ b/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 -- cgit v1.2.3 From f973274b99d6683d257d77b5d2fd1994853ec3a7 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Sun, 18 Apr 2021 00:40:31 -0400 Subject: general: Ignore implicit-fallthrough for SDL.h SDL 2.0.14 introduces an incompatibility with Clang, causing it to trigger -Wimplicit-fallthrough even though it is marked. Ignore it for now, with a comment mentioning why this is needed. --- src/input_common/sdl/sdl_impl.cpp | 10 ++++++++++ src/yuzu_cmd/config.cpp | 10 ++++++++++ src/yuzu_cmd/emu_window/emu_window_sdl2.cpp | 9 +++++++++ src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp | 10 ++++++++++ src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp | 8 ++++++++ 5 files changed, 47 insertions(+) (limited to 'src') diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index 9418e78fa..f682a6db4 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp @@ -17,7 +17,17 @@ #include #include #include + +// 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 +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + #include "common/logging/log.h" #include "common/param_package.h" #include "common/settings_input.h" diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 2f984d1b8..7e1d5f379 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp @@ -4,7 +4,17 @@ #include #include + +// 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 +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + #include #include "common/file_util.h" #include "common/logging/log.h" diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp index ce8b7c218..3bb555a6b 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp +++ b/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 +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + #include "common/logging/log.h" #include "common/scm_rev.h" #include "core/core.h" diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp index a765fa7b3..3c49a300b 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp @@ -5,8 +5,18 @@ #include #include #include + #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 +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + #include #include #include "common/assert.h" diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp index dfd53e285..3401ad4b4 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp +++ b/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 +#ifdef __clang__ +#pragma clang diagnostic pop +#endif #include EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem) -- cgit v1.2.3