depot/third_party/nixpkgs/pkgs/development/libraries/qt-6/patches/0001-qtbase-qmake-always-use-libname-instead-of-absolute-.patch
Default email 504525a148 Project import generated by Copybara.
GitOrigin-RevId: bd645e8668ec6612439a9ee7e71f7eac4099d4f6
2024-01-02 12:29:13 +01:00

50 lines
2.4 KiB
Diff

From 90734859d2f9e6b9a1754c3e694ceb1a3c870bce Mon Sep 17 00:00:00 2001
From: Nick Cao <nickcao@nichi.co>
Date: Thu, 13 Apr 2023 23:42:29 +0800
Subject: [PATCH 01/11] qtbase: qmake: always use libname instead of absolute
path in qmake files
In generated qmake files, absolute paths to qt libraries are embedded
and then used in linker flags. However as the libraries can be provided
by qt modules other than the one currently being built, the ebedded
paths can be incorrect.
---
cmake/QtFinishPrlFile.cmake | 7 ++++---
cmake/QtGenerateLibHelpers.cmake | 3 ---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/cmake/QtFinishPrlFile.cmake b/cmake/QtFinishPrlFile.cmake
index 1cf9377e6ce..ac4428bd7a1 100644
--- a/cmake/QtFinishPrlFile.cmake
+++ b/cmake/QtFinishPrlFile.cmake
@@ -64,9 +64,10 @@ foreach(line ${lines})
endif()
list(APPEND adjusted_libs "-framework" "${CMAKE_MATCH_1}")
else()
- # Not a framework, transform the Qt module into relocatable relative path.
- qt_strip_library_version_suffix(relative_lib "${relative_lib}")
- list(APPEND adjusted_libs "$$[QT_INSTALL_LIBS]/${relative_lib}")
+ # Not a framework, extract the library name and prepend an -l to make
+ # it relocatable.
+ qt_transform_absolute_library_paths_to_link_flags(lib_with_link_flag "${lib}")
+ list(APPEND adjusted_libs "${lib_with_link_flag}")
endif()
endif()
else()
diff --git a/cmake/QtGenerateLibHelpers.cmake b/cmake/QtGenerateLibHelpers.cmake
index 3ffe354fd8d..441332d4582 100644
--- a/cmake/QtGenerateLibHelpers.cmake
+++ b/cmake/QtGenerateLibHelpers.cmake
@@ -73,9 +73,6 @@ function(qt_transform_absolute_library_paths_to_link_flags out_var library_path_
string(TOLOWER "${dir}" dir_lower)
# If library_path isn't in default link directories, we should add it to link flags.
list(FIND IMPLICIT_LINK_DIRECTORIES_LOWER "${dir_lower}" index)
- if(${index} EQUAL -1)
- list(APPEND out_list "-L\"${dir}\"")
- endif()
list(APPEND out_list "${lib_name_with_link_flag}")
else()
list(APPEND out_list "${library_path}")
--
2.42.0