FindLHHTTPAPI.cmake 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #查找LHHttpAPI库
  2. message(STATUS "===== FindLHHTTPAPI.cmake =====")
  3. #查找头文件
  4. unset(INCLUDE_DIR CACHE)
  5. find_path(INCLUDE_DIR
  6. NAMES lhhttpapi.h
  7. PATHS ${CMAKE_CURRENT_LIST_DIR}/src
  8. NO_DEFAULT_PATH
  9. )
  10. unset(LHHTTPAPI_INCLUDE_DIRS CACHE)
  11. list(APPEND LHHTTPAPI_INCLUDE_DIRS ${INCLUDE_DIR})
  12. #添加源文件
  13. unset(LHHTTPAPI_SOURCE_DIRS CACHE)
  14. list(APPEND LHHTTPAPI_SOURCE_DIRS
  15. ${INCLUDE_DIR}/lhhttpapi.cpp
  16. ${INCLUDE_DIR}/WebAPIBase.cpp
  17. )
  18. # 查找库文件,在这里区分平台,Debug和Release,32位和64位
  19. # 这里没有使用这个文件夹内的curl库,而是使用了外部的curl库
  20. unset(LHHTTPAPI_LIBRARY CACHE)
  21. if(CMAKE_SYSTEM_NAME MATCHES "Windows")
  22. #64位
  23. if(CMAKE_SIZEOF_VOID_P MATCHES 8)
  24. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  25. list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/LHSqlWebInterfaced.dll)
  26. # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/libcurl.dll)
  27. else()
  28. list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/LHSqlWebInterface.dll)
  29. # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/libcurl.dll)
  30. endif()
  31. #32位
  32. elseif(CMAKE_SIZEOF_VOID_P MATCHES 4)
  33. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  34. list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/LHSqlWebInterfaced.dll)
  35. # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/libcurl.dll)
  36. else()
  37. list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/LHSqlWebInterface.dll)
  38. # list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/libcurl.dll)
  39. endif()
  40. endif()
  41. #添加Linux版本
  42. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  43. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  44. list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/debug/libLHSqlWebInterface.so)
  45. else()
  46. list(APPEND LHHTTPAPI_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/uos_x64/release/libLHSqlWebInterface.so)
  47. endif()
  48. endif()
  49. #定义变量
  50. if(LHHTTPAPI_INCLUDE_DIRS AND LHHTTPAPI_SOURCE_DIRS)
  51. set(LHHTTPAPI_FOUND TRUE)
  52. set(LHHTTPAPI_VERSION 1.0.9)
  53. # message(STATUS "LHHTTPAPI found: LHHTTPAPI")
  54. message(STATUS "LHHTTPAPI include: LHHTTPAPI_INCLUDE_DIRS")
  55. message(STATUS "LHHTTPAPI source: LHHTTPAPI_SOURCE_DIRS")
  56. # message(STATUS "LHHTTPAPI library: LHHTTPAPI_LIBRARY")
  57. else()
  58. set(LHHTTPAPI_FOUND FALSE)
  59. endif()
  60. message(STATUS "LHHTTPAPI Found : ${LHHTTPAPI_FOUND}")
  61. message(STATUS "LHHTTPAPI Version : ${LHHTTPAPI_VERSION}")
  62. message(STATUS "--------------------------------------------------")
  63. #导入目标
  64. if(LHHTTPAPI_FOUND)
  65. if(NOT TARGET lhhttpapi::lhhttpapi)
  66. add_library(lhhttpapi::lhhttpapi UNKNOWN IMPORTED)
  67. #添加头文件
  68. set_target_properties(lhhttpapi::lhhttpapi PROPERTIES
  69. INTERFACE_INCLUDE_DIRECTORIES "${LHHTTPAPI_INCLUDE_DIRS}")
  70. #添加库文件
  71. # if(ENABLE_SPDLOG_STATIC_LIB)
  72. # set_target_properties(${_lib_name} PROPERTIES
  73. # IMPORTED_LOCATION "${spdlog_STATIC_LIBRARY}")
  74. # #添加spdlog需要的依赖库
  75. # set_target_properties(${_lib_name} PROPERTIES
  76. # INTERFACE_LINK_LIBRARIES "pthread")
  77. # else()
  78. # set_target_properties(${_lib_name} PROPERTIES
  79. # IMPORTED_LOCATION "${spdlog_LIBRARY}")
  80. # set_target_properties(${_lib_name} PROPERTIES
  81. # INTERFACE_LINK_LIBRARIES "pthread")
  82. # endif()
  83. #添加源文件
  84. set_target_properties(lhhttpapi::lhhttpapi PROPERTIES
  85. INTERFACE_SOURCES "${LHHTTPAPI_SOURCE_DIRS}")
  86. endif()
  87. endif()
  88. # 标记这些变量为高级变量
  89. mark_as_advanced(
  90. LHHTTPAPI_INCLUDE_DIRS
  91. LHHTTPAPI_SOURCE_DIRS
  92. )