cmake: fix error getting LOCATION property on non-imported target

Closes #7885
This commit is contained in:
Boris Rasin 2021-10-20 17:34:19 +03:00 committed by Daniel Stenberg
parent d55b8b6a45
commit 399ef7a53c
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -1494,12 +1494,10 @@ set(libdir "${CMAKE_INSTALL_PREFIX}/lib")
foreach(_lib ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CURL_LIBS})
if(TARGET "${_lib}")
set(_libname "${_lib}")
get_target_property(_libtype "${_libname}" TYPE)
if(_libtype STREQUAL INTERFACE_LIBRARY)
# Interface libraries can occur when an external project embeds curl and
# defined targets such as ZLIB::ZLIB by themselves. Ignore these as
# reading the LOCATION property will error out. Assume the user won't need
# this information in the .pc file.
get_target_property(_imported "${_libname}" IMPORTED)
if(NOT _imported)
# Reading the LOCATION property on non-imported target will error out.
# Assume the user won't need this information in the .pc file.
continue()
endif()
get_target_property(_lib "${_libname}" LOCATION)