Kaynağa Gözat

V1.5.2
1、新增了Windows32位的qmqtt库

Apple 3 gün önce
ebeveyn
işleme
b4e80a6b18

+ 174 - 163
Libraries/qmqtt/Findqmqtt.cmake

@@ -1,163 +1,174 @@
-
-#这里需要区分Qt版本,因此要放到find_package(qt)之后
-
-message(STATUS "***** Find qmqtt.cmake *****")
-
-# 0. 定义qmqtt版本
-
-
-# 1. 指定头文件路径
-unset(QMQTT_INCLUDE_DIR CACHE)
-unset(QMQTT_LIBRARY CACHE)
-unset(INCLUDE_DIR CACHE)
-find_path(INCLUDE_DIR
-    NAMES qmqtt.h
-    PATHS ${CMAKE_CURRENT_LIST_DIR}/inc
-    NO_DEFAULT_PATH
-)
-
-list(APPEND QMQTT_INCLUDE_DIR ${INCLUDE_DIR})
-
-unset(INCLUDE_DIR CACHE)
-find_path(INCLUDE_DIR
-    NAMES MQTTBase.h
-    PATHS ${CMAKE_CURRENT_LIST_DIR}/mqttBase
-    NO_DEFAULT_PATH
-)
-
-list(APPEND QMQTT_INCLUDE_DIR ${INCLUDE_DIR})
-
-
-#添加源文件
-unset(QMQTT_SOURCES CACHE)
-find_path(INCLUDE_DIR
-    NAMES MQTTBase.cpp
-    PATHS ${CMAKE_CURRENT_LIST_DIR}/mqttBase
-    NO_DEFAULT_PATH
-)
-
-list(APPEND QMQTT_SOURCES ${INCLUDE_DIR}/MQTTBase.cpp)
-
-
-#区分Qt版本
-if(QT_VERSION_MAJOR EQUAL 5)
-    # message(STATUS "----------------Qt Version : ${Qt5Core_VERSION}")
-    if(${Qt5Core_VERSION} VERSION_LESS 5.15.0 AND ${Qt5Core_VERSION} VERSION_GREATER 5.12.0)
-        set(QtVersion 5.12)
-    elseif(${Qt5Core_VERSION} VERSION_GREATER_EQUAL 5.15.0)
-        set(QtVersion 5.15)
-    endif()
-    
-elseif(QT_VERSION_MAJOR EQUAL 6)
-    message(STATUS "Qt Version : ${Qt6Core_VERSION}")
-    message(STATUS "qmqtt not support Qt6")
-endif()
-
-
-# 2. 直接指定库文件,区分gcc,msvc,debug和release
-unset(QMQTT_LIBRARY CACHE)
-if(CMAKE_SYSTEM_NAME MATCHES "Windows")
-    if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-        if(QtVersion STREQUAL "5.12")
-            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.12.12/Qt5Qmqttd.dll)
-            else()
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.12.12/Qt5Qmqtt.dll)
-            endif()
-        elseif(QtVersion STREQUAL "5.15")
-            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.15.2/debug/Qt5Qmqtt.dll)
-            else()
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.15.2/release/Qt5Qmqtt.dll)
-            endif()
-        endif()
-    elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
-        # message(STATUS "MSVC")
-        if(QtVersion STREQUAL "5.12")
-            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.12.12/Qt5Qmqttd.lib)
-            else()
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.12.12/Qt5Qmqtt.lib)
-            endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
-            
-        elseif(QtVersion STREQUAL "5.15")
-            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.15.2/Qt5Qmqttd.lib)
-            else()
-                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.15.2/Qt5Qmqtt.lib)
-            endif()
-        endif()
-    endif()
-#添加Linux库
-elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
-    # message(STATUS "Using ${CMAKE_SYSTEM_NAME} System")
-    if(QtVersion STREQUAL "5.12")
-        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.12.12/debug/libQt5Qmqtt.so)
-        else()
-            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.12.12/release/libQt5Qmqtt.so)
-        endif()
-    elseif(QtVersion STREQUAL "5.15")
-        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.15.14/debug/libQt5Qmqtt.so)
-        else()
-            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.15.14/debug/libQt5Qmqtt.so)
-        endif()
-    endif()
-endif()
-
-
-# message("Include: " ${QMQTT_INCLUDE_DIR})
-# message("Library: " ${QMQTT_LIBRARY})
-# 3. 设置查找到了变量
-if(QMQTT_INCLUDE_DIR AND QMQTT_LIBRARY)
-    set(QMQTT_FOUND TRUE)
-    set(QMQTT_VERSION 1.0.3)
-
-    # message(STATUS "qmqtt Version : ${QMQTT_VERSION}")
-    # message(STATUS "include : QMQTT_INCLUDE_DIR")
-    # message(STATUS "Library : QMQTT_LIBRARY")
-    # message(STATUS "Sources : QMQTT_SOURCES")
-
-    message(STATUS "target_link_libraries(YourTarget PRIVATE External::qmqtt)")
-else()
-    set(QMQTT_FOUND FALSE)
-endif()
-
-
-message(STATUS "qmqtt Found : ${QMQTT_FOUND}")
-message(STATUS "qmqtt Version : ${QMQTT_VERSION}")
-message(STATUS "--------------------------------------------------")
-
-
-#导入目标
-if(QMQTT_FOUND)
-    if(NOT TARGET External::qmqtt)
-        add_library(External::qmqtt UNKNOWN IMPORTED)
-        #添加头文件
-        set_target_properties(External::qmqtt PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${QMQTT_INCLUDE_DIR}")
-
-        #添加库文件
-
-        set_target_properties(External::qmqtt PROPERTIES
-            IMPORTED_LOCATION "${QMQTT_LIBRARY}")
-        #添加spdlog需要的依赖库
-        # set_target_properties(External::qmqtt PROPERTIES
-        #     INTERFACE_LINK_LIBRARIES "pthread")
-
-
-        #添加源文件
-        set_target_properties(External::qmqtt PROPERTIES
-           INTERFACE_SOURCES "${QMQTT_SOURCES}")
-    endif()
-endif()
-
-# 标记这些变量为高级变量
-mark_as_advanced(
-    QMQTT_INCLUDE_DIR 
-    QMQTT_LIBRARY 
-    QMQTT_SOURCES
-)
-
-
+
+#这里需要区分Qt版本,因此要放到find_package(qt)之后
+
+message(STATUS "***** Find qmqtt.cmake *****")
+
+# 0. 定义qmqtt版本
+
+
+# 1. 指定头文件路径
+unset(QMQTT_INCLUDE_DIR CACHE)
+unset(QMQTT_LIBRARY CACHE)
+unset(INCLUDE_DIR CACHE)
+find_path(INCLUDE_DIR
+    NAMES qmqtt.h
+    PATHS ${CMAKE_CURRENT_LIST_DIR}/inc
+    NO_DEFAULT_PATH
+)
+
+list(APPEND QMQTT_INCLUDE_DIR ${INCLUDE_DIR})
+
+unset(INCLUDE_DIR CACHE)
+find_path(INCLUDE_DIR
+    NAMES MQTTBase.h
+    PATHS ${CMAKE_CURRENT_LIST_DIR}/mqttBase
+    NO_DEFAULT_PATH
+)
+
+list(APPEND QMQTT_INCLUDE_DIR ${INCLUDE_DIR})
+
+
+#添加源文件
+unset(QMQTT_SOURCES CACHE)
+find_path(INCLUDE_DIR
+    NAMES MQTTBase.cpp
+    PATHS ${CMAKE_CURRENT_LIST_DIR}/mqttBase
+    NO_DEFAULT_PATH
+)
+
+list(APPEND QMQTT_SOURCES ${INCLUDE_DIR}/MQTTBase.cpp)
+
+
+#区分Qt版本
+if(QT_VERSION_MAJOR EQUAL 5)
+    # message(STATUS "----------------Qt Version : ${Qt5Core_VERSION}")
+    if(${Qt5Core_VERSION} VERSION_LESS 5.15.0 AND ${Qt5Core_VERSION} VERSION_GREATER 5.12.0)
+        set(QtVersion 5.12)
+    elseif(${Qt5Core_VERSION} VERSION_GREATER_EQUAL 5.15.0)
+        set(QtVersion 5.15)
+    endif()
+    
+elseif(QT_VERSION_MAJOR EQUAL 6)
+    message(STATUS "Qt Version : ${Qt6Core_VERSION}")
+    message(STATUS "qmqtt not support Qt6")
+endif()
+
+
+# 2. 直接指定库文件,区分gcc,msvc,debug和release
+unset(QMQTT_LIBRARY CACHE)
+if(CMAKE_SYSTEM_NAME MATCHES "Windows")
+    if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+        if(QtVersion STREQUAL "5.12")
+        #区分64位和32位
+            if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+                # message(STATUS "GCC 64bit")
+                if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+                    list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.12.12/Qt5Qmqttd.dll)
+                else()
+                    list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.12.12/Qt5Qmqtt.dll)
+                endif()
+            else()
+                # message(STATUS "GCC 32bit")
+                if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+                    list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc73_32/Qt5Qmqttd.dll)
+                else()
+                    list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc73_32/Qt5Qmqtt.dll)
+                endif()
+            endif()
+        elseif(QtVersion STREQUAL "5.15")
+            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.15.2/debug/Qt5Qmqtt.dll)
+            else()
+                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/gcc/5.15.2/release/Qt5Qmqtt.dll)
+            endif()
+        endif()
+    elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+        # message(STATUS "MSVC")
+        if(QtVersion STREQUAL "5.12")
+            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.12.12/Qt5Qmqttd.lib)
+            else()
+                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.12.12/Qt5Qmqtt.lib)
+            endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
+            
+        elseif(QtVersion STREQUAL "5.15")
+            if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.15.2/Qt5Qmqttd.lib)
+            else()
+                list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/msvc/5.15.2/Qt5Qmqtt.lib)
+            endif()
+        endif()
+    endif()
+#添加Linux库
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+    # message(STATUS "Using ${CMAKE_SYSTEM_NAME} System")
+    if(QtVersion STREQUAL "5.12")
+        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.12.12/debug/libQt5Qmqtt.so)
+        else()
+            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.12.12/release/libQt5Qmqtt.so)
+        endif()
+    elseif(QtVersion STREQUAL "5.15")
+        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.15.14/debug/libQt5Qmqtt.so)
+        else()
+            list(APPEND QMQTT_LIBRARY ${CMAKE_CURRENT_LIST_DIR}/lib/linux_gcc8.3/5.15.14/debug/libQt5Qmqtt.so)
+        endif()
+    endif()
+endif()
+
+
+# message("Include: " ${QMQTT_INCLUDE_DIR})
+# message("Library: " ${QMQTT_LIBRARY})
+# 3. 设置查找到了变量
+if(QMQTT_INCLUDE_DIR AND QMQTT_LIBRARY)
+    set(QMQTT_FOUND TRUE)
+    set(QMQTT_VERSION 1.0.3)
+
+    # message(STATUS "qmqtt Version : ${QMQTT_VERSION}")
+    # message(STATUS "include : QMQTT_INCLUDE_DIR")
+    # message(STATUS "Library : QMQTT_LIBRARY")
+    # message(STATUS "Sources : QMQTT_SOURCES")
+
+    message(STATUS "target_link_libraries(YourTarget PRIVATE External::qmqtt)")
+else()
+    set(QMQTT_FOUND FALSE)
+endif()
+
+
+message(STATUS "qmqtt Found : ${QMQTT_FOUND}")
+message(STATUS "qmqtt Version : ${QMQTT_VERSION}")
+message(STATUS "--------------------------------------------------")
+
+
+#导入目标
+if(QMQTT_FOUND)
+    if(NOT TARGET External::qmqtt)
+        add_library(External::qmqtt UNKNOWN IMPORTED)
+        #添加头文件
+        set_target_properties(External::qmqtt PROPERTIES
+            INTERFACE_INCLUDE_DIRECTORIES "${QMQTT_INCLUDE_DIR}")
+
+        #添加库文件
+
+        set_target_properties(External::qmqtt PROPERTIES
+            IMPORTED_LOCATION "${QMQTT_LIBRARY}")
+        #添加spdlog需要的依赖库
+        # set_target_properties(External::qmqtt PROPERTIES
+        #     INTERFACE_LINK_LIBRARIES "pthread")
+
+
+        #添加源文件
+        set_target_properties(External::qmqtt PROPERTIES
+           INTERFACE_SOURCES "${QMQTT_SOURCES}")
+    endif()
+endif()
+
+# 标记这些变量为高级变量
+mark_as_advanced(
+    QMQTT_INCLUDE_DIR 
+    QMQTT_LIBRARY 
+    QMQTT_SOURCES
+)
+
+

BIN
Libraries/qmqtt/lib/gcc73_32/Qt5Qmqtt.dll


BIN
Libraries/qmqtt/lib/gcc73_32/Qt5Qmqttd.dll


BIN
Libraries/qmqtt/lib/gcc73_32/libQt5Qmqtt.a


BIN
Libraries/qmqtt/lib/gcc73_32/libQt5Qmqttd.a