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.
This commit is contained in:
lat9nq 2021-04-17 23:35:13 -04:00
parent 2a2a578932
commit de69a5266f
4 changed files with 7 additions and 8 deletions

View File

@ -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

View File

@ -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()

2
externals/SDL vendored

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

View File

@ -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