Findfmt.cmake_back 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #查找头文件说明,查找头文件只需要找到关键的头文件即可,无需包含到所有的头文件
  2. #查找到这个头文件之后就会将这个目录添加到fmt_INCLUDE_DIRS中
  3. #如果需要包含多个头文件目录,那么就多写几个find_path
  4. #NAMES是查找的关键头文件core.h,在查找库的时候会模糊搜索,无需带有前缀或后缀
  5. #PATHS是查找的路径
  6. #这里使用CMAKE_CURRENT_LIST_DIR,这个变量一直指向这个.cmake我呢见所在的目录,无论
  7. #这个文件被哪个CMakeLists.txt包含
  8. message(STATUS "Find fmt include : ${CMAKE_CURRENT_LIST_DIR}/../../../include")
  9. #定义fmt版本
  10. set(fmt_VERSION 11.0.1)
  11. #先清空缓存
  12. unset(INCLUDE_DIR CACHE)
  13. find_path(INCLUDE_DIR
  14. NAMES core.h
  15. PATHS ${CMAKE_CURRENT_LIST_DIR}/../../../include/fmt
  16. NO_DEFAULT_PATH
  17. )
  18. list(APPEND fmt_INCLUDE_DIRS ${INCLUDE_DIR})
  19. #也可以直接指定
  20. # find_path(fmt_INCLUDE_DIRS fmt/core.h ${CMAKE_SOURCE_DIR}/include)
  21. # unset(INCLUDE_DIR CACHE)
  22. # find_path(INCLUDE_DIR
  23. # NAMES fmt/base.h
  24. # PATHS ${CMAKE_CURRENT_LIST_DIR}/../../../include
  25. # NO_DEFAULT_PATH
  26. # )
  27. # list(APPEND fmt_INCLUDE_DIRS ${INCLUDE_DIR})
  28. #查找库文件
  29. unset(LIBS CACHE)
  30. find_library(LIBS
  31. NAMES fmt
  32. PATHS ${CMAKE_CURRENT_LIST_DIR}/../../../lib
  33. NO_DEFAULT_PATH
  34. )
  35. list(APPEND fmt_LIBRARY ${LIBS})
  36. #设置查找到了变量
  37. if(fmt_INCLUDE_DIRS AND fmt_LIBRARY)
  38. set(fmt_FOUND TRUE)
  39. endif()