summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <[email protected]>2025-06-27 17:10:28 +0200
committerJoerg Bornemann <[email protected]>2025-06-30 19:45:40 +0200
commitb181132f742a0d212f8ffaf6f8fb48a099ac45dd (patch)
treed65f49659370bee05fc5dab019788802a2e663b5
parent7fee5f840fe6e968cb30a3ee8a17a170364be409 (diff)
CMake: Fix finding of system frameworks on macOS if vcpkg is used
The vcpkg toolchain file sets CMAKE_FIND_FRAMEWORK to LAST unless VCPKG_PREFER_SYSTEM_LIBS is enabled. The latter however has other unwanted implications and is also deprecated. The CMAKE_FIND_FRAMEWORK=LAST setting breaks qt_internal_find_system_framework for libraries like "Network" that are available as framework and as TBD file. Set CMAKE_FIND_FRAMEWORK temporarily to FIRST (the default value) in qt_internal_find_system_framework if vcpkg is used. Change-Id: I2fd3152d75b043a396f7c9b6269e623700077b98 Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Alexey Edelev <[email protected]>
-rw-r--r--cmake/QtFrameworkHelpers.cmake6
1 files changed, 6 insertions, 0 deletions
diff --git a/cmake/QtFrameworkHelpers.cmake b/cmake/QtFrameworkHelpers.cmake
index 1982937aaf8..7fac9bdb203 100644
--- a/cmake/QtFrameworkHelpers.cmake
+++ b/cmake/QtFrameworkHelpers.cmake
@@ -54,6 +54,12 @@ function(qt_internal_find_apple_system_framework out_var framework_name)
# We might revisit this later.
set(cache_var_name "${out_var}Internal")
+ if(QT_USE_VCPKG)
+ # vcpkg.cmake sets CMAKE_FIND_FRAMEWORK to LAST and this setting will find e.g.
+ # libnetwork.tbd instead of Network.framework. Force the default value here.
+ set(CMAKE_FIND_FRAMEWORK FIRST)
+ endif()
+
find_library(${cache_var_name} "${framework_name}")
if(${cache_var_name} AND ${cache_var_name} MATCHES ".framework$")