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_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARY}")
target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}") target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
else() 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 # Some installations don't set SDL2_LIBRARIES
if("${SDL2_LIBRARIES}" STREQUAL "") if("${SDL2_LIBRARIES}" STREQUAL "")
message(WARNING "SDL2_LIBRARIES wasn't set, manually setting to SDL2::SDL2") 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}) include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
add_library(SDL2 INTERFACE) add_library(SDL2 INTERFACE)
target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}") target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}")
else()
message(STATUS "SDL2 2.0.14 or newer not found, falling back to externals.")
endif() endif()
endif() endif()
else()
set(SDL2_FOUND NO)
endif() endif()
# Install any missing dependencies with conan install # 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) target_include_directories(unicorn-headers INTERFACE ./unicorn/include)
# SDL2 # SDL2
if (NOT SDL2_FOUND) if (NOT SDL2_FOUND AND ENABLE_SDL2)
set(SDL2_FOUND YES)
add_subdirectory(SDL EXCLUDE_FROM_ALL) add_subdirectory(SDL EXCLUDE_FROM_ALL)
endif() endif()

2
externals/SDL vendored

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

View file

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