@@ -56,60 +56,48 @@ cc_msvc_force_warn_opt(/W4)
5656
5757include (GNUInstallDirs )
5858
59- set (CORE_LIB_NAME "cc_tools_qt_plugin_cc_mqtt5_protocol_core " )
59+ set (INTERFACE_LIB_PREFIX "cc_tools_qt_plugin_cc_mqtt5 " )
6060
6161######################################################################
6262
63- function (cc_plugin_core )
64- set (name ${CORE_LIB_NAME} )
63+ function (cc_plugin_Message )
64+ set (name ${INTERFACE_LIB_PREFIX} _Message )
6565 set (src
66- cc_tools_qt_plugin/cc_mqtt5/field/BinData.cpp
67- cc_tools_qt_plugin/cc_mqtt5/field/EnableEnum.cpp
68- cc_tools_qt_plugin/cc_mqtt5/field/Length.cpp
69- cc_tools_qt_plugin/cc_mqtt5/field/MsgId.cpp
70- cc_tools_qt_plugin/cc_mqtt5/field/PacketId.cpp
71- cc_tools_qt_plugin/cc_mqtt5/field/PropertiesList.cpp
72- cc_tools_qt_plugin/cc_mqtt5/field/Property.cpp
73- cc_tools_qt_plugin/cc_mqtt5/field/ProtocolName.cpp
74- cc_tools_qt_plugin/cc_mqtt5/field/Qos.cpp
75- cc_tools_qt_plugin/cc_mqtt5/field/ReasonCode.cpp
76- cc_tools_qt_plugin/cc_mqtt5/field/String .cpp
77- cc_tools_qt_plugin/cc_mqtt5/field/Topic.cpp
78- cc_tools_qt_plugin/cc_mqtt5/field/VarLenInt.cpp
79- cc_tools_qt_plugin/cc_mqtt5/message/Auth.cpp
80- cc_tools_qt_plugin/cc_mqtt5/message/Connack.cpp
81- cc_tools_qt_plugin/cc_mqtt5/message/Connect.cpp
82- cc_tools_qt_plugin/cc_mqtt5/message/Disconnect.cpp
83- cc_tools_qt_plugin/cc_mqtt5/message/Pingreq.cpp
84- cc_tools_qt_plugin/cc_mqtt5/message/Pingresp.cpp
85- cc_tools_qt_plugin/cc_mqtt5/message/Puback.cpp
86- cc_tools_qt_plugin/cc_mqtt5/message/Pubcomp.cpp
87- cc_tools_qt_plugin/cc_mqtt5/message/Publish.cpp
88- cc_tools_qt_plugin/cc_mqtt5/message/Pubrec.cpp
89- cc_tools_qt_plugin/cc_mqtt5/message/Pubrel.cpp
90- cc_tools_qt_plugin/cc_mqtt5/message/Suback.cpp
91- cc_tools_qt_plugin/cc_mqtt5/message/Subscribe.cpp
92- cc_tools_qt_plugin/cc_mqtt5/message/Unsuback.cpp
93- cc_tools_qt_plugin/cc_mqtt5/message/Unsubscribe.cpp
94- cc_tools_qt_plugin/cc_mqtt5/Message.cpp
95- cc_tools_qt_plugin/cc_mqtt5/frame/FrameTransportMessage.cpp
96- cc_tools_qt_plugin/cc_mqtt5/factory/AllMessagesDynMemMsgFactory.cpp
66+ cc_tools_qt_plugin/Message/cc_mqtt5/Message.cpp
67+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Auth.cpp
68+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Connack.cpp
69+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Connect.cpp
70+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Disconnect.cpp
71+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Pingreq.cpp
72+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Pingresp.cpp
73+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Puback.cpp
74+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Pubcomp.cpp
75+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Publish.cpp
76+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Pubrec.cpp
77+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Pubrel.cpp
78+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Suback.cpp
79+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Subscribe.cpp
80+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Unsuback.cpp
81+ cc_tools_qt_plugin/Message/cc_mqtt5/message/Unsubscribe.cpp
82+ cc_tools_qt_plugin/Message/cc_mqtt5/frame/FrameTransportMessage.cpp
83+ cc_tools_qt_plugin/Message/cc_mqtt5/frame/Frame.cpp
84+ cc_tools_qt_plugin/Message/cc_mqtt5/factory/MsgFactory.cpp
9785 )
9886
9987 add_library (${name} STATIC ${src} )
88+ set_target_properties (${name} PROPERTIES POSITION_INDEPENDENT_CODE TRUE )
10089 target_link_libraries (${name} PUBLIC cc::cc_mqtt5 cc::comms cc::cc_tools_qt Qt${OPT_QT_MAJOR_VERSION}::Widgets Qt${OPT_QT_MAJOR_VERSION}::Core )
10190 target_include_directories (${name} PUBLIC ${PROJECT_SOURCE_DIR } )
10291 target_compile_options (${name} PRIVATE
10392 $<$<CXX_COMPILER_ID :MSVC >:/bigobj /wd4127 /wd5054 >
10493 $<$<CXX_COMPILER_ID :GNU >:-ftemplate -depth =2048 -fconstexpr -depth =4096 -Wno -unused -local -typedefs >
10594 $<$<CXX_COMPILER_ID :Clang >:-ftemplate -depth =2048 -fconstexpr -depth =4096 -fbracket -depth =2048 -Wno -unused -local -typedefs >
10695 )
107-
10896endfunction ()
10997
11098######################################################################
11199
112- function (cc_plugin protocol has_config_widget )
100+ function (cc_plugin protocol interface )
113101 string (TOLOWER "cc_tools_plugin_${protocol} " name)
114102
115103 if (NOT "${name} " MATCHES ".*_protocol$" )
@@ -133,22 +121,19 @@ function (cc_plugin protocol has_config_widget)
133121 cc_tools_qt_plugin/cc_mqtt5/plugin/Plugin_${protocol} .h
134122 )
135123
136- if (has_config_widget)
137- list (APPEND src cc_tools_qt_plugin/cc_mqtt5/plugin/ConfigWidget_${protocol} .cpp)
138- endif ()
139-
140124 set (extra_link_opts)
141- if (CMAKE_COMPILER_IS_GNUCC)
125+ if (( CMAKE_COMPILER_IS_GNUCC) OR ( " ${ CMAKE_CXX_COMPILER_ID } " MATCHES "Clang" ) )
142126 set (extra_link_opts "-Wl,--no-undefined" )
143127 endif ()
144128
145- add_library (${name} MODULE ${src} ${moc} )
146- target_link_libraries (${name} ${CORE_LIB_NAME} cc::cc_tools_qt Qt${OPT_QT_MAJOR_VERSION}::Widgets Qt${OPT_QT_MAJOR_VERSION}::Core ${extra_link_opts} )
129+ add_library (${name} MODULE ${src} )
130+ target_link_libraries (${name} ${INTERFACE_LIB_PREFIX} _${interface} cc::cc_tools_qt Qt${OPT_QT_MAJOR_VERSION}::Core ${extra_link_opts} )
147131 target_compile_options (${name} PRIVATE
148132 $<$<CXX_COMPILER_ID :MSVC >:/bigobj /wd4127 /wd5054 >
149133 $<$<CXX_COMPILER_ID :GNU >:-ftemplate -depth =2048 -fconstexpr -depth =4096>
150134 $<$<CXX_COMPILER_ID :Clang >:-ftemplate -depth =2048 -fconstexpr -depth =4096 -fbracket -depth =2048>
151135 )
136+ target_include_directories (${name} PRIVATE ${PROJECT_SOURCE_DIR } )
152137
153138 install (
154139 TARGETS ${name}
@@ -174,6 +159,6 @@ if (TARGET cc::cc_tools_qt)
174159 include_directories (${cc_inc} )
175160endif ()
176161
177- cc_plugin_core ()
162+ cc_plugin_Message ()
178163
179- cc_plugin ("CC_MQTT_v5" FALSE )
164+ cc_plugin ("CC_MQTT_v5" "Message" )
0 commit comments