Merge pull request #6293 from v1993/master
On Linux, build SDL2 from externals with HIDAPI support
This commit is contained in:
commit
9edfd88a8a
2 changed files with 29 additions and 11 deletions
|
@ -12,6 +12,8 @@ project(yuzu)
|
||||||
# OFF by default, but if ENABLE_SDL2 and MSVC are true then ON
|
# OFF by default, but if ENABLE_SDL2 and MSVC are true then ON
|
||||||
option(ENABLE_SDL2 "Enable the SDL2 frontend" ON)
|
option(ENABLE_SDL2 "Enable the SDL2 frontend" ON)
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF)
|
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF)
|
||||||
|
# On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion
|
||||||
|
CMAKE_DEPENDENT_OPTION(YUZU_ALLOW_SYSTEM_SDL2 "Try using system SDL2 before fallling back to one from externals" NOT UNIX "ENABLE_SDL2" OFF)
|
||||||
|
|
||||||
option(ENABLE_QT "Enable the Qt frontend" ON)
|
option(ENABLE_QT "Enable the Qt frontend" ON)
|
||||||
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
|
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
|
||||||
|
@ -292,20 +294,24 @@ 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.15 QUIET)
|
if (YUZU_ALLOW_SYSTEM_SDL2)
|
||||||
|
find_package(SDL2 2.0.15 QUIET)
|
||||||
|
|
||||||
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")
|
||||||
set(SDL2_LIBRARIES "SDL2::SDL2")
|
set(SDL2_LIBRARIES "SDL2::SDL2")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
|
||||||
|
add_library(SDL2 INTERFACE)
|
||||||
|
target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}")
|
||||||
|
else()
|
||||||
|
message(STATUS "SDL2 2.0.15 or newer not found, falling back to externals.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
|
|
||||||
add_library(SDL2 INTERFACE)
|
|
||||||
target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}")
|
|
||||||
else()
|
else()
|
||||||
message(STATUS "SDL2 2.0.15 or newer not found, falling back to externals.")
|
message(STATUS "Using SDL2 from externals.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
12
externals/CMakeLists.txt
vendored
12
externals/CMakeLists.txt
vendored
|
@ -47,8 +47,20 @@ target_include_directories(unicorn-headers INTERFACE ./unicorn/include)
|
||||||
|
|
||||||
# SDL2
|
# SDL2
|
||||||
if (NOT SDL2_FOUND AND ENABLE_SDL2)
|
if (NOT SDL2_FOUND AND ENABLE_SDL2)
|
||||||
|
# Yuzu itself needs: Events Joystick Haptic Sensor Timers
|
||||||
|
# Yuzu-cmd also needs: Video (depends on Loadso/Dlopen)
|
||||||
|
set(SDL_UNUSED_SUBSYSTEMS
|
||||||
|
Atomic Audio Render Power Threads
|
||||||
|
File CPUinfo Filesystem Locale)
|
||||||
|
foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS})
|
||||||
|
string(TOUPPER ${_SUB} _OPT)
|
||||||
|
option(SDL_${_OPT} "" OFF)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
set(SDL_STATIC ON)
|
set(SDL_STATIC ON)
|
||||||
set(SDL_SHARED OFF)
|
set(SDL_SHARED OFF)
|
||||||
|
option(HIDAPI "" ON)
|
||||||
|
|
||||||
add_subdirectory(SDL EXCLUDE_FROM_ALL)
|
add_subdirectory(SDL EXCLUDE_FROM_ALL)
|
||||||
add_library(SDL2 ALIAS SDL2-static)
|
add_library(SDL2 ALIAS SDL2-static)
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in a new issue