Bladeren bron

V0.9.8
1、修改了spdlog版本的判断方法,根据gcc编译器判断而不是qt版本

Apple 1 week geleden
bovenliggende
commit
ec11806d69
1 gewijzigde bestanden met toevoegingen van 35 en 19 verwijderingen
  1. 35 19
      Libraries/spdlog/Findspdlog.cmake

+ 35 - 19
Libraries/spdlog/Findspdlog.cmake

@@ -3,29 +3,45 @@
 #SPDLOG日志库,Qt5使用1.14.1,Qt6使用1.15.1,不包含Qt则使用1.15.1
 #Qt5使用1.15.1会报错,Qt6使用1.14.1会报错,不知道为何
 
+#勘误,spdlog不是根据Qt版本来的,是gcc编译版本,gcc7.3和gcc11.2版本不兼容
+
 message(STATUS "***** Find spdlog Library *****")
 
-#设置版本号
-if(QT_VERSION_MAJOR EQUAL 5)
-    set(SPDLOG_V 1.14.1)
-elseif(QT_VERSION_MAJOR EQUAL 6)
-    set(SPDLOG_V 1.15.1)
-else()
-    set(SPDLOG_V 1.15.1)
-endif()
 
-#寻找头文件,现在需要区分Qt版本了,Qt5使用1.14.1,Qt6使用1.15.1,不包含Qt则使用1.15.1
+#寻找头文件,需要判断gcc编译器版本
 unset(spdlog_INCLUDE_DIR CACHE)
 unset(SPDLOG_INC_DIR CACHE)
-
-if(QT_VERSION_MAJOR EQUAL 5)
+#判断操作系统
+if(CMAKE_SYSTEM_NAME MATCHES "Windows")
+    if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+        if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3)
+            message(STATUS "GCC编译器版本过低,请使用GCC7.3及以上版本")
+            return()
+        elseif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.2 AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.2)
+            set(SPDLOG_V 1.14.1)
+            set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.14.1)
+        elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11.1)
+            set(SPDLOG_V 1.15.1)
+            set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.15.1)
+        endif()
+    elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+        #MSVC编译器
+        set(SPDLOG_V 1.14.1)
+        set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.14.1)
+    endif()
+    
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+    set(SPDLOG_V 1.14.1)
+    set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.14.1)
+elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+    set(SPDLOG_V 1.14.1)
     set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.14.1)
-elseif(QT_VERSION_MAJOR EQUAL 6)
-    set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.15.1)
 else()
-    set(SPDLOG_INC_DIR ${CMAKE_CURRENT_LIST_DIR}/include_1.15.1)
+    message(STATUS "操作系统:未知")
 endif()
 
+
+
 list(APPEND spdlog_INCLUDE_DIR ${SPDLOG_INC_DIR})
 list(APPEND spdlog_INCLUDE_DIR ${SPDLOG_INC_DIR}/spdlog)
 #包含fmt头文件,使用fmt的时候包含fmt/bundled/format.h这样的完整目录
@@ -42,13 +58,13 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
     if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
         #64位
         if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-            #Qt5版本
-            if(QT_VERSION_MAJOR EQUAL 5)
+            #GCC7.3版本
+            if(SPDLOG_V EQUAL 1.14.1)
                 set(SPDLOG_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/windows/gcc7.3)
-            #Qt6版本
-            elseif(QT_VERSION_MAJOR EQUAL 6)
+            #GCC11.2版本
+            elseif(SPDLOG_V EQUAL 1.15.1)
                 set(SPDLOG_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/windows/gcc11.2)
-            #没有Qt版本
+            #默认版本
             else()
                 set(SPDLOG_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/windows/gcc11.2)
             endif()