#查找头文件说明,查找头文件只需要找到关键的头文件即可,无需包含到所有的头文件
#查找到这个头文件之后就会将这个目录添加到fmt_INCLUDE_DIRS中
#如果需要包含多个头文件目录,那么就多写几个find_path

#NAMES是查找的关键头文件core.h,在查找库的时候会模糊搜索,无需带有前缀或后缀
#PATHS是查找的路径
#这里使用CMAKE_CURRENT_LIST_DIR,这个变量一直指向这个.cmake我呢见所在的目录,无论
#这个文件被哪个CMakeLists.txt包含

message(STATUS "Find fmt include : ${CMAKE_CURRENT_LIST_DIR}/../../../include")

#定义fmt版本
set(fmt_VERSION 11.0.1)

#先清空缓存
unset(INCLUDE_DIR CACHE)
find_path(INCLUDE_DIR 
    NAMES core.h
    PATHS ${CMAKE_CURRENT_LIST_DIR}/../../../include/fmt
    NO_DEFAULT_PATH
)
list(APPEND fmt_INCLUDE_DIRS ${INCLUDE_DIR})

#也可以直接指定
# find_path(fmt_INCLUDE_DIRS fmt/core.h ${CMAKE_SOURCE_DIR}/include)

# unset(INCLUDE_DIR CACHE)
# find_path(INCLUDE_DIR 
#     NAMES fmt/base.h
#     PATHS ${CMAKE_CURRENT_LIST_DIR}/../../../include
#     NO_DEFAULT_PATH
# )

# list(APPEND fmt_INCLUDE_DIRS ${INCLUDE_DIR})

#查找库文件
unset(LIBS CACHE)
find_library(LIBS
    NAMES fmt
    PATHS ${CMAKE_CURRENT_LIST_DIR}/../../../lib
    NO_DEFAULT_PATH
)
list(APPEND fmt_LIBRARY ${LIBS})

#设置查找到了变量
if(fmt_INCLUDE_DIRS AND fmt_LIBRARY)
    set(fmt_FOUND TRUE)
endif()