set(_ldflags "")
set(LIBCURL_PC_LIBS_PRIVATE "")
+ # Filter CMAKE_SHARED_LINKER_FLAGS for libs and libpaths
+ string(STRIP "${CMAKE_SHARED_LINKER_FLAGS}" _custom_ldflags)
+ string(REGEX REPLACE " +-([^ \\t;]*)" ";-\\1" _custom_ldflags "${_custom_ldflags}")
+
+ set(_custom_libs "")
+ set(_custom_libdirs "")
+ foreach(_flag IN LISTS _custom_ldflags)
+ if(_flag MATCHES "^-l")
+ string(REGEX REPLACE "^-l" "" _flag "${_flag}")
+ list(APPEND _custom_libs "${_flag}")
+ elseif(_flag MATCHES "^-framework|^-F")
+ list(APPEND _custom_libs "${_flag}")
+ elseif(_flag MATCHES "^-L")
+ string(REGEX REPLACE "^-L" "" _flag "${_flag}")
+ list(APPEND _custom_libdirs "${_flag}")
+ elseif(_flag MATCHES "^--library-path=")
+ string(REGEX REPLACE "^--library-path=" "" _flag "${_flag}")
+ list(APPEND _custom_libdirs "${_flag}")
+ endif()
+ endforeach()
+
# Avoid getting unnecessary -L options for known system directories.
unset(_sys_libdirs)
foreach(_libdir IN LISTS CMAKE_SYSTEM_PREFIX_PATH)
endif()
endforeach()
- foreach(_libdir IN LISTS CURL_LIBDIRS)
+ foreach(_libdir IN LISTS _custom_libdirs CURL_LIBDIRS)
list(FIND _sys_libdirs "${_libdir}" _libdir_index)
if(_libdir_index LESS 0)
list(APPEND _ldflags "-L${_libdir}")
set(_implicit_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES})
endif()
- foreach(_lib IN LISTS _implicit_libs CURL_LIBS)
+ foreach(_lib IN LISTS _implicit_libs _custom_libs CURL_LIBS)
if(TARGET "${_lib}")
set(_libname "${_lib}")
get_target_property(_imported "${_libname}" IMPORTED)
if(LIBCURL_PC_LIBS_PRIVATE)
string(REPLACE ";" " " LIBCURL_PC_LIBS_PRIVATE "${LIBCURL_PC_LIBS_PRIVATE}")
endif()
- set(LIBCURL_PC_LDFLAGS_PRIVATE "${CMAKE_SHARED_LINKER_FLAGS}")
if(_ldflags)
list(REMOVE_DUPLICATES _ldflags)
string(REPLACE ";" " " _ldflags "${_ldflags}")
- set(LIBCURL_PC_LDFLAGS_PRIVATE "${LIBCURL_PC_LDFLAGS_PRIVATE} ${_ldflags}")
+ set(LIBCURL_PC_LDFLAGS_PRIVATE "${_ldflags}")
string(STRIP "${LIBCURL_PC_LDFLAGS_PRIVATE}" LIBCURL_PC_LDFLAGS_PRIVATE)
+ else()
+ set(LIBCURL_PC_LDFLAGS_PRIVATE "")
endif()
set(LIBCURL_PC_CFLAGS_PRIVATE "-DCURL_STATICLIB")