diff -r b23e1bb44908 3rdparty/CMakeLists.txt
--- a/3rdparty/CMakeLists.txt	Mon Sep 02 21:57:33 2024 +0200
+++ b/3rdparty/CMakeLists.txt	Tue Sep 03 11:00:42 2024 +0900
@@ -43,6 +43,7 @@
 if (USE_SYSTEM_PUGIXML)
 	pkg_check_modules(PUGIXML REQUIRED IMPORTED_TARGET pugixml>=1.11)
 	add_library(pugixml INTERFACE)
+	target_include_directories(pugixml INTERFACE ${PUGIXML_INCLUDE_DIRS})
 	target_link_libraries(pugixml INTERFACE PkgConfig::PUGIXML)
 else()
 	add_subdirectory(pugixml EXCLUDE_FROM_ALL)
@@ -188,7 +189,7 @@
 	if(VULKAN_FOUND)
 		add_library(3rdparty_vulkan INTERFACE)
 		target_compile_definitions(3rdparty_vulkan INTERFACE -DHAVE_VULKAN)
-		target_link_libraries(3rdparty_vulkan INTERFACE SPIRV Vulkan::Vulkan)
+		target_link_libraries(3rdparty_vulkan INTERFACE SPIRV glslang glslang-default-resource-limits Vulkan::Vulkan)
 
 		if(UNIX AND NOT APPLE)
 			find_package(Wayland)
diff -r b23e1bb44908 3rdparty/SPIRV/CMakeLists.txt
--- a/3rdparty/SPIRV/CMakeLists.txt	Mon Sep 02 21:57:33 2024 +0200
+++ b/3rdparty/SPIRV/CMakeLists.txt	Tue Sep 03 11:00:42 2024 +0900
@@ -1,3 +1,7 @@
-set(SKIP_SPIRV_TOOLS_INSTALL ON CACHE BOOL "Skip spirv-tools install" FORCE)
-set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers" CACHE STRING "SPIRV-Headers path" FORCE)
-add_subdirectory(SPIRV-Tools)
+if(USE_SYSTEM_GLSLANG)
+	
+else()
+	set(SKIP_SPIRV_TOOLS_INSTALL ON CACHE BOOL "Skip spirv-tools install" FORCE)
+	set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers" CACHE STRING "SPIRV-Headers path" FORCE)
+	add_subdirectory(SPIRV-Tools)
+endif()
diff -r b23e1bb44908 3rdparty/glslang/CMakeLists.txt
--- a/3rdparty/glslang/CMakeLists.txt	Mon Sep 02 21:57:33 2024 +0200
+++ b/3rdparty/glslang/CMakeLists.txt	Tue Sep 03 11:00:42 2024 +0900
@@ -1,11 +1,15 @@
 #glslang
 
-set(ENABLE_PCH OFF CACHE BOOL "Enables Precompiled header" FORCE)
-set(BUILD_EXTERNAL OFF CACHE BOOL "Build external dependencies in /External" FORCE)
-set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "Skip installation" FORCE)
-set(ENABLE_SPVREMAPPER OFF CACHE BOOL "Enables building of SPVRemapper" FORCE)
-set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "Builds glslangValidator and spirv-remap" FORCE)
-set(ENABLE_HLSL OFF CACHE BOOL "Enables HLSL input support" FORCE)
-set(ENABLE_OPT OFF CACHE BOOL "Enables spirv-opt capability if present" FORCE)
-set(ENABLE_CTEST OFF CACHE BOOL "Enables testing" FORCE)
-add_subdirectory(glslang)
+if(USE_SYSTEM_GLSLANG)
+	
+else()
+	set(ENABLE_PCH OFF CACHE BOOL "Enables Precompiled header" FORCE)
+	set(BUILD_EXTERNAL OFF CACHE BOOL "Build external dependencies in /External" FORCE)
+	set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "Skip installation" FORCE)
+	set(ENABLE_SPVREMAPPER OFF CACHE BOOL "Enables building of SPVRemapper" FORCE)
+	set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "Builds glslangValidator and spirv-remap" FORCE)
+	set(ENABLE_HLSL OFF CACHE BOOL "Enables HLSL input support" FORCE)
+	set(ENABLE_OPT OFF CACHE BOOL "Enables spirv-opt capability if present" FORCE)
+	set(ENABLE_CTEST OFF CACHE BOOL "Enables testing" FORCE)
+	add_subdirectory(glslang)
+endif()
diff -r b23e1bb44908 3rdparty/zstd/CMakeLists.txt
--- a/3rdparty/zstd/CMakeLists.txt	Mon Sep 02 21:57:33 2024 +0200
+++ b/3rdparty/zstd/CMakeLists.txt	Tue Sep 03 11:00:42 2024 +0900
@@ -1,3 +1,11 @@
+if(USE_SYSTEM_ZSTD)
+	message(STATUS "RPCS3: Using system ZSTD")
+	pkg_check_modules(ZSTD REQUIRED IMPORTED_TARGET libzstd)
+
+	add_library(3rdparty_zstd INTERFACE)
+	target_link_libraries(3rdparty_zstd INTERFACE PkgConfig::ZSTD)
+else(USE_SYSTEM_ZSTD)
+
 option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
 option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
 option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON)
@@ -6,3 +14,5 @@
 add_subdirectory(zstd/build/cmake EXLUDE_FROM_ALL)
 add_library(3rdparty_zstd INTERFACE)
 target_link_libraries(3rdparty_zstd INTERFACE libzstd_static)
+
+endif(USE_SYSTEM_ZSTD)
diff -r b23e1bb44908 CMakeLists.txt
--- a/CMakeLists.txt	Mon Sep 02 21:57:33 2024 +0200
+++ b/CMakeLists.txt	Tue Sep 03 11:00:42 2024 +0900
@@ -29,6 +29,11 @@
 option(USE_SYSTEM_FFMPEG "Prefer system ffmpeg instead of the prebuild one" OFF)
 option(USE_SYSTEM_OPENAL "Prefer system OpenAL instead of the prebuild one" ON)
 option(USE_SYSTEM_CURL "Prefer system Curl instead of the prebuild one" ON)
+option(USE_SYSTEM_FAUDIO "Prefer system FAudio instead of the builtin one" ON)
+option(USE_SYSTEM_GLSLANG "Prefer system glslang/SPIRV libraries instead of the builtin ones" ON)
+option(USE_SYSTEM_LIBPNG "Prefer system libpng instead of the builtin one" ON)
+option(USE_SYSTEM_PUGIXML "Prefer system pugixml instead of the builtin one" ON)
+option(USE_SYSTEM_ZSTD "Prefer system zstd instead of the builtin one" ON)
 
 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/buildfiles/cmake")
 
diff -r b23e1bb44908 rpcs3/Emu/Cell/Modules/cellMic.h
--- a/rpcs3/Emu/Cell/Modules/cellMic.h	Mon Sep 02 21:57:33 2024 +0200
+++ b/rpcs3/Emu/Cell/Modules/cellMic.h	Tue Sep 03 11:00:42 2024 +0900
@@ -3,7 +3,7 @@
 #include "Utilities/Thread.h"
 #include "Emu/Cell/timers.hpp"
 
-#include "3rdparty/OpenAL/openal-soft/include/AL/alext.h"
+#include <AL/alext.h>
 
 // Error Codes
 enum CellMicInError : u32
diff -r b23e1bb44908 rpcs3/Emu/RSX/Program/SPIRVCommon.cpp
--- a/rpcs3/Emu/RSX/Program/SPIRVCommon.cpp	Mon Sep 02 21:57:33 2024 +0200
+++ b/rpcs3/Emu/RSX/Program/SPIRVCommon.cpp	Tue Sep 03 11:00:42 2024 +0900
@@ -12,7 +12,8 @@
 #pragma clang diagnostic ignored "-Winconsistent-missing-override"
 #endif
 #endif
-#include "3rdparty/glslang/glslang/SPIRV/GlslangToSpv.h"
+#include <glslang/Public/ShaderLang.h>
+#include <glslang/SPIRV/GlslangToSpv.h>
 #ifdef _MSC_VER
 #pragma warning(pop)
 #else
diff -r b23e1bb44908 rpcs3/rpcs3qt/microphone_creator.cpp
--- a/rpcs3/rpcs3qt/microphone_creator.cpp	Mon Sep 02 21:57:33 2024 +0200
+++ b/rpcs3/rpcs3qt/microphone_creator.cpp	Tue Sep 03 11:00:42 2024 +0900
@@ -4,7 +4,7 @@
 #include "Utilities/StrFmt.h"
 #include "Utilities/StrUtil.h"
 
-#include "3rdparty/OpenAL/openal-soft/include/AL/alext.h"
+#include <AL/alext.h>
 
 LOG_CHANNEL(cfg_log, "CFG");
 
