FindQXlsx.cmake 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #查找LHQLog库
  2. message(STATUS "===== FindQXlsx.cmake =====")
  3. #查找头文件
  4. unset(INCLUDE_DIR CACHE)
  5. unset(QXlsx_INCLUDE_DIR CACHE)
  6. find_path(INCLUDE_DIR
  7. NAMES xlsxglobal.h
  8. PATHS ${CMAKE_CURRENT_LIST_DIR}/include/QXlsxQt5
  9. NO_DEFAULT_PATH
  10. )
  11. list(APPEND QXlsx_INCLUDE_DIR ${INCLUDE_DIR})
  12. #查找源文件
  13. # unset(SOURCE_DIR CACHE)
  14. # unset(LHQLog_SOURCE_DIRS CACHE)
  15. # find_path(SOURCE_DIR
  16. # NAMES LHQLogAPI.cpp
  17. # PATHS ${CMAKE_CURRENT_LIST_DIR}/src
  18. # NO_DEFAULT_PATH
  19. # )
  20. # list(APPEND LHQLog_SOURCE_DIRS ${SOURCE_DIR})
  21. #查找库文件,在这里区分平台,Debug和Release,32位和64位
  22. unset(LIBRARY_DIR CACHE)
  23. unset(QXlsx_LIBRARY CACHE)
  24. unset(QXlsx_LIBRARY_STATIC CACHE)
  25. if(CMAKE_SYSTEM_NAME MATCHES "Windows")
  26. message(STATUS "No Support Windows")
  27. #64位
  28. if(CMAKE_SIZEOF_VOID_P MATCHES 8)
  29. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  30. else()
  31. endif()
  32. #32位
  33. elseif(CMAKE_SIZEOF_VOID_P MATCHES 4)
  34. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  35. else()
  36. endif()
  37. endif()
  38. #Linux,Linux直接指定库的名称,使用模糊搜索可能会把后缀版本号搜出来
  39. elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  40. if(CMAKE_BUILD_TYPE MATCHES "Debug")
  41. list(APPEND QXlsx_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5d.so)
  42. list(APPEND QXlsx_LIBRARY_STATIC ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5d.a)
  43. elseif(CMAKE_BUILD_TYPE MATCHES "Release")
  44. list(APPEND QXlsx_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5.so)
  45. list(APPEND QXlsx_LIBRARY_STATIC ${CMAKE_CURRENT_LIST_DIR}/lib/libQXlsxQt5.a)
  46. endif()
  47. endif()
  48. #设置变量
  49. if(QXlsx_INCLUDE_DIR AND (QXlsx_LIBRARY OR QXlsx_LIBRARY_STATIC))
  50. set(QXlsx_FOUND TRUE)
  51. set(QXlsx_VERSION 1.5.0)
  52. # CACHE命令用于定义一个名为LHQLog_INCLUDE_DIRS的缓存变量。这个变量用于存储LHQLog的包含目录路径。
  53. # 通过将其定义为缓存变量,用户可以在CMake配置过程中通过命令行或图形界面设置该变量的值。CACHE INTERNAL部分
  54. # 指定了缓存变量的类型。在这种情况下,INTERNAL表示该变量只能在CMake脚本内部使用,而不能被外部访问或修改。
  55. # 通过使用缓存变量,可以使CMake配置更加灵活和可配置。用户可以根据其特定的需求设置缓存变量的值,而不需要修改
  56. # CMake脚本本身。这对于构建可定制的软件项目非常有用。
  57. set(QXlsx_INCLUDE_DIR ${QXlsx_INCLUDE_DIR} CACHE INTERNAL "QXlsx include directories")
  58. set(QXlsx_LIBRARY ${QXlsx_LIBRARY} CACHE INTERNAL "QXlsx library")
  59. set(QXlsx_LIBRARY_STATIC ${QXlsx_LIBRARY_STATIC} CACHE INTERNAL "QXlsx static library")
  60. message(STATUS "QXlsx include: QXlsx_INCLUDE_DIR")
  61. message(STATUS "QXlsx library: QXlsx_LIBRARY")
  62. message(STATUS "QXlsx static library: QXlsx_LIBRARY_STATIC")
  63. else()
  64. set(QXlsx_FOUND FALSE)
  65. endif()
  66. message(STATUS "QXlsx Found : ${QXlsx_FOUND}")
  67. message(STATUS "QXlsx Version : ${QXlsx_VERSION}")
  68. message(STATUS "--------------------------------------------------")