diff options
author | Martin Negyokru <negyokru@inf.u-szeged.hu> | 2023-02-16 09:44:56 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-03-01 19:36:43 +0000 |
commit | 75ae9b61967dc484e91f3dbee435045e63258c84 (patch) | |
tree | f1c6bdbec08962fa2904aa3ddc2363415c285391 /cmake | |
parent | 4a5650ecb99779acc6e789dedb2db5ea14d5c29e (diff) | |
download | qtwebengine-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>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Functions.cmake | 26 |
1 files changed, 24 insertions, 2 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}/") |