From 26d2755d7c3181e90e46014778941bff53d2309f Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 4 Jun 2020 11:28:01 +0200 Subject: [PATCH] CMake: ignore INTERFACE_LIBRARY targets for pkg-config file Reviewed-by: Marcel Raad Fixes #5512 Closes #5517 --- CMakeLists.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a13395db7..5a1333397 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1413,7 +1413,15 @@ set(libdir "${CMAKE_INSTALL_PREFIX}/lib") foreach(_lib ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CURL_LIBS}) if(TARGET "${_lib}") set(_libname "${_lib}") - get_target_property(_lib "${_lib}" LOCATION) + 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. + continue() + endif() + get_target_property(_lib "${_libname}" LOCATION) if(NOT _lib) message(WARNING "Bad lib in library list: ${_libname}") continue()