Findspdlog.cmake 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #SPDLOG日志库
  2. message(STATUS "***** Find spdlog Library *****")
  3. #寻找头文件
  4. # find_path(spdlog_INCLUDE_DIR
  5. # NAMES spdlog/logger.h
  6. # PATHS ${CMAKE_CURRENT_LIST_DIR}
  7. # NO_DEFAULT_PATH
  8. # )
  9. unset(spdlog_INCLUDE_DIR CACHE)
  10. list(APPEND spdlog_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include)
  11. list(APPEND spdlog_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include/spdlog)
  12. unset(spdlog_LIBRARY CACHE)
  13. unset(spdlog_STATIC_LIBRARY CACHE)
  14. #查找库文件,需要判断操作系统,位数
  15. if(CMAKE_SYSTEM_NAME MATCHES "Windows")
  16. if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
  17. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  18. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  19. list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3/libspdlog.dll)
  20. else()
  21. list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3/libspdlog.dll)
  22. endif()
  23. if(ENABLE_SPDLOG_STATIC_LIB)
  24. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  25. list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_static/libspdlog.a)
  26. else()
  27. list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_static/libspdlog.a)
  28. endif()
  29. endif()
  30. elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
  31. # if(CMAKE_BUILD_TYPE MATCHES "Debug")
  32. # list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_32/libspdlog.dll)
  33. # else()
  34. # list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_32/libspdlog.dll)
  35. # endif()
  36. endif()
  37. elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
  38. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  39. list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/msvc2022/libspdlog.lib)
  40. else()
  41. list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/msvc2022/libspdlog.lib)
  42. endif()
  43. endif()
  44. #添加Linux版本
  45. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  46. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  47. list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libspdlog.so)
  48. else()
  49. list(APPEND spdlog_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libspdlog.so)
  50. endif()
  51. if(ENABLE_SPDLOG_STATIC_LIB)
  52. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  53. list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libspdlog.a)
  54. else()
  55. list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libspdlog.a)
  56. endif()
  57. endif()
  58. endif()
  59. #设置查找到后的变量
  60. # if(ENABLE_SPDLOG_STATIC_LIB)
  61. # set(spdlog_LIBRARY ${spdlog_STATIC_LIBRARY})
  62. # endif()
  63. # message(STATUS "spdlog_INCLUDE_DIR: ${spdlog_INCLUDE_DIR}")
  64. if(spdlog_INCLUDE_DIR AND spdlog_LIBRARY)
  65. set(spdlog_FOUND TRUE)
  66. set(spdlog_VERSION 1.14.1)
  67. else()
  68. set(spdlog_FOUND FALSE)
  69. endif()
  70. if(ENABLE_SPDLOG_STATIC_LIB)
  71. message(STATUS "include : spdlog_INCLUDE_DIR")
  72. message(STATUS "Library : spdlog_LIBRARY")
  73. message(STATUS "Static Library : spdlog_STATIC_LIBRARY")
  74. else()
  75. message(STATUS "include : spdlog_INCLUDE_DIR")
  76. message(STATUS "Library : spdlog_LIBRARY")
  77. endif()
  78. message(STATUS "---------------------------------")