123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- # 在这里直接包含所有的库,工程可以根据所需的库进行链接
- #在外面使用时,只需要包含这个文件即可
- message(STATUS "==================================================")
- message(STATUS "系统: ${CMAKE_SYSTEM_NAME}")
- message(STATUS "编译器: ${CMAKE_CXX_COMPILER_ID} 版本: ${CMAKE_CXX_COMPILER_VERSION}")
- message(STATUS "C++版本: ${CMAKE_CXX_STANDARD}")
- message(STATUS "编译类型: ${CMAKE_BUILD_TYPE}")
- if(CMAKE_SIZEOF_VOID_P MATCHES 8)
- message(STATUS "系统位数: 64-bit")
- elseif(CMAKE_SIZEOF_VOID_P MATCHES 4)
- message(STATUS "系统位数: 32-bit")
- endif()
- #区分是Qt5还是Qt6
- if(QT_VERSION_MAJOR EQUAL 5)
- message(STATUS "Qt 版本: ${Qt5_VERSION}")
- elseif(QT_VERSION_MAJOR EQUAL 6)
- message(STATUS "Qt 版本: ${Qt6_VERSION}")
- else()
- message(STATUS "Qt 版本: Unknown")
- message(STATUS "如果库依赖Qt版本,将include(Libraries.cmake)放在find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)后面")
- endif()
- message(STATUS " ")
- message(STATUS "如果添加的是源文件,需要在路径后面添加/*.cpp,如:")
- message(STATUS "\${LHHTTPAPI_INCLUDE_DIRS}/*.cpp)")
- message(STATUS "==================================================")
- #=========================================================
- #********************* 搜索所有的库 *********************
- #=========================================================
- #在CMake中搜索库的方式有两种,CONFIG和MODULE模式
- #CONFIG模式搜索的是标准的开源库,MODULE模式搜索的是其他库
- #为了更好的跨编译器、跨平台兼容,所有的库都使用MODULE模式搜索,自己写.cmake文件
- #=========================================================
- #添加MODULE模式搜索其他库的路径,不是标准的开源库
- # list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/fmt)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/spdlog)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/sm_dll)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/qmqtt)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/LHQLog)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/LHHTTPAPI)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/OpenSSL-1.1.1)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/ssh2)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/hiredis)
- #添加CURL的路径,目前Linux 使用单独编译的,使用上面的OpenSSL库
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/CURL)
- #链接FreeType库,目前只支持Windows
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/FreeType)
- #搜索所有的库
- # find_package(fmt REQUIRED)
- find_package(spdlog REQUIRED)
- #链接curl库,使用的是CURL::libcurl
- find_package(CURL REQUIRED)
- #在Windows中可能有冲突的地方,直接指明路径
- # find_package(Freetype REQUIRED PATHS ${freetype_DIR})
- find_package(qmqtt REQUIRED)
- find_package(SM REQUIRED)
- #LHLog和LHHTTP使用动态加载的方式调用,在工程中不需要连接库,只需要包含头文件即可
- find_package(LHQLog REQUIRED)
- find_package(LHHTTPAPI REQUIRED)
- #FreeType库
- #有些库缺少某些平台、编译器的库,所以这里也根据平台、编译器进行搜索
- if(CMAKE_SYSTEM_NAME MATCHES "Windows")
- find_package(FreeType REQUIRED)
- if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-
- elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
- endif()
- #Linux只有64位,动态库和静态库都可以选择
- elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
- #链接OpenSSL-1.1.1库
- find_package(OpenSSL-1.1.1 REQUIRED)
- #链接ssh2库
- find_package(ssh2 REQUIRED)
- #hiredis库
- find_package(hiredis REQUIRED)
- endif()
- #=========================================================
- #******************* 打印搜索到的信息 *******************
- #=========================================================
- #打印搜索到的信息
- message(STATUS "==================================================")
- message(STATUS "fmt Found: ${fmt_FOUND}")
- message(STATUS "fmt Version: ${fmt_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "spdlog FOUND: ${spdlog_FOUND}")
- message(STATUS "spdlog Version: ${spdlog_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "FreeType Found : ${Freetype_FOUND}")
- message(STATUS "FreeType Version : ${Freetype_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "qmqtt Found : ${qmqtt_FOUND}")
- message(STATUS "qmqtt Version : ${qmqtt_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "SM_LIBRARY FOUND: ${SM_FOUND}")
- message(STATUS "SM_LIBRARY Version: ${SM_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "LHQLog Found : ${LHQLog_FOUND}")
- message(STATUS "LHQLog Version : ${LHQLog_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "LHHTTPAPI Found : ${LHHTTPAPI_FOUND}")
- message(STATUS "LHHTTPAPI Version : ${LHHTTPAPI_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "OpenSSL Found : ${OpenSSL-1.1.1_FOUND}")
- message(STATUS "OpenSSL Version : ${OpenSSL-1.1.1_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "ssh2 Found : ${ssh2_FOUND}")
- message(STATUS "ssh2 Version : ${ssh2_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "CURL Found : ${CURL_FOUND}")
- message(STATUS "CURL Version : ${CURL_VERSION}")
- message(STATUS "--------------------------------------------------")
- message(STATUS "hiredis Found : ${hiredis_FOUND}")
- message(STATUS "hiredis Version : ${hiredis_VERSION}")
- message(STATUS "--------------------------------------------------")
|