diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 219e27ed..c010761d 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.20261019.1
- 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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94ae9fbf..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)
@@ -15,7 +23,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)
# ----------------------------------
@@ -37,6 +44,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()
diff --git a/scripts/vcpkg b/scripts/vcpkg
index 32bb8d6e..7acffe30 160000
--- a/scripts/vcpkg
+++ b/scripts/vcpkg
@@ -1 +1 @@
-Subproject commit 32bb8d6e808082a8d3af51ca1b91785fbc2edab4
+Subproject commit 7acffe30cb3fc5de2196603de20c9d68c5018415
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@
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/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
diff --git a/src/share/install.cmake b/src/share/install.cmake
index 11ee0ddc..adfaa2a7 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})
@@ -61,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
@@ -85,8 +80,10 @@ if(_vcpkg_lib_dir)
")
endif()
-qm_deploy_directory(${CMAKE_INSTALL_PREFIX}
- PLUGINS ${_plugins}
+qm_deploy_directory(.
+ 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}
@@ -100,12 +97,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}