#查找LHQLog库 message(STATUS "===== FindQXlsx.cmake =====") #查找头文件 unset(INCLUDE_DIR CACHE) unset(QXlsx_INCLUDE_DIR CACHE) find_path(INCLUDE_DIR NAMES xlsxglobal.h PATHS ${CMAKE_CURRENT_LIST_DIR}/include/QXlsxQt5 NO_DEFAULT_PATH ) list(APPEND QXlsx_INCLUDE_DIR ${INCLUDE_DIR}) #查找源文件 # unset(SOURCE_DIR CACHE) # unset(LHQLog_SOURCE_DIRS CACHE) # find_path(SOURCE_DIR # NAMES LHQLogAPI.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) unset(QXlsx_LIBRARY CACHE) unset(QXlsx_LIBRARY_STATIC CACHE) if(CMAKE_SYSTEM_NAME MATCHES "Windows") message(STATUS "No Support Windows") #64位 if(CMAKE_SIZEOF_VOID_P MATCHES 8) if(CMAKE_BUILD_TYPE MATCHES "Debug") else() endif() #32位 elseif(CMAKE_SIZEOF_VOID_P MATCHES 4) if(CMAKE_BUILD_TYPE MATCHES "Debug") else() endif() endif() #Linux,Linux直接指定库的名称,使用模糊搜索可能会把后缀版本号搜出来 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_BUILD_TYPE MATCHES "Debug") list(APPEND QXlsx_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5d.so) list(APPEND QXlsx_LIBRARY_STATIC ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5d.a) elseif(CMAKE_BUILD_TYPE MATCHES "Release") list(APPEND QXlsx_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5.so) list(APPEND QXlsx_LIBRARY_STATIC ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5.a) endif() endif() #设置变量 if(QXlsx_INCLUDE_DIR AND (QXlsx_LIBRARY OR QXlsx_LIBRARY_STATIC)) set(QXlsx_FOUND TRUE) set(QXlsx_VERSION 1.5.0) # CACHE命令用于定义一个名为LHQLog_INCLUDE_DIRS的缓存变量。这个变量用于存储LHQLog的包含目录路径。 # 通过将其定义为缓存变量,用户可以在CMake配置过程中通过命令行或图形界面设置该变量的值。CACHE INTERNAL部分 # 指定了缓存变量的类型。在这种情况下,INTERNAL表示该变量只能在CMake脚本内部使用,而不能被外部访问或修改。 # 通过使用缓存变量,可以使CMake配置更加灵活和可配置。用户可以根据其特定的需求设置缓存变量的值,而不需要修改 # CMake脚本本身。这对于构建可定制的软件项目非常有用。 set(QXlsx_INCLUDE_DIR ${QXlsx_INCLUDE_DIR} CACHE INTERNAL "QXlsx include directories") set(QXlsx_LIBRARY ${QXlsx_LIBRARY} CACHE INTERNAL "QXlsx library") set(QXlsx_LIBRARY_STATIC ${QXlsx_LIBRARY_STATIC} CACHE INTERNAL "QXlsx static library") message(STATUS "QXlsx include: QXlsx_INCLUDE_DIR") message(STATUS "QXlsx library: QXlsx_LIBRARY") message(STATUS "QXlsx static library: QXlsx_LIBRARY_STATIC") else() set(QXlsx_FOUND FALSE) endif() message(STATUS "QXlsx Found : ${QXlsx_FOUND}") message(STATUS "QXlsx Version : ${QXlsx_VERSION}") message(STATUS "--------------------------------------------------")