123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- # 在这里直接包含所有的库,工程可以根据所需的库进行链接
- #在外面使用时,只需要包含这个文件即可
- message(STATUS "系统: ${CMAKE_SYSTEM_NAME}")
- message(STATUS "编译器: ${CMAKE_CXX_COMPILER_ID}")
- 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()
- #=========================================================
- #********************* 搜索所有的库 *********************
- #=========================================================
- # 这一段主要是搜索fmt和spdlog的库,64位支持动态库和静态库,32位只支持静态库
- #设置 USING_SPDLOG_STATIC_LIB = TRUE,使用静态库,否则使用动态库,默认使用动态库
- if(CMAKE_SYSTEM_NAME MATCHES "Windows")
-
- #spdlog和fmt区分位置,分为64位和32位,静态库和动态库,debug和release
- if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- #64位的spdlog有两个版本,一个是静态库,一个是动态库
- if(CMAKE_SIZEOF_VOID_P MATCHES 8)
- #判断有没有设置静态库标志,64位默认使用动态库
- if(ENABLE_SPDLOG_STATIC_LIB)
- set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/gcc7.3_static/lib/cmake/fmt)
- set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/gcc7.3_static/lib/cmake/spdlog)
- else()
- set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/gcc7.3/lib/cmake/fmt)
- set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/gcc7.3/lib/cmake/spdlog)
- endif()
- #32位只有静态库
- elseif(CMAKE_SIZEOF_VOID_P MATCHES 4)
- set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/gcc7.3_static_32/lib/cmake/fmt)
- set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/gcc7.3_static_32/lib/cmake/spdlog)
- endif()
- #MSVC只有动态库,且不支持32位
- elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
- set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/msvc2022/lib/cmake/fmt)
- set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/msvc2022/lib/cmake/spdlog)
- endif()
- #Linux只有64位,动态库和静态库都可以选择
- elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
- message(STATUS "Using ${CMAKE_SYSTEM_NAME} System")
- set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/deepin/lib/cmake/fmt)
- set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/deepin/lib/cmake/spdlog)
- set(freetype_DIR ${CMAKE_CURRENT_LIST_DIR}/deepin/lib/cmake/freetype)
- endif()
- #添加MODULE模式的搜索路径
- 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}/NetworkCurl)
- # if(CMAKE_SIZEOF_VOID_P MATCHES 8)
- # if(USING_SPDLOG_STATIC_LIB)
- # else()
- # find_package(fmt REQUIRED)
- # endif()
- # endif()
- find_package(fmt REQUIRED)
- find_package(spdlog REQUIRED)
- #在Windows中可能有冲突的地方,直接指明路径
- # find_package(Freetype REQUIRED PATHS ${freetype_DIR})
- find_package(qmqtt REQUIRED)
- find_package(SM REQUIRED)
- find_package(LHQLog REQUIRED)
- find_package(LHHTTPAPI REQUIRED)
- find_package(CURL REQUIRED)
- #打印搜索到的信息
- 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 "CURL Found : ${CURL_FOUND}")
- message(STATUS "--------------------------------------------------")
|