# 在这里直接包含所有的库,工程可以根据所需的库进行链接 #在外面使用时,只需要包含这个文件即可 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 "--------------------------------------------------")