Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/15
46 lines
2.0 KiB
Diff
46 lines
2.0 KiB
Diff
From 0efea8020c1d221635aaa0a71529edb392cfe3cc Mon Sep 17 00:00:00 2001
|
|
From: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
Date: Mon, 11 Sep 2023 14:48:32 +0200
|
|
Subject: [PATCH] CMake: Fix build with CMake 3.28 on macOS
|
|
|
|
FindWrapOpenGL.cmake assumed that IMPORTED_LOCATION is the absolute path
|
|
of the library within the framework. That's not the case with CMake 3.28
|
|
anymore. There, IMPORTED_LOCATION is the absolute path of the framework
|
|
directory.
|
|
|
|
The relevant upstream CMake change is
|
|
6b01a27f901b5eb392955fea322cde44a1b782a3.
|
|
|
|
Pick-to: 6.2 6.5 6.6
|
|
Change-Id: I6b702a28318e0978c56dec83c398965aa77ef020
|
|
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
---
|
|
cmake/FindWrapOpenGL.cmake | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/cmake/FindWrapOpenGL.cmake b/cmake/FindWrapOpenGL.cmake
|
|
index 3e6abaf4dda..7295a159caf 100644
|
|
--- a/cmake/FindWrapOpenGL.cmake
|
|
+++ b/cmake/FindWrapOpenGL.cmake
|
|
@@ -14,14 +14,18 @@
|
|
|
|
add_library(WrapOpenGL::WrapOpenGL INTERFACE IMPORTED)
|
|
if(APPLE)
|
|
+ # CMake 3.27 and older:
|
|
# On Darwin platforms FindOpenGL sets IMPORTED_LOCATION to the absolute path of the library
|
|
# within the framework. This ends up as an absolute path link flag, which we don't want,
|
|
# because that makes our .prl files un-relocatable.
|
|
# Extract the framework path instead, and use that in INTERFACE_LINK_LIBRARIES,
|
|
- # which CMake ends up transforming into a reloctable -framework flag.
|
|
+ # which CMake ends up transforming into a relocatable -framework flag.
|
|
# See https://gitlab.kitware.com/cmake/cmake/-/issues/20871 for details.
|
|
+ #
|
|
+ # CMake 3.28 and above:
|
|
+ # IMPORTED_LOCATION is the absolute path the the OpenGL.framework folder.
|
|
get_target_property(__opengl_fw_lib_path OpenGL::GL IMPORTED_LOCATION)
|
|
- if(__opengl_fw_lib_path)
|
|
+ if(__opengl_fw_lib_path AND NOT __opengl_fw_lib_path MATCHES "/([^/]+)\\.framework$")
|
|
get_filename_component(__opengl_fw_path "${__opengl_fw_lib_path}" DIRECTORY)
|
|
endif()
|
|
|