123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #CURL库
- message(STATUS "***** Find CURL Library *****")
- #寻找头文件
- find_path(CURL_INCLUDE_DIR
- NAMES curl/curl.h
- PATHS ${CMAKE_CURRENT_LIST_DIR}/include
- NO_DEFAULT_PATH
- )
- #查找库文件,需要判断操作系统,位数
- if(CMAKE_SYSTEM_NAME MATCHES "Windows")
- if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- if(CMAKE_BUILD_TYPE MATCHES "Debug")
- list(APPEND CURL_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3/libcurl.dll)
- else()
- list(APPEND CURL_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3/libcurl.dll)
- endif()
- elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
- if(CMAKE_BUILD_TYPE MATCHES "Debug")
- list(APPEND CURL_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_32/libcurl.dll)
- else()
- list(APPEND CURL_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_32/libcurl.dll)
- endif()
- endif()
- elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
- endif()
- #添加Linux版本
- elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
- if(CMAKE_BUILD_TYPE MATCHES "Debug")
- list(APPEND CURL_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libcurl.so)
- list(APPEND CURL_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libcurl.a)
- else()
- list(APPEND CURL_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libcurl.so)
- list(APPEND CURL_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libcurl.a)
- endif()
- endif()
- #设置查找到后的变量
- if(CURL_INCLUDE_DIR AND ( CURL_LIBRARY OR CURL_STATIC_LIBRARY) )
- set(CURL_FOUND TRUE)
- set(CURL_VERSION 7.88.1)
- if(CURL_INCLUDE_DIR AND CURL_LIBRARY AND CURL_STATIC_LIBRARY)
- message(STATUS "include : CURL_INCLUDE_DIR")
- message(STATUS "Library : CURL_LIBRARY")
- message(STATUS "Static Library : CURL_STATIC_LIBRARY")
- elseif(CURL_INCLUDE_DIR AND CURL_LIBRARY)
- message(STATUS "include : CURL_INCLUDE_DIR")
- message(STATUS "Library : CURL_LIBRARY")
- endif()
- message(STATUS "target_link_libraries(External::curl)")
- else()
- set(CURL_FOUND FALSE)
- endif()
- message(STATUS "CURL Found : ${CURL_FOUND}")
- message(STATUS "CURL Version : ${CURL_VERSION}")
- message(STATUS "--------------------------------------------------")
- #导入目标
- if(CURL_FOUND)
- if(NOT TARGET External::curl)
- add_library(External::curl UNKNOWN IMPORTED)
- #添加头文件
- set_target_properties(External::curl PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}")
- #添加库文件
- set_target_properties(External::curl PROPERTIES
- IMPORTED_LOCATION "${CURL_LIBRARY}")
- #添加spdlog需要的依赖库
- # set_target_properties(External::curl PROPERTIES
- # INTERFACE_LINK_LIBRARIES "pthread")
- #添加源文件
- # set_target_properties(External::curl PROPERTIES
- # INTERFACE_SOURCES "${hiredis_SOURCES}")
- endif()
- endif()
- # 标记这些变量为高级变量
- mark_as_advanced(
- CURL_INCLUDE_DIR
- CURL_LIBRARY
- )
|