Merge pull request #23092 from webosbrew/feature/webOS
[xbmc.git] / cmake / modules / FindCurl.cmake
blob6411a92915b8035ff5465e6731348341a273435a
1 #.rst:
2 # FindCurl
3 # --------
4 # Finds the Curl library
6 # This will define the following variables::
8 # CURL_FOUND - system has Curl
9 # CURL_INCLUDE_DIRS - the Curl include directory
10 # CURL_LIBRARIES - the Curl libraries
11 # CURL_DEFINITIONS - the Curl definitions
13 # and the following imported targets::
15 #   Curl::Curl   - The Curl library
17 if(PKG_CONFIG_FOUND)
18   pkg_check_modules(PC_CURL libcurl QUIET)
19 endif()
21 find_path(CURL_INCLUDE_DIR NAMES curl/curl.h
22                            PATHS ${PC_CURL_INCLUDEDIR})
23 find_library(CURL_LIBRARY NAMES curl libcurl libcurl_imp
24                           PATHS ${PC_CURL_LIBDIR})
26 set(CURL_VERSION ${PC_CURL_VERSION})
28 set(CURL_LIB_TYPE SHARED)
29 set(CURL_LDFLAGS ${PC_CURL_LDFLAGS})
31 # check if curl is statically linked
32 if(${CURL_LIBRARY} MATCHES ".+\.a$" AND PC_CURL_STATIC_LDFLAGS)
33   set(CURL_LIB_TYPE STATIC)
34   set(CURL_LDFLAGS ${PC_CURL_STATIC_LDFLAGS})
36   pkg_check_modules(PC_NGHTTP2 libnghttp2 QUIET)
37   find_library(NGHTTP2_LIBRARY NAMES libnghttp2 nghttp2
38                                PATHS ${PC_NGHTTP2_LIBDIR})
39 endif()
41 include(FindPackageHandleStandardArgs)
42 find_package_handle_standard_args(Curl
43                                   REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
44                                   VERSION_VAR CURL_VERSION)
46 if(CURL_FOUND)
47   set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
48   set(CURL_LIBRARIES ${CURL_LIBRARY} ${NGHTTP2_LIBRARY})
50   if(NOT TARGET Curl::Curl)
51     add_library(Curl::Curl ${CURL_LIB_TYPE} IMPORTED)
52     set_target_properties(Curl::Curl PROPERTIES
53                                      IMPORTED_LOCATION "${CURL_LIBRARY}"
54                                      INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}")
55     if(HAS_CURL_STATIC)
56         set_target_properties(Curl::Curl PROPERTIES
57                                          INTERFACE_COMPILE_DEFINITIONS HAS_CURL_STATIC=1)
58     endif()
59   endif()
60 endif()
62 mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY CURL_LDFLAGS)