Findfmt.cmake 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #fmt格式化库
  2. message(STATUS "***** Find fmt Library *****")
  3. #寻找头文件
  4. unset(fmt_INCLUDE_DIR CACHE)
  5. # find_path(fmt_INCLUDE_DIR
  6. # NAMES fmt/base.h
  7. # PATHS ${CMAKE_CURRENT_LIST_DIR}/include
  8. # NO_DEFAULT_PATH
  9. # )
  10. list(APPEND fmt_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include)
  11. list(APPEND fmt_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include/fmt)
  12. unset(fmt_LIBRARY CACHE)
  13. unset(fmt_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 fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3/libfmt.dll)
  20. else()
  21. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3/libfmt.dll)
  22. endif()
  23. if(ENABLE_SPDLOG_STATIC_LIB)
  24. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  25. list(APPEND fmt_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_static/libfmt.a)
  26. else()
  27. list(APPEND fmt_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_static/libfmt.a)
  28. endif()
  29. endif()
  30. elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
  31. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  32. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_32/libfmt.dll)
  33. else()
  34. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3_32/libfmt.dll)
  35. endif()
  36. endif()
  37. elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
  38. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  39. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/msvc2022/libfmt.lib)
  40. else()
  41. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/windows/msvc2022/libfmt.lib)
  42. endif()
  43. endif()
  44. #添加Linux版本
  45. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  46. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  47. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libfmt.so)
  48. else()
  49. list(APPEND fmt_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3/libfmt.so)
  50. endif()
  51. if(ENABLE_SPDLOG_STATIC_LIB)
  52. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  53. list(APPEND fmt_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libfmt.a)
  54. else()
  55. list(APPEND fmt_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libfmt.a)
  56. endif()
  57. endif()
  58. endif()
  59. #设置查找到后的变量
  60. # if(ENABLE_SPDLOG_STATIC_LIB)
  61. # set(fmt_LIBRARY ${fmt_STATIC_LIBRARY})
  62. # endif()
  63. if(fmt_INCLUDE_DIR AND fmt_LIBRARY)
  64. set(fmt_FOUND TRUE)
  65. set(fmt_VERSION 11.0.1)
  66. else()
  67. set(fmt_FOUND FALSE)
  68. endif()
  69. if(ENABLE_SPDLOG_STATIC_LIB)
  70. message(STATUS "include : fmt_INCLUDE_DIR")
  71. message(STATUS "Library : fmt_LIBRARY")
  72. message(STATUS "Static Library : fmt_STATIC_LIBRARY")
  73. else()
  74. message(STATUS "include : fmt_INCLUDE_DIR")
  75. message(STATUS "Library : fmt_LIBRARY")
  76. endif()
  77. message(STATUS "---------------------------------")