CMake: Do not discard empty QMAKE_LIBS_FOO entries

Consider a qmake lib 'foo' that doesn't have entries in
QMAKE_LIBS_FOO. Then we must not discard this entry in the generated
module pri file, because otherwise any attempt to QMAKE_USE 'foo' will
fail with the error message "Library 'foo' is not defined.".

Pick-to: 6.0
Task-number: QTBUG-88951
Change-Id: Ibed283857f5f66b1b79459fe7b7cf06c7ce0691d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Joerg Bornemann 2020-11-26 17:29:05 +01:00
parent 5592204b19
commit bd98ba0d17

View File

@ -62,10 +62,8 @@ foreach(lib ${known_libs})
qt_transform_absolute_library_paths_to_link_flags(value_release "${value_release}")
if(value_debug STREQUAL value_release)
if(value_debug)
qmake_list(value_debug ${value_debug})
string(APPEND content "QMAKE_LIBS_${lib} = ${value_debug}\n")
endif()
qmake_list(value_debug ${value_debug})
string(APPEND content "QMAKE_LIBS_${lib} = ${value_debug}\n")
else()
if(value_debug)
qmake_list(value_debug ${value_debug})
@ -88,11 +86,13 @@ foreach(lib ${known_libs})
set(value ${QMAKE_${infix}_${lib}_${cfg}})
if(infix STREQUAL "LIBS")
qt_transform_absolute_library_paths_to_link_flags(value "${value}")
elseif("${value}" STREQUAL "")
# Do not write empty entries, but ensure to write at least
# the QMAKE_LIBS_FOO entry to make the lib 'foo' known.
continue()
endif()
if(value)
qmake_list(value ${value})
string(APPEND content "QMAKE_${infix}_${lib} = ${value}\n")
endif()
qmake_list(value ${value})
string(APPEND content "QMAKE_${infix}_${lib} = ${value}\n")
endforeach()
endforeach()
file(WRITE "${OUT_FILE}" "${content}")