Browse Source

FindCURL: Fix parsing protocols/features from pkg-config output

Previously `find_package(CURL COMPONENTS HTTP)` failed because the
`CURL_SUPPORTED_PROTOCOLS` variable returned by pkg-config is
a command-line fragment, but we need a semicolon-separated list.
lingbin 1 year ago
parent
commit
ab6b44b1bb
1 changed files with 4 additions and 2 deletions
  1. 4 2
      Modules/FindCURL.cmake

+ 4 - 2
Modules/FindCURL.cmake

@@ -94,8 +94,10 @@ find_package(PkgConfig QUIET)
 if(PKG_CONFIG_FOUND)
   pkg_check_modules(PC_CURL QUIET libcurl)
   if(PC_CURL_FOUND)
-    pkg_get_variable(CURL_SUPPORTED_PROTOCOLS libcurl supported_protocols)
-    pkg_get_variable(CURL_SUPPORTED_FEATURES libcurl supported_features)
+    pkg_get_variable(CURL_SUPPORTED_PROTOCOLS_STRING libcurl supported_protocols)
+    string(REPLACE " " ";" CURL_SUPPORTED_PROTOCOLS "${CURL_SUPPORTED_PROTOCOLS_STRING}")
+    pkg_get_variable(CURL_SUPPORTED_FEATURES_STRING libcurl supported_features)
+    string(REPLACE " " ";" CURL_SUPPORTED_FEATURES "${CURL_SUPPORTED_FEATURES_STRING}")
   endif()
 endif()