summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Negyokru <negyokru@inf.u-szeged.hu>2023-02-16 09:44:56 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-03-01 19:36:43 +0000
commit75ae9b61967dc484e91f3dbee435045e63258c84 (patch)
treef1c6bdbec08962fa2904aa3ddc2363415c285391
parent4a5650ecb99779acc6e789dedb2db5ea14d5c29e (diff)
downloadqtwebengine-75ae9b61967dc484e91f3dbee435045e63258c84.tar.gz
Pass system library paths to cmake
Generate a new rsp file for each cmake target containing '-L' flags and pass them to cmake. Task-number: QTBUG-105053 Task-number: QTBUG-111225 Change-Id: Ib25c009795b776bc5f0f6e07fb89b932ef30b484 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit a21742ef6064c1e84ebc43468d253dd14d86bf02) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--cmake/Functions.cmake26
-rw-r--r--src/core/configure/BUILD.root.gn.in4
-rw-r--r--src/pdf/configure/BUILD.root.gn.in2
3 files changed, 27 insertions, 5 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 03d19992f..d3f8862ce 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -453,9 +453,31 @@ function(add_linker_options target buildDir completeStatic)
"$<1:-Wl,--start-group $<$<CONFIG:${config}>:@${archives_rsp}> -Wl,--end-group>"
)
endif()
+
+ # we need only the '-L' flags from lflags.rsp, filter them
+ set(lflags_rsp "${buildDir}/${ninjaTarget}_lflags.rsp")
+ set(lflags_filtered_rsp "${buildDir}/${ninjaTarget}_lflags_filtered.rsp")
+ set(lflags_filter_script "${buildDir}/${ninjaTarget}_lflags_filter.cmake")
+ file(GENERATE OUTPUT ${lflags_filter_script}
+ CONTENT "file(STRINGS ${lflags_rsp} lflags)
+ string(REGEX MATCHALL \"-L.*\" lflags_filtered \${lflags})
+ file(WRITE ${lflags_filtered_rsp} \${lflags_filtered})"
+ FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ )
+ add_custom_command(
+ OUTPUT ${lflags_filtered_rsp}
+ COMMAND ${CMAKE_COMMAND} -P ${lflags_filter_script}
+ DEPENDS ${lflags_filter_script} ${lflags_rsp}
+ )
+ add_custom_target(
+ run_${cmakeTarget}_${config}_lflags_filter
+ DEPENDS ${lflags_filtered_rsp}
+ )
+ add_dependencies(${cmakeTarget} run_${cmakeTarget}_${config}_lflags_filter)
+
# linker here options are just to prevent processing it by cmake
target_link_libraries(${cmakeTarget} PRIVATE
- "$<1:-Wl,--no-fatal-warnings $<$<CONFIG:${config}>:@${libs_rsp}> -Wl,--no-fatal-warnings>"
+ "$<1:-Wl,--no-fatal-warnings $<$<CONFIG:${config}>:@${lflags_filtered_rsp}> $<$<CONFIG:${config}>:@${libs_rsp}> -Wl,--no-fatal-warnings>"
)
endif()
if(MACOS)
@@ -1176,7 +1198,7 @@ function(add_gn_command)
file(WRITE ${gnArgArgFile} ${arg_GN_ARGS})
foreach(ninjaTarget ${arg_NINJA_TARGETS})
- list(APPEND output ${ninjaTarget}_objects.rsp ${ninjaTarget}_archives.rsp ${ninjaTarget}_libs.rsp)
+ list(APPEND output ${ninjaTarget}_objects.rsp ${ninjaTarget}_archives.rsp ${ninjaTarget}_libs.rsp ${ninjaTarget}_lflags.rsp)
endforeach()
list(TRANSFORM output PREPEND "${arg_BUILDDIR}/")
diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in
index 40b5fe602..67b02701a 100644
--- a/src/core/configure/BUILD.root.gn.in
+++ b/src/core/configure/BUILD.root.gn.in
@@ -97,7 +97,7 @@ config("cpp17_config") {
}
shared_library("QtWebEngineCore") {
- rsp_types = [ "objects", "archives", "libs" ]
+ rsp_types = [ "objects", "archives", "libs", "lflags"]
configs += [
":cpp17_config",
":QtWebEngineCore_config",
@@ -705,7 +705,7 @@ if (enable_extensions) {
if (enable_spellcheck) {
shared_library("convert_dict") {
- rsp_types = [ "objects", "archives", "libs" ]
+ rsp_types = [ "objects", "archives", "libs", "lflags" ]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
deps = [
"//chrome/tools/convert_dict:lib",
diff --git a/src/pdf/configure/BUILD.root.gn.in b/src/pdf/configure/BUILD.root.gn.in
index da41d80cc..3918c1e9f 100644
--- a/src/pdf/configure/BUILD.root.gn.in
+++ b/src/pdf/configure/BUILD.root.gn.in
@@ -51,7 +51,7 @@ config("cpp17_config") {
static_library("QtPdf") {
complete_static_lib = true
- rsp_types = [ "objects", "archives", "libs" ]
+ rsp_types = [ "objects", "archives", "libs", "lflags" ]
configs += [
":cpp17_config",
":QtPdf_config"