#查找LHQLog库 message(STATUS "===== FindLHQLog.cmake =====") #查找头文件 unset(INCLUDE_DIR CACHE) find_path(INCLUDE_DIR NAMES LHQLog.h PATHS ${CMAKE_CURRENT_LIST_DIR}/inc NO_DEFAULT_PATH ) list(APPEND LHQLog_INCLUDE_DIRS ${INCLUDE_DIR}) #查找源文件 unset(SOURCE_DIR CACHE) find_path(SOURCE_DIR NAMES LHQLog.cpp PATHS ${CMAKE_CURRENT_LIST_DIR}/src NO_DEFAULT_PATH ) list(APPEND LHQLog_SOURCE_DIRS ${SOURCE_DIR}) #查找库文件,在这里区分平台,Debug和Release,32位和64位 unset(LIBRARY_DIR CACHE) if(CMAKE_SYSTEM_NAME MATCHES "Windows") #64位 if(CMAKE_SIZEOF_VOID_P MATCHES 8) if(CMAKE_BUILD_TYPE MATCHES "Debug") find_library(LIBRARY_DIR NAMES LHQLog PATHS ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/debug NO_DEFAULT_PATH ) else() find_library(LIBRARY_DIR NAMES LHQLog PATHS ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_64/release NO_DEFAULT_PATH ) endif() #32位 elseif(CMAKE_SIZEOF_VOID_P MATCHES 4) if(CMAKE_BUILD_TYPE MATCHES "Debug") find_library(LIBRARY_DIR NAMES LHQLog PATHS ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/debug NO_DEFAULT_PATH ) else() find_library(LIBRARY_DIR NAMES LHQLog PATHS ${CMAKE_CURRENT_LIST_DIR}/lib/MinGW_32/release NO_DEFAULT_PATH ) endif() endif() #Linux endif(CMAKE_SYSTEM_NAME MATCHES "Linux") find_library(LIBRARY_DIR NAMES LHQLog PATHS ${CMAKE_CURRENT_LIST_DIR}/lib/uos_x64/release NO_DEFAULT_PATH ) endif() list(APPEND LHQLog_LIBRARY ${LIBRARY_DIR}) #设置变量 if(LHQLog_INCLUDE_DIRS AND LHQLog_SOURCE_DIRS AND LHQLog_LIBRARY) set(LHQLog_FOUND TRUE) # CACHE命令用于定义一个名为LHQLog_INCLUDE_DIRS的缓存变量。这个变量用于存储LHQLog的包含目录路径。 # 通过将其定义为缓存变量,用户可以在CMake配置过程中通过命令行或图形界面设置该变量的值。CACHE INTERNAL部分 # 指定了缓存变量的类型。在这种情况下,INTERNAL表示该变量只能在CMake脚本内部使用,而不能被外部访问或修改。 # 通过使用缓存变量,可以使CMake配置更加灵活和可配置。用户可以根据其特定的需求设置缓存变量的值,而不需要修改 # CMake脚本本身。这对于构建可定制的软件项目非常有用。 set(LHQLog_INCLUDE_DIRS ${LHQLog_INCLUDE_DIRS} CACHE INTERNAL "LHQLog include directories") set(LHQLog_SOURCE_DIRS ${LHQLog_SOURCE_DIRS} CACHE INTERNAL "LHQLog source directories") set(LHQLog_LIBRARY ${LHQLog_LIBRARY} CACHE INTERNAL "LHQLog library") else() set(LHQLog_FOUND FALSE) endif()