#查找头文件说明,查找头文件只需要找到关键的头文件即可,无需包含到所有的头文件 #查找到这个头文件之后就会将这个目录添加到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()