@@ -49,6 +49,11 @@ include(FetchContent)
49
49
50
50
set (CMAKE_POLICY_DEFAULT_CMP0077 NEW)
51
51
set (USE_GRANT_TOKEN_API ON )
52
+ set (USE_SYNC_API ON )
53
+ set (USE_CALLBACK_API ON )
54
+ set (USE_SET_DNS_SERVERS ON )
55
+ set (USE_IPV6 ON )
56
+ set (USE_SUBSCRIBE_EVENT_ENGINE ON )
52
57
53
58
if (WIN32 OR WIN64 OR MSVC )
54
59
set (CUSTOM_BOOL_TYPE _Bool)
@@ -57,21 +62,21 @@ endif()
57
62
FetchContent_Declare(
58
63
pubnub
59
64
GIT_REPOSITORY https://github.com/pubnub/c-core.git
60
- GIT_TAG master
65
+ GIT_TAG feat/ee-listener-void
61
66
GIT_SHALLOW TRUE
62
67
GIT_PROGRESS ON
63
68
SYSTEM
64
69
)
65
70
66
71
FetchContent_MakeAvailable(pubnub)
67
72
68
-
69
73
# TODO: this flag is okay until we release the Cpp-Chat as an independent library
70
74
if (${ENABLE_C_ABI} )
71
75
target_compile_options (pubnub PUBLIC -DPUBNUB_SDK_VERSION_SUFFIX=\"/CA-Unity/0.3.1\")
72
76
else ()
73
77
target_compile_options (pubnub PUBLIC -DPUBNUB_SDK_VERSION_SUFFIX=\"/CA-Unreal/0.2.5\")
74
78
endif ()
79
+ target_compile_options (pubnub PUBLIC -DPUBNUB_NTF_RUNTIME_SELECTION -DPUBNUB_USE_SUBSCRIBE_EVENT_ENGINE=1 -DPUBNUB_USE_SUBSCRIBE_V2=1 -DPUBNUB_CALLBACK_API=1 -DPUBNUB_SYNC_API=1 -DPUBNUB_SET_DNS_SERVERS=1 -DPUBNUB_USE_IPV6=1)
75
80
76
81
FetchContent_Declare(
77
82
json
@@ -147,7 +152,8 @@ set(APP_SOURCES
147
152
${CMAKE_CURRENT_SOURCE_DIR} /src/application/dao/user_dao.cpp
148
153
${CMAKE_CURRENT_SOURCE_DIR} /src/application/dao/message_dao.cpp
149
154
${CMAKE_CURRENT_SOURCE_DIR} /src/application/dao/membership_dao.cpp
150
- ${CMAKE_CURRENT_SOURCE_DIR} /src/application/dao/message_draft_dao.cpp)
155
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/application/dao/message_draft_dao.cpp
156
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/application/subscription.cpp)
151
157
152
158
set (SOURCES
153
159
${CMAKE_CURRENT_SOURCE_DIR} /src/presentation/chat.cpp
@@ -159,6 +165,7 @@ set(SOURCES
159
165
${CMAKE_CURRENT_SOURCE_DIR} /src/presentation/thread_channel.cpp
160
166
${CMAKE_CURRENT_SOURCE_DIR} /src/presentation/thread_message.cpp
161
167
${CMAKE_CURRENT_SOURCE_DIR} /src/presentation/access_manager.cpp
168
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/presentation/callback_handle.cpp
162
169
${CMAKE_CURRENT_SOURCE_DIR} /src/chat_helpers.cpp
163
170
${CMAKE_CURRENT_SOURCE_DIR} /src/string .cpp
164
171
)
@@ -177,7 +184,9 @@ if(${ENABLE_C_ABI})
177
184
${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_membership.cpp
178
185
${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_serialization.cpp
179
186
${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_thread_channel.cpp
180
- ${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_thread_message.cpp)
187
+ ${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_thread_message.cpp
188
+ ${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_callback_handle.cpp
189
+ ${CMAKE_CURRENT_SOURCE_DIR} /c_abi/src/c_response.cpp)
181
190
endif ()
182
191
183
192
set (SOURCES
@@ -186,26 +195,39 @@ set(SOURCES
186
195
${DOMAIN_SOURCES}
187
196
${APP_SOURCES} )
188
197
198
+
189
199
add_library (pubnub-chat SHARED ${SOURCES} )
190
200
191
- target_link_libraries (pubnub-chat PRIVATE pubnub)
201
+ target_compile_options (pubnub-chat PRIVATE -DPUBNUB_NTF_RUNTIME_SELECTION -DPUBNUB_USE_SUBSCRIBE_EVENT_ENGINE=1 -DPUBNUB_USE_SUBSCRIBE_V2=1 -DPUBNUB_CALLBACK_API=1 -DPUBNUB_SYNC_API=1 -DPUBNUB_SET_DNS_SERVERS=1 -DPUBNUB_USE_IPV6=1)
202
+
203
+ target_link_libraries (pubnub-chat PRIVATE -lpthread pubnub)
192
204
193
205
# TODO: kept for debugging purposes - should be deleted before release
194
206
add_executable (pubnub-chat-example example/main.cpp)
195
- target_link_libraries (pubnub-chat-example PUBLIC pubnub-chat)
207
+ target_compile_options (pubnub-chat-example PRIVATE -DPUBNUB_NTF_RUNTIME_SELECTION -DPUBNUB_USE_SUBSCRIBE_EVENT_ENGINE=1 -DPUBNUB_USE_SUBSCRIBE_V2=1 -DPUBNUB_CALLBACK_API=1 -DPUBNUB_SYNC_API=1 -DPUBNUB_SET_DNS_SERVERS=1 -DPUBNUB_USE_IPV6=1)
208
+ target_link_libraries (pubnub-chat-example PUBLIC -lpthread pubnub-chat)
196
209
197
210
if (${COMPILE_EXAMPLES} )
198
211
function (example name )
199
212
add_executable (pubnub_${name} example/${name} .cpp)
213
+ target_compile_options (pubnub_${name} PRIVATE -DPUBNUB_NTF_RUNTIME_SELECTION -DPUBNUB_USE_SUBSCRIBE_EVENT_ENGINE=1 -DPUBNUB_USE_SUBSCRIBE_V2=1 -DPUBNUB_CALLBACK_API=1 -DPUBNUB_SYNC_API=1 -DPUBNUB_SET_DNS_SERVERS=1 -DPUBNUB_USE_IPV6=1)
200
214
target_link_libraries (pubnub_${name} PRIVATE pubnub-chat)
201
215
endfunction ()
202
216
203
- example(message_draft)
217
+ if (NOT ${ENABLE_C_ABI} )
218
+ # It uses different mechanism systems for callbacks
219
+ # in C++ and C, so it's not possible to run this example
220
+ example(message_draft)
221
+ endif ()
222
+ example(hello_world)
204
223
example(forward_message)
205
224
example(report_user)
206
225
example(thread_channel)
207
226
example(message_reactions)
208
227
example(delete_message)
228
+ example(typing)
229
+ example(entity_update)
230
+ example(read_receipts)
209
231
example(restrictions)
210
232
endif ()
211
233
0 commit comments