#查找LHHttpAPI库 message(STATUS "===== FindLHHTTPAPI.cmake =====") #查找头文件 unset(INCLUDE_DIR CACHE) find_path(INCLUDE_DIR NAMES lhhttpapi.h PATHS ${CMAKE_CURRENT_LIST_DIR}/src NO_DEFAULT_PATH ) unset(LHHTTPAPI_INCLUDE_DIRS CACHE) list(APPEND LHHTTPAPI_INCLUDE_DIRS ${INCLUDE_DIR}) #添加源文件 unset(LHHTTPAPI_SOURCE_DIRS CACHE) list(APPEND LHHTTPAPI_SOURCE_DIRS ${INCLUDE_DIR}/lhhttpapi.cpp ${INCLUDE_DIR}/WebAPIBase.cpp ) # 查找库文件,在这里区分平台,Debug和Release,32位和64位 # 这里没有使用这个文件夹内的curl库,而是使用了外部的curl库 unset(LHHTTPAPI_LIBRARY CACHE) if(CMAKE_SYSTEM_NAME MATCHES "Windows") #64位 if(CMAKE_SIZEOF_VOID_P MATCHES 8) if(CMAKE_BUILD_TYPE MATCHES "Debug") list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/LHSqlWebInterfaced.dll) # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/libcurl.dll) else() list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/LHSqlWebInterface.dll) # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/libcurl.dll) endif() #32位 elseif(CMAKE_SIZEOF_VOID_P MATCHES 4) if(CMAKE_BUILD_TYPE MATCHES "Debug") list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/LHSqlWebInterfaced.dll) # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/libcurl.dll) else() list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/LHSqlWebInterface.dll) # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/libcurl.dll) endif() endif() #添加Linux版本 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_BUILD_TYPE MATCHES "Debug") list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/debug/libLHSqlWebInterface.so) else() list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/uos_x64/release/libLHSqlWebInterface.so) endif() endif() #定义变量 if(LHHTTPAPI_INCLUDE_DIRS AND LHHTTPAPI_SOURCE_DIRS) set(LHHTTPAPI_FOUND TRUE) set(LHHTTPAPI_VERSION 1.0.9) # message(STATUS "LHHTTPAPI found: LHHTTPAPI") message(STATUS "LHHTTPAPI include: LHHTTPAPI_INCLUDE_DIRS") message(STATUS "LHHTTPAPI source: LHHTTPAPI_SOURCE_DIRS") # message(STATUS "LHHTTPAPI library: LHHTTPAPI_LIBRARY") else() set(LHHTTPAPI_FOUND FALSE) endif() message(STATUS "LHHTTPAPI Found : ${LHHTTPAPI_FOUND}") message(STATUS "LHHTTPAPI Version : ${LHHTTPAPI_VERSION}") message(STATUS "--------------------------------------------------") #导入目标 # if(LHHTTPAPI_FOUND) # if(NOT TARGET External::lhhttpapi) # add_library(External::lhhttpapi UNKNOWN IMPORTED) #添加头文件 # set_target_properties(External::lhhttpapi PROPERTIES # INTERFACE_INCLUDE_DIRECTORIES "${LHHTTPAPI_INCLUDE_DIRS}") #添加库文件 # set_target_properties(External::lhhttpapi PROPERTIES # IMPORTED_LOCATION "") #添加需要的依赖库 # set_target_properties(${_lib_name} PROPERTIES # INTERFACE_LINK_LIBRARIES "") #添加源文件 # set_target_properties(External::lhhttpapi PROPERTIES # INTERFACE_SOURCES "${LHHTTPAPI_SOURCE_DIRS}") # endif() # endif() # 标记这些变量为高级变量 mark_as_advanced( LHHTTPAPI_INCLUDE_DIRS LHHTTPAPI_SOURCE_DIRS )