diff --git a/PCSX2_qt.sln b/PCSX2_qt.sln
index c0d4d6b037..fcc2268904 100644
--- a/PCSX2_qt.sln
+++ b/PCSX2_qt.sln
@@ -56,6 +56,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ryml", "3rdparty\rapidyaml\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glslang", "3rdparty\glslang\glslang.vcxproj", "{EF6834A9-11F3-4331-BC34-21B325ABB180}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL", "3rdparty\sdl2\SDL.vcxproj", "{812B4434-FD6B-4CB2-8865-5FD8EB34B046}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug AVX2|x64 = Debug AVX2|x64
@@ -342,6 +344,18 @@ Global
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release AVX2|x64.Build.0 = Release|x64
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release|x64.ActiveCfg = Release|x64
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release|x64.Build.0 = Release|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug AVX2|x64.ActiveCfg = Debug|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug AVX2|x64.Build.0 = Debug|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug|x64.ActiveCfg = Debug|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug|x64.Build.0 = Debug|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel AVX2|x64.ActiveCfg = Devel|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel AVX2|x64.Build.0 = Devel|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel|x64.ActiveCfg = Devel|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel|x64.Build.0 = Devel|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release AVX2|x64.ActiveCfg = Release|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release AVX2|x64.Build.0 = Release|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release|x64.ActiveCfg = Release|x64
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -367,6 +381,7 @@ Global
{BF74C473-DC04-44B3-92E8-4145F4E77342} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
{DE9653B6-17DD-356A-9EE0-28A731772587} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
{EF6834A9-11F3-4331-BC34-21B325ABB180} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
+ {812B4434-FD6B-4CB2-8865-5FD8EB34B046} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0BC474EA-3628-45D3-9DBC-E22D0B7E0F77}
diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
index 63934ff50c..30d15e4cf3 100644
--- a/cmake/SearchForStuff.cmake
+++ b/cmake/SearchForStuff.cmake
@@ -144,7 +144,9 @@ else()
check_lib(SOUNDTOUCH SoundTouch SoundTouch.h PATH_SUFFIXES soundtouch)
check_lib(SAMPLERATE samplerate samplerate.h)
- check_lib(SDL2 SDL2 SDL.h PATH_SUFFIXES SDL2)
+ if(NOT QT_BUILD)
+ check_lib(SDL2 SDL2 SDL.h PATH_SUFFIXES SDL2)
+ endif()
if(UNIX AND NOT APPLE)
find_package(X11 REQUIRED)
@@ -233,7 +235,16 @@ if(NOT USE_SYSTEM_YAML)
endif()
if(QT_BUILD)
- find_package(Qt6 COMPONENTS Core Gui Widgets Network LinguistTools REQUIRED)
+ # Default to bundled Qt6 for Windows.
+ if(WIN32 AND NOT DEFINED Qt6_DIR)
+ set(Qt6_DIR ${CMAKE_SOURCE_DIR}/3rdparty/qt/6.2.2/msvc2019_64/lib/cmake/Qt6)
+ endif()
+
+ # Find the Qt components that we need.
+ find_package(Qt6 COMPONENTS CoreTools Core GuiTools Gui WidgetsTools Widgets Network LinguistTools REQUIRED)
+
+ # We use the bundled (latest) SDL version for Qt.
+ add_subdirectory(3rdparty/sdl2 EXCLUDE_FROM_ALL)
endif()
add_subdirectory(3rdparty/libchdr/libchdr EXCLUDE_FROM_ALL)
diff --git a/pcsx2/CMakeLists.txt b/pcsx2/CMakeLists.txt
index 1e66e57fb9..0febfda954 100644
--- a/pcsx2/CMakeLists.txt
+++ b/pcsx2/CMakeLists.txt
@@ -68,9 +68,14 @@ if(XDG_STD)
target_compile_definitions(PCSX2_FLAGS INTERFACE XDG_STD)
endif()
-if(TARGET PkgConfig::SDL2)
+if(TARGET PkgConfig::SDL2 OR QT_BUILD)
target_compile_definitions(PCSX2_FLAGS INTERFACE SDL_BUILD)
- target_link_libraries(PCSX2_FLAGS INTERFACE PkgConfig::SDL2)
+ if (QT_BUILD)
+ # Use our in-tree SDL build.
+ target_link_libraries(PCSX2_FLAGS INTERFACE SDL2::SDL2-static)
+ else()
+ target_link_libraries(PCSX2_FLAGS INTERFACE PkgConfig::SDL2)
+ endif()
if(PCSX2_CORE)
target_sources(PCSX2 PRIVATE
Frontend/SDLInputSource.cpp
diff --git a/pcsx2/pcsx2core.vcxproj b/pcsx2/pcsx2core.vcxproj
index 24f0372e36..cc74316647 100644
--- a/pcsx2/pcsx2core.vcxproj
+++ b/pcsx2/pcsx2core.vcxproj
@@ -45,13 +45,14 @@
$(SolutionDir)3rdparty\cubeb\cubeb\include;$(SolutionDir)3rdparty\cubeb\include;%(AdditionalIncludeDirectories)
$(SolutionDir)3rdparty\imgui\imgui;$(SolutionDir)3rdparty\imgui\include;%(AdditionalIncludeDirectories)
$(SolutionDir)3rdparty\simpleini\include;%(AdditionalIncludeDirectories)
+ $(SolutionDir)3rdparty\sdl2\include;$(SolutionDir)3rdparty\sdl2\SDL\include;%(AdditionalIncludeDirectories)
Async
Use
PrecompiledHeader.h
PrecompiledHeader.h;%(ForcedIncludeFiles)
NoExtensions
/Zc:externConstexpr %(AdditionalOptions)
- WIN32_LEAN_AND_MEAN;LZMA_API_STATIC;BUILD_DX=1;ENABLE_VULKAN;SPU2X_CUBEB;PCSX2_CORE;DISABLE_RECORDING;%(PreprocessorDefinitions)
+ WIN32_LEAN_AND_MEAN;LZMA_API_STATIC;BUILD_DX=1;ENABLE_VULKAN;SPU2X_CUBEB;SDL_BUILD;PCSX2_CORE;DISABLE_RECORDING;%(PreprocessorDefinitions)
PCSX2_DEBUG;PCSX2_DEVBUILD;_SECURE_SCL_=1;%(PreprocessorDefinitions)
PCSX2_DEVEL;PCSX2_DEVBUILD;NDEBUG;_SECURE_SCL_=1;%(PreprocessorDefinitions)
NDEBUG;_SECURE_SCL_=0;%(PreprocessorDefinitions)
@@ -180,20 +181,7 @@
-
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
-
+
@@ -493,20 +481,7 @@
-
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
-
+
@@ -788,6 +763,9 @@
{88fb34ec-845e-4f21-a552-f1573b9ed167}
+
+ {812b4434-fd6b-4cb2-8865-5fd8eb34b046}
+
{4639972e-424e-4e13-8b07-ca403c481346}