From 62ab21972255bf6a92bba02c15a33373a418d681 Mon Sep 17 00:00:00 2001 From: Bradley Fargo Date: Mon, 5 Jan 2026 13:17:28 -0600 Subject: [PATCH 1/2] Fix Linux build compatibility issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CMakeLists.txt: Use 'zlib' pkg-config instead of 'zlib-ng' to get standard zlib API (deflateInit_ etc.) instead of native zlib-ng API (zng_deflateInit_ etc.). The bundled zlib-ng uses ZLIB_COMPAT mode. - Externals/minizip-ng/CMakeLists.txt: Add missing CMake includes for CheckFunctionExists and CheckIncludeFile modules. - Externals/discord-rpc/CMakeLists.txt: Update cmake_minimum_required to 3.5 for CMake 4.x compatibility. - Source/Core/DolphinQt/CMakeLists.txt: Add Qt6::GuiPrivate dependency for qpa/qplatformnativeinterface.h header access on Linux. Tested on Manjaro Linux with Qt 6.10, CMake 4.0, GCC 15. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- CMakeLists.txt | 2 +- Externals/discord-rpc/CMakeLists.txt | 2 +- Externals/minizip-ng/CMakeLists.txt | 3 +++ Source/Core/DolphinQt/CMakeLists.txt | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 674839af57a8..7acf84a5fa1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -672,7 +672,7 @@ dolphin_make_imported_target_if_missing(LibLZMA::LibLZMA LIBLZMA) dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Externals/zstd) -dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals/zlib-ng) +dolphin_find_optional_system_library_pkgconfig(ZLIB zlib ZLIB::ZLIB Externals/zlib-ng) dolphin_find_optional_system_library_pkgconfig(MINIZIP "minizip>=4.0.4" minizip::minizip Externals/minizip-ng diff --git a/Externals/discord-rpc/CMakeLists.txt b/Externals/discord-rpc/CMakeLists.txt index eae0ce06a771..51c82cb89f31 100644 --- a/Externals/discord-rpc/CMakeLists.txt +++ b/Externals/discord-rpc/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.2.0) +cmake_minimum_required (VERSION 3.5) project (DiscordRPC) include(GNUInstallDirs) diff --git a/Externals/minizip-ng/CMakeLists.txt b/Externals/minizip-ng/CMakeLists.txt index 3a2e7e6b670b..56df835f649c 100644 --- a/Externals/minizip-ng/CMakeLists.txt +++ b/Externals/minizip-ng/CMakeLists.txt @@ -1,5 +1,8 @@ project(minizip C) +include(CheckFunctionExists) +include(CheckIncludeFile) + add_library(minizip STATIC minizip-ng/mz.h minizip-ng/mz_compat.c diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 673fd6eae5a7..644c0f36a205 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -14,7 +14,7 @@ endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Svg) +find_package(Qt6 REQUIRED COMPONENTS Core Gui GuiPrivate Widgets Svg) message(STATUS "Found Qt version ${Qt6_VERSION}") set_property(TARGET Qt6::Core PROPERTY INTERFACE_COMPILE_FEATURES "") @@ -420,6 +420,7 @@ target_link_libraries(dolphin-emu PRIVATE core Qt6::Widgets + Qt6::GuiPrivate uicommon imgui implot From 3d3e8924907f212ee2d20c9d896bcd722634e7a3 Mon Sep 17 00:00:00 2001 From: Bradley Fargo Date: Mon, 5 Jan 2026 13:39:58 -0600 Subject: [PATCH 2/2] Make Qt6::GuiPrivate optional for CI compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Qt6::GuiPrivate is needed for qpa/qplatformnativeinterface.h on Linux but may not be available in all CI environments. Make it optional so builds succeed where it's not installed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- Source/Core/DolphinQt/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 644c0f36a205..619a27eced60 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -14,7 +14,8 @@ endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -find_package(Qt6 REQUIRED COMPONENTS Core Gui GuiPrivate Widgets Svg) +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Svg) +find_package(Qt6 QUIET COMPONENTS GuiPrivate) message(STATUS "Found Qt version ${Qt6_VERSION}") set_property(TARGET Qt6::Core PROPERTY INTERFACE_COMPILE_FEATURES "") @@ -420,12 +421,15 @@ target_link_libraries(dolphin-emu PRIVATE core Qt6::Widgets - Qt6::GuiPrivate uicommon imgui implot ) +if(TARGET Qt6::GuiPrivate) + target_link_libraries(dolphin-emu PRIVATE Qt6::GuiPrivate) +endif() + if (WIN32) target_link_libraries(dolphin-emu PRIVATE