Skip to content

Commit 4fd253b

Browse files
committed
Separate static library for WebRTC Android API + Properly exported JNI method declarations
1 parent 663ec79 commit 4fd253b

7 files changed

+168
-110
lines changed

‎app/jni/BuildJson11.cmake

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# json11
2+
3+
set(JSON11_DIR "${THIRDPARTY_DIR}/tgcalls/tgcalls/third-party")
4+
5+
add_library(json11 STATIC
6+
"${JSON11_DIR}/json11.cpp"
7+
)
8+
set_target_properties(json11 PROPERTIES
9+
ANDROID_ARM_MODE arm
10+
)
11+
target_include_directories(json11 PUBLIC
12+
"${JSON11_DIR}"
13+
)

‎app/jni/BuildTelegramVoIP.cmake

+5-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ add_library(tgvoip STATIC
3030
"${TGVOIP_DIR}/os/posix/NetworkSocketPosix.cpp"
3131
"${TGVOIP_DIR}/PacketReassembler.cpp"
3232
"${TGVOIP_DIR}/MessageThread.cpp"
33-
"${TGVOIP_DIR}/json11.cpp"
3433
"${TGVOIP_DIR}/audio/AudioIO.cpp"
3534
"${TGVOIP_DIR}/video/VideoRenderer.cpp"
3635
"${TGVOIP_DIR}/video/VideoSource.cpp"
@@ -53,6 +52,7 @@ endif()
5352
if (${NEED_WEBRTC})
5453
set(CC_NEON "cc")
5554
target_sources(tgvoip PRIVATE
55+
"${TGVOIP_DIR}/json/json11.cpp"
5656
"${TGVOIP_DIR}/webrtc_dsp/system_wrappers/source/field_trial.cc"
5757
"${TGVOIP_DIR}/webrtc_dsp/system_wrappers/source/metrics.cc"
5858
"${TGVOIP_DIR}/webrtc_dsp/system_wrappers/source/cpu_features.cc"
@@ -345,8 +345,12 @@ if (${NEED_WEBRTC})
345345
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc"
346346
)
347347
endif()
348+
target_include_directories(tgvoip PUBLIC
349+
${TGVOIP_DIR}/json
350+
)
348351
else()
349352
target_link_libraries(tgvoip PUBLIC
353+
json11
350354
webrtc
351355
)
352356
endif()

‎app/jni/BuildTgCalls.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ set(TGCALLS_DIR "${THIRDPARTY_DIR}/tgcalls")
1010

1111
add_library(tgcalls STATIC
1212
"${TGCALLS_DIR}/tgcalls/utils/gzip.cpp"
13-
"${TGCALLS_DIR}/tgcalls/third-party/json11.cpp"
1413

1514
"${TGCALLS_DIR}/tgcalls/FieldTrialsConfig.cpp"
1615

@@ -87,6 +86,7 @@ target_compile_options(tgcalls PUBLIC
8786

8887
target_link_libraries(tgcalls PRIVATE
8988
rnnoise
89+
json11
9090
z
9191
)
9292

‎app/jni/BuildWebRTC.cmake

+136-100
Original file line numberDiff line numberDiff line change
@@ -2755,103 +2755,6 @@ target_sources(webrtc PRIVATE
27552755

27562756
# sdk
27572757

2758-
target_sources(webrtc PRIVATE
2759-
"${WEBRTC_DIR}/modules/audio_device/android/audio_manager.cc"
2760-
2761-
"${WEBRTC_DIR}/modules/audio_device/android/build_info.cc"
2762-
2763-
"${WEBRTC_DIR}/modules/audio_device/android/opensles_common.cc"
2764-
"${WEBRTC_DIR}/modules/audio_device/android/opensles_player.cc"
2765-
"${WEBRTC_DIR}/modules/audio_device/android/opensles_recorder.cc"
2766-
2767-
"${WEBRTC_DIR}/sdk/android/native_api/audio_device_module/audio_device_android.cc"
2768-
"${WEBRTC_DIR}/sdk/android/native_api/base/init.cc"
2769-
"${WEBRTC_DIR}/sdk/android/native_api/codecs/wrapper.cc"
2770-
2771-
"${WEBRTC_DIR}/sdk/android/native_api/jni/jvm.cc"
2772-
"${WEBRTC_DIR}/sdk/android/native_api/peerconnection/peer_connection_factory.cc"
2773-
"${WEBRTC_DIR}/sdk/android/native_api/stacktrace/stacktrace.cc"
2774-
"${WEBRTC_DIR}/sdk/android/native_api/video/video_source.cc"
2775-
"${WEBRTC_DIR}/sdk/android/native_api/video/wrapper.cc"
2776-
"${WEBRTC_DIR}/sdk/android/native_api/network_monitor/network_monitor.cc"
2777-
2778-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/opensles_common.cc"
2779-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/opensles_player.cc"
2780-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/opensles_recorder.cc"
2781-
"${WEBRTC_DIR}/sdk/android/src/jni/jni_generator_helper.cc"
2782-
"${WEBRTC_DIR}/sdk/android/src/jni/jni_helpers.cc"
2783-
"${WEBRTC_DIR}/sdk/android/src/jni/jvm.cc"
2784-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/audio.cc"
2785-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/logging.cc"
2786-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/owned_factory_and_threads.cc"
2787-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/video.cc"
2788-
2789-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/add_ice_candidate_observer.cc"
2790-
"${WEBRTC_DIR}/sdk/android/native_api/jni/class_loader.cc"
2791-
"${WEBRTC_DIR}/sdk/android/native_api/jni/java_types.cc"
2792-
"${WEBRTC_DIR}/sdk/android/src/jni/egl_base_10_impl.cc"
2793-
"${WEBRTC_DIR}/modules/audio_device/android/audio_record_jni.cc"
2794-
"${WEBRTC_DIR}/modules/audio_device/android/audio_track_jni.cc"
2795-
"${WEBRTC_DIR}/sdk/android/src/jni/android_video_track_source.cc"
2796-
"${WEBRTC_DIR}/sdk/android/src/jni/android_network_monitor.cc"
2797-
"${WEBRTC_DIR}/sdk/android/src/jni/java_i420_buffer.cc"
2798-
"${WEBRTC_DIR}/sdk/android/src/jni/jni_common.cc"
2799-
"${WEBRTC_DIR}/sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc"
2800-
"${WEBRTC_DIR}/sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc"
2801-
"${WEBRTC_DIR}/sdk/android/src/jni/android_histogram.cc"
2802-
"${WEBRTC_DIR}/sdk/android/src/jni/android_metrics.cc"
2803-
"${WEBRTC_DIR}/sdk/android/src/jni/h264_utils.cc"
2804-
"${WEBRTC_DIR}/sdk/android/src/jni/encoded_image.cc"
2805-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/java_audio_device_module.cc"
2806-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/crypto_options.cc"
2807-
"${WEBRTC_DIR}/sdk/android/src/jni/nv12_buffer.cc"
2808-
"${WEBRTC_DIR}/sdk/android/src/jni/nv21_buffer.cc"
2809-
"${WEBRTC_DIR}/sdk/android/src/jni/video_codec_status.cc"
2810-
"${WEBRTC_DIR}/sdk/android/src/jni/scoped_java_ref_counted.cc"
2811-
"${WEBRTC_DIR}/sdk/android/src/jni/timestamp_aligner.cc"
2812-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/audio_track.cc"
2813-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/dtmf_sender.cc"
2814-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_source.cc"
2815-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_stream_track.cc"
2816-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/audio_device_module.cc"
2817-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/audio_record_jni.cc"
2818-
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/audio_track_jni.cc"
2819-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_parameters.cc"
2820-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc"
2821-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/session_description.cc"
2822-
"${WEBRTC_DIR}/sdk/android/src/jni/logging/log_sink.cc"
2823-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/data_channel.cc"
2824-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_stream.cc"
2825-
"${WEBRTC_DIR}/sdk/android/src/jni/native_capturer_observer.cc"
2826-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_receiver.cc"
2827-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_sender.cc"
2828-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_transceiver.cc"
2829-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc"
2830-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/turn_customizer.cc"
2831-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/ice_candidate.cc"
2832-
"${WEBRTC_DIR}/sdk/android/src/jni/video_codec_info.cc"
2833-
"${WEBRTC_DIR}/sdk/android/src/jni/video_decoder_factory_wrapper.cc"
2834-
"${WEBRTC_DIR}/sdk/android/src/jni/video_decoder_fallback.cc"
2835-
"${WEBRTC_DIR}/sdk/android/src/jni/video_frame.cc"
2836-
"${WEBRTC_DIR}/sdk/android/src/jni/video_sink.cc"
2837-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/sdp_observer.cc"
2838-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/stats_observer.cc"
2839-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc"
2840-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_constraints.cc"
2841-
"${WEBRTC_DIR}/sdk/android/src/jni/vp8_codec.cc"
2842-
"${WEBRTC_DIR}/sdk/android/src/jni/vp9_codec.cc"
2843-
"${WEBRTC_DIR}/sdk/android/src/jni/wrapped_native_i420_buffer.cc"
2844-
"${WEBRTC_DIR}/sdk/android/src/jni/yuv_helper.cc"
2845-
"${WEBRTC_DIR}/sdk/android/src/jni/video_track.cc"
2846-
"${WEBRTC_DIR}/sdk/android/src/jni/video_encoder_fallback.cc"
2847-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/peer_connection.cc"
2848-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/peer_connection_factory.cc"
2849-
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtc_certificate.cc"
2850-
"${WEBRTC_DIR}/sdk/android/src/jni/video_decoder_wrapper.cc"
2851-
"${WEBRTC_DIR}/sdk/android/src/jni/video_encoder_factory_wrapper.cc"
2852-
"${WEBRTC_DIR}/sdk/android/src/jni/video_encoder_wrapper.cc"
2853-
)
2854-
28552758
# Deprecated non-existent files:
28562759

28572760
# "${WEBRTC_DIR}/modules/audio_device/android/audio_screen_record_jni.cc"
@@ -2863,7 +2766,7 @@ target_sources(webrtc PRIVATE
28632766
# "${WEBRTC_DIR}/modules/audio_processing/agc2/speech_level_estimator.cc"
28642767
# "${WEBRTC_DIR}/modules/audio_processing/agc2/input_volume_stats_reporter.cc"
28652768

2866-
target_compile_definitions(webrtc PUBLIC
2769+
set(WEBRTC_OPTIONS
28672770
RTC_DISABLE_TRACE_EVENTS
28682771
WEBRTC_OPUS_SUPPORT_120MS_PTIME=1
28692772
BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0
@@ -2891,6 +2794,8 @@ target_compile_definitions(webrtc PUBLIC
28912794
WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0
28922795
)
28932796

2797+
target_compile_definitions(webrtc PUBLIC ${WEBRTC_OPTIONS})
2798+
28942799
#[[target_compile_options(webrtc INTERFACE
28952800
"$<$<COMPILE_LANGUAGE:C>:-std=c20>"
28962801
"$<$<COMPILE_LANGUAGE:CXX>:-std=c++20>"
@@ -2970,10 +2875,141 @@ target_link_libraries(webrtc PUBLIC
29702875

29712876
target_include_directories(webrtc PRIVATE
29722877
.
2973-
"${WEBRTC_DIR}/generated"
29742878
"${STUB_DIR}"
29752879
)
29762880

29772881
target_include_directories(webrtc PUBLIC
29782882
"${WEBRTC_DIR}"
2979-
)
2883+
)
2884+
2885+
add_library(webrtc_android STATIC
2886+
"${WEBRTC_DIR}/modules/audio_device/android/audio_manager.cc"
2887+
2888+
"${WEBRTC_DIR}/modules/audio_device/android/build_info.cc"
2889+
2890+
"${WEBRTC_DIR}/modules/audio_device/android/opensles_common.cc"
2891+
"${WEBRTC_DIR}/modules/audio_device/android/opensles_player.cc"
2892+
"${WEBRTC_DIR}/modules/audio_device/android/opensles_recorder.cc"
2893+
2894+
"${WEBRTC_DIR}/sdk/android/native_api/audio_device_module/audio_device_android.cc"
2895+
"${WEBRTC_DIR}/sdk/android/native_api/base/init.cc"
2896+
"${WEBRTC_DIR}/sdk/android/native_api/codecs/wrapper.cc"
2897+
2898+
"${WEBRTC_DIR}/sdk/android/native_api/jni/jvm.cc"
2899+
"${WEBRTC_DIR}/sdk/android/native_api/peerconnection/peer_connection_factory.cc"
2900+
"${WEBRTC_DIR}/sdk/android/native_api/stacktrace/stacktrace.cc"
2901+
"${WEBRTC_DIR}/sdk/android/native_api/video/video_source.cc"
2902+
"${WEBRTC_DIR}/sdk/android/native_api/video/wrapper.cc"
2903+
"${WEBRTC_DIR}/sdk/android/native_api/network_monitor/network_monitor.cc"
2904+
2905+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/opensles_common.cc"
2906+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/opensles_player.cc"
2907+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/opensles_recorder.cc"
2908+
"${WEBRTC_DIR}/sdk/android/src/jni/jni_generator_helper.cc"
2909+
"${WEBRTC_DIR}/sdk/android/src/jni/jni_helpers.cc"
2910+
"${WEBRTC_DIR}/sdk/android/src/jni/jvm.cc"
2911+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/audio.cc"
2912+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/logging.cc"
2913+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/owned_factory_and_threads.cc"
2914+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/video.cc"
2915+
2916+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/add_ice_candidate_observer.cc"
2917+
"${WEBRTC_DIR}/sdk/android/native_api/jni/class_loader.cc"
2918+
"${WEBRTC_DIR}/sdk/android/native_api/jni/java_types.cc"
2919+
"${WEBRTC_DIR}/sdk/android/src/jni/egl_base_10_impl.cc"
2920+
"${WEBRTC_DIR}/modules/audio_device/android/audio_record_jni.cc"
2921+
"${WEBRTC_DIR}/modules/audio_device/android/audio_track_jni.cc"
2922+
"${WEBRTC_DIR}/sdk/android/src/jni/android_video_track_source.cc"
2923+
"${WEBRTC_DIR}/sdk/android/src/jni/android_network_monitor.cc"
2924+
"${WEBRTC_DIR}/sdk/android/src/jni/java_i420_buffer.cc"
2925+
"${WEBRTC_DIR}/sdk/android/src/jni/jni_common.cc"
2926+
"${WEBRTC_DIR}/sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc"
2927+
"${WEBRTC_DIR}/sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc"
2928+
"${WEBRTC_DIR}/sdk/android/src/jni/android_histogram.cc"
2929+
"${WEBRTC_DIR}/sdk/android/src/jni/android_metrics.cc"
2930+
"${WEBRTC_DIR}/sdk/android/src/jni/h264_utils.cc"
2931+
"${WEBRTC_DIR}/sdk/android/src/jni/encoded_image.cc"
2932+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/java_audio_device_module.cc"
2933+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/crypto_options.cc"
2934+
"${WEBRTC_DIR}/sdk/android/src/jni/nv12_buffer.cc"
2935+
"${WEBRTC_DIR}/sdk/android/src/jni/nv21_buffer.cc"
2936+
"${WEBRTC_DIR}/sdk/android/src/jni/video_codec_status.cc"
2937+
"${WEBRTC_DIR}/sdk/android/src/jni/scoped_java_ref_counted.cc"
2938+
"${WEBRTC_DIR}/sdk/android/src/jni/timestamp_aligner.cc"
2939+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/audio_track.cc"
2940+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/dtmf_sender.cc"
2941+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_source.cc"
2942+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_stream_track.cc"
2943+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/audio_device_module.cc"
2944+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/audio_record_jni.cc"
2945+
"${WEBRTC_DIR}/sdk/android/src/jni/audio_device/audio_track_jni.cc"
2946+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_parameters.cc"
2947+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc"
2948+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/session_description.cc"
2949+
"${WEBRTC_DIR}/sdk/android/src/jni/logging/log_sink.cc"
2950+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/data_channel.cc"
2951+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_stream.cc"
2952+
"${WEBRTC_DIR}/sdk/android/src/jni/native_capturer_observer.cc"
2953+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_receiver.cc"
2954+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_sender.cc"
2955+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtp_transceiver.cc"
2956+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc"
2957+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/turn_customizer.cc"
2958+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/ice_candidate.cc"
2959+
"${WEBRTC_DIR}/sdk/android/src/jni/video_codec_info.cc"
2960+
"${WEBRTC_DIR}/sdk/android/src/jni/video_decoder_factory_wrapper.cc"
2961+
"${WEBRTC_DIR}/sdk/android/src/jni/video_decoder_fallback.cc"
2962+
"${WEBRTC_DIR}/sdk/android/src/jni/video_frame.cc"
2963+
"${WEBRTC_DIR}/sdk/android/src/jni/video_sink.cc"
2964+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/sdp_observer.cc"
2965+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/stats_observer.cc"
2966+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc"
2967+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/media_constraints.cc"
2968+
"${WEBRTC_DIR}/sdk/android/src/jni/vp8_codec.cc"
2969+
"${WEBRTC_DIR}/sdk/android/src/jni/vp9_codec.cc"
2970+
"${WEBRTC_DIR}/sdk/android/src/jni/wrapped_native_i420_buffer.cc"
2971+
"${WEBRTC_DIR}/sdk/android/src/jni/yuv_helper.cc"
2972+
"${WEBRTC_DIR}/sdk/android/src/jni/video_track.cc"
2973+
"${WEBRTC_DIR}/sdk/android/src/jni/video_encoder_fallback.cc"
2974+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/peer_connection.cc"
2975+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/peer_connection_factory.cc"
2976+
"${WEBRTC_DIR}/sdk/android/src/jni/pc/rtc_certificate.cc"
2977+
"${WEBRTC_DIR}/sdk/android/src/jni/video_decoder_wrapper.cc"
2978+
"${WEBRTC_DIR}/sdk/android/src/jni/video_encoder_factory_wrapper.cc"
2979+
"${WEBRTC_DIR}/sdk/android/src/jni/video_encoder_wrapper.cc"
2980+
)
2981+
target_include_directories(webrtc_android PRIVATE
2982+
"${WEBRTC_DIR}/generated"
2983+
.
2984+
"${THIRDPARTY_DIR}/abseil-cpp"
2985+
"${YUV_DIR}/include"
2986+
"${STUB_DIR}"
2987+
)
2988+
set_target_properties(webrtc_android PROPERTIES
2989+
ANDROID_ARM_MODE arm
2990+
)
2991+
target_compile_definitions(webrtc_android PUBLIC ${WEBRTC_OPTIONS})
2992+
target_include_directories(webrtc_android PUBLIC
2993+
"${WEBRTC_DIR}"
2994+
)
2995+
2996+
if (${ANDROID_ABI} STREQUAL "armeabi-v7a")
2997+
target_compile_definitions(webrtc_android PUBLIC
2998+
WEBRTC_ARCH_ARM
2999+
WEBRTC_ARCH_ARM_V7
3000+
WEBRTC_HAS_NEON
3001+
)
3002+
elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
3003+
target_compile_definitions(webrtc_android PUBLIC
3004+
WEBRTC_ARCH_ARM64
3005+
WEBRTC_HAS_NEON
3006+
)
3007+
elseif(${ANDROID_ABI} STREQUAL "x86")
3008+
target_compile_definitions(webrtc_android PUBLIC
3009+
HAVE_SSE2
3010+
)
3011+
elseif(${ANDROID_ABI} STREQUAL "x86_64")
3012+
target_compile_definitions(webrtc_android PUBLIC
3013+
HAVE_SSE2
3014+
)
3015+
endif()

‎app/jni/CMakeLists.txt

+11-6
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,6 @@ set(VPX_LIB_PATH "${VPX_DIR}/lib/libvpx.a")
5151

5252
# == Setup ==
5353

54-
set(CMAKE_C_VISIBILITY_PRESET hidden)
55-
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
56-
5754
if (${ANDROID_ABI} STREQUAL "armeabi-v7a" OR ${ANDROID_ABI} STREQUAL "arm64-v8a")
5855
enable_language(ASM)
5956
else()
@@ -65,6 +62,9 @@ set(ADD_COMMON_FLAGS
6562
-w -Werror=return-type
6663
)
6764
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
65+
set(CMAKE_C_VISIBILITY_PRESET hidden)
66+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
67+
6868
list(APPEND ADD_COMMON_FLAGS
6969
-O3
7070
-fvisibility=hidden
@@ -163,6 +163,9 @@ add_subdirectory(
163163
"${UTILS_DIR}"
164164
)
165165

166+
# yuv
167+
include("${CMAKE_HOME_DIRECTORY}/BuildYuv.cmake")
168+
166169
# usrsctp
167170
include("${CMAKE_HOME_DIRECTORY}/BuildUsrSCTP.cmake")
168171

@@ -175,6 +178,9 @@ include("${CMAKE_HOME_DIRECTORY}/BuildOpenH264.cmake")
175178
# absl
176179
include("${CMAKE_HOME_DIRECTORY}/BuildAbsl.cmake")
177180

181+
# json11
182+
include("${CMAKE_HOME_DIRECTORY}/BuildJson11.cmake")
183+
178184
# webrtc
179185
include("${CMAKE_HOME_DIRECTORY}/BuildWebRTC.cmake")
180186

@@ -184,9 +190,6 @@ include("${CMAKE_HOME_DIRECTORY}/BuildTelegramVoIP.cmake")
184190
# tgcalls
185191
include("${CMAKE_HOME_DIRECTORY}/BuildTgCalls.cmake")
186192

187-
# yuv
188-
include("${CMAKE_HOME_DIRECTORY}/BuildYuv.cmake")
189-
190193
# rnnoise
191194
include("${CMAKE_HOME_DIRECTORY}/BuildRNNoise.cmake")
192195

@@ -291,6 +294,7 @@ if(${LINK_TDLIB})
291294
endif()
292295

293296
target_link_libraries(${NATIVE_LIB}
297+
-Wl,--whole-archive webrtc_android -Wl,--no-whole-archive
294298
jni-utils
295299
flac
296300
tgvoip
@@ -316,6 +320,7 @@ target_link_libraries(${NATIVE_LIB}
316320
jnigraphics
317321
log
318322
GLESv2
323+
EGL
319324
android
320325
cpufeatures
321326
)

0 commit comments

Comments
 (0)