Browse Source

V0.5.4
1、将spdlog库独立出来了,Linux中动态库和静态库都可以编译通过
2、fmt使用spdlog中提供的

Apple 5 months ago
parent
commit
7a7fe00c70

+ 9 - 9
Libraries/Libraries.cmake

@@ -67,13 +67,13 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
     #添加Curl库
     set(CURL_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/CURL)
     set(hiredis_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/hiredis)
-    if(ENABLE_SPDLOG_STATIC_LIB)
-        set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3_static/lib/cmake/fmt)
-        set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3_static/lib/cmake/spdlog)
-    else()
-        set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/fmt)
-        set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/spdlog)
-    endif()
+    # if(ENABLE_SPDLOG_STATIC_LIB)
+    #     set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3_static/lib/cmake/fmt)
+    #     set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3_static/lib/cmake/spdlog)
+    # else()
+    #     set(fmt_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/fmt)
+    #     set(spdlog_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/spdlog)
+    # endif()
     set(freetype_DIR ${CMAKE_CURRENT_LIST_DIR}/linux_gcc8.3/lib/cmake/freetype)
 endif()
 
@@ -81,7 +81,7 @@ endif()
 #=========================================================
 #添加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}/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)
@@ -91,7 +91,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/OpenSSL-1.1.1)
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/CURL)
 
 #搜索所有的库
-find_package(fmt REQUIRED)
+# find_package(fmt REQUIRED)
 find_package(spdlog REQUIRED)
 #链接OpenSSL-1.1.1库
 find_package(OpenSSL-1.1.1 REQUIRED)

+ 7 - 1
Libraries/spdlog/Findspdlog.cmake

@@ -13,6 +13,9 @@ message(STATUS "***** Find spdlog Library *****")
 unset(spdlog_INCLUDE_DIR CACHE)
 list(APPEND spdlog_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include)
 list(APPEND spdlog_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include/spdlog)
+#包含fmt头文件,使用fmt的时候包含fmt/bundled/format.h这样的完整目录
+list(APPEND spdlog_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/include/spdlog/fmt)
+
 
 
 unset(spdlog_LIBRARY CACHE)
@@ -57,10 +60,12 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
     endif()
     if(ENABLE_SPDLOG_STATIC_LIB)
         if(CMAKE_BUILD_TYPE MATCHES "Debug")
-            list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libspdlog.a)
+            list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libspdlogd.a)
         else()
             list(APPEND spdlog_STATIC_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/linux/gcc8.3_static/libspdlog.a)
         endif()
+        #这里需要显式的链接依赖库,或者使用target_link_options(appname PRIVATE "-Wl,--copy-dt-needed-entries")来让gcc递归搜索依赖库
+        list(APPEND spdlog_STATIC_LIBRARY pthread)
     endif()
 endif()
 
@@ -78,6 +83,7 @@ else()
     set(spdlog_FOUND FALSE)
 endif()
 
+message(STATUS "如果需要使用静态库,定义“ ENABLE_SPDLOG_STATIC_LIB ”变量")
 if(ENABLE_SPDLOG_STATIC_LIB)
     message(STATUS "include : spdlog_INCLUDE_DIR")
     message(STATUS "Library : spdlog_LIBRARY")

BIN
Libraries/spdlog/linux/gcc8.3/libspdlog.so.1.14.1


BIN
Libraries/spdlog/linux/gcc8.3/libspdlogd.so.1.14.1


BIN
Libraries/spdlog/linux/gcc8.3_NoFmt.7z


+ 0 - 0
Libraries/spdlog/linux/gcc8.3.7z → Libraries/spdlog/linux/gcc8.3_fmt.7z


BIN
Libraries/spdlog/linux/gcc8.3_static/libspdlogd.a


BIN
Libraries/spdlog/linux/gcc8.3_static_NoFmt.7z


+ 6 - 3
common/FmtLog/fmtlog.h

@@ -3,9 +3,12 @@
 
 #include <chrono>
 
-#include "fmt/format.h"
-#include "fmt/chrono.h"
-#include "fmt/color.h"
+// #include "fmt/format.h"
+// #include "fmt/chrono.h"
+// #include "fmt/color.h"
+#include "fmt/bundled/format.h"
+#include "chrono.h"
+#include "fmt/bundled/color.h"
 
 #include <regex>