@@ -96,6 +96,180 @@ target_link_libraries(tgcalls PRIVATE
96
96
)
97
97
98
98
target_link_libraries (tgcalls PUBLIC
99
- webrtc
100
99
tgvoip
100
+ )
101
+
102
+ set (TGCALLS_LIB "tgcallsjni" )
103
+
104
+ add_library (${TGCALLS_LIB} SHARED
105
+ tgvoip.cpp
106
+
107
+ "${WEBRTC_DIR} /modules/audio_device/android/audio_manager.cc"
108
+
109
+ "${WEBRTC_DIR} /modules/audio_device/android/build_info.cc"
110
+
111
+ "${WEBRTC_DIR} /modules/audio_device/android/opensles_common.cc"
112
+ "${WEBRTC_DIR} /modules/audio_device/android/opensles_player.cc"
113
+ "${WEBRTC_DIR} /modules/audio_device/android/opensles_recorder.cc"
114
+
115
+ "${WEBRTC_DIR} /sdk/android/native_api/audio_device_module/audio_device_android.cc"
116
+ "${WEBRTC_DIR} /sdk/android/native_api/base/init.cc"
117
+ "${WEBRTC_DIR} /sdk/android/native_api/codecs/wrapper.cc"
118
+
119
+ "${WEBRTC_DIR} /sdk/android/native_api/jni/jvm.cc"
120
+ "${WEBRTC_DIR} /sdk/android/native_api/peerconnection/peer_connection_factory.cc"
121
+ "${WEBRTC_DIR} /sdk/android/native_api/stacktrace/stacktrace.cc"
122
+ "${WEBRTC_DIR} /sdk/android/native_api/video/video_source.cc"
123
+ "${WEBRTC_DIR} /sdk/android/native_api/video/wrapper.cc"
124
+ "${WEBRTC_DIR} /sdk/android/native_api/network_monitor/network_monitor.cc"
125
+
126
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/opensles_common.cc"
127
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/opensles_player.cc"
128
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/opensles_recorder.cc"
129
+ "${WEBRTC_DIR} /sdk/android/src/jni/jni_generator_helper.cc"
130
+ "${WEBRTC_DIR} /sdk/android/src/jni/jni_helpers.cc"
131
+ "${WEBRTC_DIR} /sdk/android/src/jni/jvm.cc"
132
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/audio.cc"
133
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/logging.cc"
134
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/owned_factory_and_threads.cc"
135
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/video.cc"
136
+
137
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/add_ice_candidate_observer.cc"
138
+ "${WEBRTC_DIR} /sdk/android/native_api/jni/class_loader.cc"
139
+ "${WEBRTC_DIR} /sdk/android/native_api/jni/java_types.cc"
140
+ "${WEBRTC_DIR} /sdk/android/src/jni/egl_base_10_impl.cc"
141
+ "${WEBRTC_DIR} /modules/audio_device/android/audio_record_jni.cc"
142
+ "${WEBRTC_DIR} /modules/audio_device/android/audio_track_jni.cc"
143
+ "${WEBRTC_DIR} /sdk/android/src/jni/android_video_track_source.cc"
144
+ "${WEBRTC_DIR} /sdk/android/src/jni/android_network_monitor.cc"
145
+ "${WEBRTC_DIR} /sdk/android/src/jni/java_i420_buffer.cc"
146
+ "${WEBRTC_DIR} /sdk/android/src/jni/jni_common.cc"
147
+ "${WEBRTC_DIR} /sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc"
148
+ "${WEBRTC_DIR} /sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc"
149
+ "${WEBRTC_DIR} /sdk/android/src/jni/android_histogram.cc"
150
+ "${WEBRTC_DIR} /sdk/android/src/jni/android_metrics.cc"
151
+ "${WEBRTC_DIR} /sdk/android/src/jni/h264_utils.cc"
152
+ "${WEBRTC_DIR} /sdk/android/src/jni/encoded_image.cc"
153
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/java_audio_device_module.cc"
154
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/crypto_options.cc"
155
+ "${WEBRTC_DIR} /sdk/android/src/jni/nv12_buffer.cc"
156
+ "${WEBRTC_DIR} /sdk/android/src/jni/nv21_buffer.cc"
157
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_codec_status.cc"
158
+ "${WEBRTC_DIR} /sdk/android/src/jni/scoped_java_ref_counted.cc"
159
+ "${WEBRTC_DIR} /sdk/android/src/jni/timestamp_aligner.cc"
160
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/audio_track.cc"
161
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/dtmf_sender.cc"
162
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/media_source.cc"
163
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/media_stream_track.cc"
164
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/audio_device_module.cc"
165
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/audio_record_jni.cc"
166
+ "${WEBRTC_DIR} /sdk/android/src/jni/audio_device/audio_track_jni.cc"
167
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/rtp_parameters.cc"
168
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc"
169
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/session_description.cc"
170
+ "${WEBRTC_DIR} /sdk/android/src/jni/logging/log_sink.cc"
171
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/data_channel.cc"
172
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/media_stream.cc"
173
+ "${WEBRTC_DIR} /sdk/android/src/jni/native_capturer_observer.cc"
174
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/rtp_receiver.cc"
175
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/rtp_sender.cc"
176
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/rtp_transceiver.cc"
177
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc"
178
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/turn_customizer.cc"
179
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/ice_candidate.cc"
180
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_codec_info.cc"
181
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_decoder_factory_wrapper.cc"
182
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_decoder_fallback.cc"
183
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_frame.cc"
184
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_sink.cc"
185
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/sdp_observer.cc"
186
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/stats_observer.cc"
187
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc"
188
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/media_constraints.cc"
189
+ "${WEBRTC_DIR} /sdk/android/src/jni/vp8_codec.cc"
190
+ "${WEBRTC_DIR} /sdk/android/src/jni/vp9_codec.cc"
191
+ "${WEBRTC_DIR} /sdk/android/src/jni/wrapped_native_i420_buffer.cc"
192
+ "${WEBRTC_DIR} /sdk/android/src/jni/yuv_helper.cc"
193
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_track.cc"
194
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_encoder_fallback.cc"
195
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/peer_connection.cc"
196
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/peer_connection_factory.cc"
197
+ "${WEBRTC_DIR} /sdk/android/src/jni/pc/rtc_certificate.cc"
198
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_decoder_wrapper.cc"
199
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_encoder_factory_wrapper.cc"
200
+ "${WEBRTC_DIR} /sdk/android/src/jni/video_encoder_wrapper.cc"
201
+ )
202
+ target_include_directories (${TGCALLS_LIB} PRIVATE
203
+ "${WEBRTC_DIR} /generated"
204
+ "${THIRDPARTY_DIR} "
205
+ .
206
+ "${THIRDPARTY_DIR} /abseil-cpp"
207
+ "${YUV_DIR} /include"
208
+ "${STUB_DIR} "
209
+ )
210
+ set_target_properties (${TGCALLS_LIB} PROPERTIES
211
+ ANDROID_ARM_MODE arm
212
+ )
213
+ target_compile_definitions (${TGCALLS_LIB} PUBLIC ${WEBRTC_OPTIONS} )
214
+ target_compile_definitions (${TGCALLS_LIB} PRIVATE
215
+ TDLIB_TDAPI_CLASS_PATH="org/drinkless/tdlib/TdApi"
216
+ )
217
+ target_include_directories (${TGCALLS_LIB} PUBLIC
218
+ "${WEBRTC_DIR} "
219
+ )
220
+
221
+ if (${ANDROID_ABI} STREQUAL "armeabi-v7a" )
222
+ target_compile_definitions (${TGCALLS_LIB} PUBLIC
223
+ WEBRTC_ARCH_ARM
224
+ WEBRTC_ARCH_ARM_V7
225
+ WEBRTC_HAS_NEON
226
+ )
227
+ elseif (${ANDROID_ABI} STREQUAL "arm64-v8a" )
228
+ target_compile_definitions (${TGCALLS_LIB} PUBLIC
229
+ WEBRTC_ARCH_ARM64
230
+ WEBRTC_HAS_NEON
231
+ )
232
+ elseif (${ANDROID_ABI} STREQUAL "x86" )
233
+ target_compile_definitions (${TGCALLS_LIB} PUBLIC
234
+ HAVE_SSE2
235
+ )
236
+ elseif (${ANDROID_ABI} STREQUAL "x86_64" )
237
+ target_compile_definitions (${TGCALLS_LIB} PUBLIC
238
+ HAVE_SSE2
239
+ )
240
+ endif ()
241
+
242
+ target_link_libraries (${TGCALLS_LIB}
243
+ jni-utils
244
+ tgcalls
245
+ )
246
+
247
+ target_link_libraries (${TGCALLS_LIB}
248
+ log
249
+ GLESv2
250
+ EGL
251
+ android
252
+ cpufeatures
253
+ )
254
+
255
+ set (TGCALLS_EXCLUDE_LIBS
256
+ libtgvoip.a
257
+ libusrsctp.a
258
+ libsrtp.a
259
+ libopenh264.a
260
+ libabsl.a
261
+ libjson11.a
262
+ librnnoise.a
263
+ libwebrtc.a
264
+ libtgcalls.a
265
+ )
266
+ list (APPEND TGCALLS_EXCLUDE_LIBS
267
+ libyuv.a
268
+ libopus.a
269
+ "${VPX_LIB_PATH} "
270
+ "${FFMPEG_DIR} /lib/libavcodec.a"
271
+ )
272
+ Join(TGCALLS_EXCLUDE_LIBS "${TGCALLS_EXCLUDE_LIBS} " "," )
273
+ target_link_options (${TGCALLS_LIB} PUBLIC
274
+ -Wl,--exclude -libs,${TGCALLS_EXCLUDE_LIBS}
101
275
)
0 commit comments