From 746041a2ab2e4407828cea958031191f26f89f78 Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 00:10:41 +0800 Subject: [PATCH 01/12] Install the OpenMP runtime on Windows --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94ae9fbf..c8376d95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,8 @@ if(APPLICATION_INSTALL) include(CMakePackageConfigHelpers) if(MSVC) set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION "") + # sleefdft from vcpkg, a dependency of Rubber Band, requires the OpenMP runtime vcomp140.dll + set(CMAKE_INSTALL_OPENMP_LIBRARIES ON) include(InstallRequiredSystemLibraries) endif() endif() From 8f8afc9fe304bee1f7834b18f2ce201304a0b07a Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 00:10:50 +0800 Subject: [PATCH 02/12] Remove the unused MSVC runtime option --- CMakeLists.txt | 1 - src/share/install.cmake | 6 ------ 2 files changed, 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c8376d95..d52216d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) option(APPLICATION_BUILD_TESTS "Build test cases" OFF) option(APPLICATION_INSTALL "Install this project" ON) option(APPLICATION_ENABLE_DEVEL "Install developer files" OFF) -option(APPLICATION_INSTALL_MSVC_RUNTIME "Install MSVC runtime" OFF) option(APPLICATION_CONFIGURE_INSTALLER "Configure installer" OFF) # ---------------------------------- diff --git a/src/share/install.cmake b/src/share/install.cmake index 11ee0ddc..9743b1ff 100644 --- a/src/share/install.cmake +++ b/src/share/install.cmake @@ -100,12 +100,6 @@ if(_vcpkg_lib_dir) install(CODE "set(ENV{LD_LIBRARY_PATH} \"\${_old_ld_library_path}\")") endif() -# Install vcruntime -if(MSVC AND APPLICATION_INSTALL_MSVC_RUNTIME) - set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION "${OUTPUT_DIR}") - include(InstallRequiredSystemLibraries) -endif() - if(APPLE) install(DIRECTORY ${CMAKE_INSTALL_PREFIX}/qml/ DESTINATION ${CK_INSTALL_QML_DIR} From 28a24848c8a2f87ddd4790ef12c641e6c15aab8e Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 00:10:50 +0800 Subject: [PATCH 03/12] Deploy Qt plugins with QT_PLUGINS --- src/share/install.cmake | 55 +++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/src/share/install.cmake b/src/share/install.cmake index 9743b1ff..da9f18ed 100644 --- a/src/share/install.cmake +++ b/src/share/install.cmake @@ -8,37 +8,30 @@ install(DIRECTORY ${CK_BUILD_MAIN_DIR}/share/ qm_find_qt(Core) -set(_plugins - generic/qtuiotouchplugin - iconengines/qsvgicon - imageformats/q* - networkinformation/qnetworklistmanager - tls/q* +# QT_PLUGINS deploys the plugins of every Qt module in the deployment. The OpenSSL backend requires +# OpenSSL, which the deployment does not include. The QML debugging plugins serve development only. +# Qt SQL is in the deployment only as a dependency of Qt Quick Local Storage, which DiffScope does +# not use, therefore the SQL drivers are excluded with the module. +set(_qt_plugins_exclude + generic/qinsighttracker + tls/qopensslbackend + qmltooling/qmldbg_debugger + qmltooling/qmldbg_inspector + qmltooling/qmldbg_local + qmltooling/qmldbg_messages + qmltooling/qmldbg_native + qmltooling/qmldbg_nativedebugger + qmltooling/qmldbg_preview + qmltooling/qmldbg_profiler + qmltooling/qmldbg_quickeventreplay + qmltooling/qmldbg_quickprofiler + qmltooling/qmldbg_server + qmltooling/qmldbg_tcp ) -if(WIN32) - # Windows - list(APPEND _plugins - platforms/qwindows - styles/qmodernwindowsstyle - ) -elseif(APPLE) - # Mac - list(APPEND _plugins - platforms/qcocoa - styles/qmacstyle - platforminputcontexts/q* - printsupport/q* - virtualkeyboard/q* - ) -else() - # Linux - list(APPEND _plugins - platforms/qxcb - platforminputcontexts/* - xcbglintegrations/* - ) -endif() +set(_qt_plugins_exclude_modules + Sql +) if(WIN32) set(_lib_dir ${CK_INSTALL_RUNTIME_DIR}) @@ -86,7 +79,9 @@ if(_vcpkg_lib_dir) endif() qm_deploy_directory(${CMAKE_INSTALL_PREFIX} - PLUGINS ${_plugins} + QT_PLUGINS + QT_PLUGINS_EXCLUDE ${_qt_plugins_exclude} + QT_PLUGINS_EXCLUDE_MODULES ${_qt_plugins_exclude_modules} LIBRARY_DIR ${_lib_dir} PLUGIN_DIR ${CK_INSTALL_LIBRARY_DIR}/Qt/plugins EXTRA_SEARCHING_PATHS ${_extra_search_path} From 317b2989081f79b225391a257e8c39f74a960eab Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 00:12:58 +0800 Subject: [PATCH 04/12] Deploy into the prefix of cmake --install --- src/share/install.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/share/install.cmake b/src/share/install.cmake index da9f18ed..2fbf1dc7 100644 --- a/src/share/install.cmake +++ b/src/share/install.cmake @@ -78,7 +78,7 @@ if(_vcpkg_lib_dir) ") endif() -qm_deploy_directory(${CMAKE_INSTALL_PREFIX} +qm_deploy_directory(. QT_PLUGINS QT_PLUGINS_EXCLUDE ${_qt_plugins_exclude} QT_PLUGINS_EXCLUDE_MODULES ${_qt_plugins_exclude_modules} From 39f1042205cbacc4e827e01c3ca64f18ff210a01 Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 00:46:11 +0800 Subject: [PATCH 05/12] Update scopicflow --- src/libs/3rdparty/scopicflow | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/3rdparty/scopicflow b/src/libs/3rdparty/scopicflow index 7d458e9e..2c4ac3d6 160000 --- a/src/libs/3rdparty/scopicflow +++ b/src/libs/3rdparty/scopicflow @@ -1 +1 @@ -Subproject commit 7d458e9efe80486d48c0f5a73bcf9af361a29509 +Subproject commit 2c4ac3d6d5e18f432c898bde48e4dac097d4d5f8 From 913a8e3b1e35fefb69462b651faaa054f3a9c00b Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 01:20:26 +0800 Subject: [PATCH 06/12] Raise the macOS deployment target to 13.3 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b2ebab6f..af49940b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,7 +83,7 @@ jobs: INNOSETUP_REF: is-6_5_4 DSSP_CHANNEL: nightly DSSP_VERSION: 0.1.0-nightly.20261017.2 - MACOSX_DEPLOYMENT_TARGET: 13.0 + MACOSX_DEPLOYMENT_TARGET: 13.3 BUILD_DIR: ${{ github.workspace }}/build/build INSTALL_DIR: ${{ github.workspace }}/build/install CCACHE_DIR: ${{ github.workspace }}/build/ccache From b77f5e0bf0fff5e0b02d5916b7f084e4d549569f Mon Sep 17 00:00:00 2001 From: SineStriker Date: Mon, 19 Oct 2026 01:38:54 +0800 Subject: [PATCH 07/12] Update vcpkg overlay --- scripts/vcpkg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/vcpkg b/scripts/vcpkg index 32bb8d6e..ec490292 160000 --- a/scripts/vcpkg +++ b/scripts/vcpkg @@ -1 +1 @@ -Subproject commit 32bb8d6e808082a8d3af51ca1b91785fbc2edab4 +Subproject commit ec490292a0091bb61b23e7ec2a087cb8e59e01a2 From 5f1c196d59fa77b59d899a9e90618494ce14aad1 Mon Sep 17 00:00:00 2001 From: SineStriker Date: Tue, 20 Oct 2026 19:13:13 +0800 Subject: [PATCH 08/12] Update submodules --- scripts/vcpkg | 2 +- src/libs/3rdparty/dspxmodel | 2 +- src/libs/3rdparty/svscraft | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/vcpkg b/scripts/vcpkg index ec490292..7acffe30 160000 --- a/scripts/vcpkg +++ b/scripts/vcpkg @@ -1 +1 @@ -Subproject commit ec490292a0091bb61b23e7ec2a087cb8e59e01a2 +Subproject commit 7acffe30cb3fc5de2196603de20c9d68c5018415 diff --git a/src/libs/3rdparty/dspxmodel b/src/libs/3rdparty/dspxmodel index 13d950af..d91aab2e 160000 --- a/src/libs/3rdparty/dspxmodel +++ b/src/libs/3rdparty/dspxmodel @@ -1 +1 @@ -Subproject commit 13d950af2a7b9c1aa6a8c260832497c47de0b477 +Subproject commit d91aab2e0167bab7fd2603b261468a2d0f96d4dc diff --git a/src/libs/3rdparty/svscraft b/src/libs/3rdparty/svscraft index 2116bd16..b5188cb5 160000 --- a/src/libs/3rdparty/svscraft +++ b/src/libs/3rdparty/svscraft @@ -1 +1 @@ -Subproject commit 2116bd16a14ec783fc7181609db26114a90e0ea4 +Subproject commit b5188cb56d0feb2559b9dba448d844cd33fd8edb From 3c270d543a19d3d6499e3b0baf16ecfca530741d Mon Sep 17 00:00:00 2001 From: SineStriker Date: Tue, 20 Oct 2026 19:13:13 +0800 Subject: [PATCH 09/12] Lower the macOS deployment target to 13.0 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af49940b..b2ebab6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,7 +83,7 @@ jobs: INNOSETUP_REF: is-6_5_4 DSSP_CHANNEL: nightly DSSP_VERSION: 0.1.0-nightly.20261017.2 - MACOSX_DEPLOYMENT_TARGET: 13.3 + MACOSX_DEPLOYMENT_TARGET: 13.0 BUILD_DIR: ${{ github.workspace }}/build/build INSTALL_DIR: ${{ github.workspace }}/build/install CCACHE_DIR: ${{ github.workspace }}/build/ccache From 5911ac3c0b84e0116b9de40a74a227f64441d274 Mon Sep 17 00:00:00 2001 From: SineStriker Date: Tue, 20 Oct 2026 19:13:13 +0800 Subject: [PATCH 10/12] Record the minimum macOS version in Info.plist --- CMakeLists.txt | 8 ++++++++ src/app/info.plist.in | 3 +++ 2 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d52216d7..b94172ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,14 @@ cmake_minimum_required(VERSION 3.19) cmake_policy(SET CMP0141 NEW) +# The oldest macOS that Qt 6.11 supports, unless the MACOSX_DEPLOYMENT_TARGET environment variable +# or the cache specifies another. Info.plist records it as LSMinimumSystemVersion. The variable +# must be set before project(). +if(CMAKE_HOST_APPLE AND NOT DEFINED CMAKE_OSX_DEPLOYMENT_TARGET AND + NOT DEFINED ENV{MACOSX_DEPLOYMENT_TARGET}) + set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0 CACHE STRING "Minimum macOS version") +endif() + project(DiffScope VERSION 0.2.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) diff --git a/src/app/info.plist.in b/src/app/info.plist.in index c10a6e46..fbc8031b 100644 --- a/src/app/info.plist.in +++ b/src/app/info.plist.in @@ -36,6 +36,9 @@ CSResourcesFileMapped + LSMinimumSystemVersion + @CMAKE_OSX_DEPLOYMENT_TARGET@ + NSHumanReadableCopyright @RC_COPYRIGHT@ From 13fa6c786f84362acbfbfb6ffb4a547ee87d2bf9 Mon Sep 17 00:00:00 2001 From: SineStriker Date: Tue, 20 Oct 2026 19:13:14 +0800 Subject: [PATCH 11/12] Deploy only the Qt Labs module that Qt Quick Dialogs imports --- src/share/install.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/share/install.cmake b/src/share/install.cmake index 2fbf1dc7..adfaa2a7 100644 --- a/src/share/install.cmake +++ b/src/share/install.cmake @@ -54,8 +54,10 @@ if(UNIX AND NOT APPLE) list(APPEND _exclude "^/(usr/)?lib(64)?/") endif() +# Qt Labs Folder List Model is imported by the non-native file and folder dialogs of Qt Quick +# Dialogs. DiffScope imports no other Qt Labs module. set(_qml - Qt/labs + Qt/labs/folderlistmodel Qt5Compat QtCore QtQml From 30f79ff949730f8b0bf027dfc56820b43c44a6fd Mon Sep 17 00:00:00 2001 From: SineStriker Date: Tue, 20 Oct 2026 20:08:49 +0800 Subject: [PATCH 12/12] Quote the macOS deployment target of CI, which YAML reads as the number 13 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b2ebab6f..6a8a893f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,7 +83,7 @@ jobs: INNOSETUP_REF: is-6_5_4 DSSP_CHANNEL: nightly DSSP_VERSION: 0.1.0-nightly.20261017.2 - MACOSX_DEPLOYMENT_TARGET: 13.0 + MACOSX_DEPLOYMENT_TARGET: '13.0' BUILD_DIR: ${{ github.workspace }}/build/build INSTALL_DIR: ${{ github.workspace }}/build/install CCACHE_DIR: ${{ github.workspace }}/build/ccache