#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 )