瀏覽代碼

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.
lat9nq 5 年之前
父節點
當前提交
de69a5266f
共有 4 個文件被更改,包括 7 次插入8 次删除
  1. 4 4
      CMakeLists.txt
  2. 1 2
      externals/CMakeLists.txt
  3. 1 1
      externals/SDL
  4. 1 1
      src/input_common/CMakeLists.txt

+ 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