mirror of
https://github.com/danog/tgcalls_cli.git
synced 2024-11-26 20:15:19 +01:00
First commit
This commit is contained in:
commit
9c6e8c24c8
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
build
|
42
.gitmodules
vendored
Normal file
42
.gitmodules
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
[submodule "third_party/tgcalls"]
|
||||
path = third_party/tgcalls
|
||||
url = https://github.com/TelegramMessenger/tgcalls
|
||||
[submodule "third_party/libtgvoip"]
|
||||
path = third_party/libtgvoip
|
||||
url = https://github.com/TGX-Android/libtgvoip.git
|
||||
[submodule "third_party/webrtc"]
|
||||
path = third_party/webrtc
|
||||
url = https://github.com/TGX-Android/webrtc
|
||||
[submodule "third_party/opus"]
|
||||
path = third_party/opus
|
||||
url = https://github.com/xiph/opus.git
|
||||
[submodule "third_party/rnnoise"]
|
||||
path = third_party/rnnoise
|
||||
url = https://github.com/TGX-Android/rnnoise
|
||||
[submodule "third_party/pffft"]
|
||||
path = third_party/pffft
|
||||
url = https://github.com/TGX-Android/pffft
|
||||
[submodule "third_party/crc32c"]
|
||||
path = third_party/crc32c
|
||||
url = https://github.com/google/crc32c
|
||||
[submodule "third_party/libevent"]
|
||||
path = third_party/libevent
|
||||
url = https://github.com/TGX-Android/libevent
|
||||
[submodule "third_party/libyuv"]
|
||||
path = third_party/libyuv
|
||||
url = https://chromium.googlesource.com/libyuv/libyuv
|
||||
[submodule "third_party/usrsctp"]
|
||||
path = third_party/usrsctp
|
||||
url = https://github.com/sctplab/usrsctp
|
||||
[submodule "third_party/libsrtp"]
|
||||
path = third_party/libsrtp
|
||||
url = https://github.com/cisco/libsrtp
|
||||
[submodule "third_party/openh264"]
|
||||
path = third_party/openh264
|
||||
url = https://github.com/cisco/openh264
|
||||
[submodule "third_party/abseil-cpp"]
|
||||
path = third_party/abseil-cpp
|
||||
url = https://github.com/abseil/abseil-cpp
|
||||
[submodule "third_party/boringssl"]
|
||||
path = third_party/boringssl
|
||||
url = https://github.com/google/boringssl
|
355
BuildAbsl.cmake
Normal file
355
BuildAbsl.cmake
Normal file
@ -0,0 +1,355 @@
|
||||
# absl
|
||||
|
||||
set(ABSL_DIR "${THIRDPARTY_DIR}/abseil-cpp")
|
||||
|
||||
# Source files list:
|
||||
# https://github.com/TelegramMessenger/Telegram-iOS/blob/930d1fcc46e39830e6d590986a6a838c3ff49e27/third-party/webrtc/BUILD
|
||||
|
||||
#"${ABSL_DIR}/absl/container/internal/layout.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/hashtable_debug_hooks.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_internal.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_rep_btree.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_rep_flat.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_rep_btree_reader.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_rep_btree_navigator.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_rep_ring.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cordz_functions.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cordz_info.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cordz_handle.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cordz_statistics.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cordz_update_tracker.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cordz_update_scope.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/string_constant.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/inline_variable.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/thread_annotations.h"
|
||||
#"${ABSL_DIR}/absl/base/config.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/mutex.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_fixed.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_if.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_impl.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_info.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_libc.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_posix.h",
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/src/tzfile.h"
|
||||
#"${ABSL_DIR}/absl/meta/type_traits.h"
|
||||
#"${ABSL_DIR}/absl/base/options.h"
|
||||
#"${ABSL_DIR}/absl/base/policy_checks.h"
|
||||
#"${ABSL_DIR}/absl/strings/string_view.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/throw_delegate.h"
|
||||
#"${ABSL_DIR}/absl/base/macros.h"
|
||||
#"${ABSL_DIR}/absl/base/attributes.h"
|
||||
#"${ABSL_DIR}/absl/base/optimization.h"
|
||||
#"${ABSL_DIR}/absl/base/port.h"
|
||||
#"${ABSL_DIR}/absl/types/optional.h"
|
||||
#"${ABSL_DIR}/absl/types/bad_variant_access.h"
|
||||
#"${ABSL_DIR}/absl/types/bad_any_cast.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/test_util.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/include/cctz/time_zone.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/notification.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/include/cctz/civil_time_detail.h"
|
||||
#"${ABSL_DIR}/absl/base/casts.h"
|
||||
#"${ABSL_DIR}/absl/time/civil_time.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/blocking_counter.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/barrier.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/low_level_alloc.h"
|
||||
#"${ABSL_DIR}/absl/strings/str_replace.h"
|
||||
#"${ABSL_DIR}/absl/strings/substitute.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/utf8.h"
|
||||
#"${ABSL_DIR}/absl/strings/numbers.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/output.h"
|
||||
#"${ABSL_DIR}/absl/strings/str_cat.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/ostringstream.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/escaping.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/pow10_helper.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/memutil.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/arg.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/extension.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/bind.h"
|
||||
#"${ABSL_DIR}/absl/strings/ascii.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/charconv_bigint.h"
|
||||
#"${ABSL_DIR}/absl/strings/escaping.h"
|
||||
#"${ABSL_DIR}/absl/status/status.h"
|
||||
#"${ABSL_DIR}/absl/status/internal/status_internal.h"
|
||||
#"${ABSL_DIR}/absl/strings/cord.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/randen_slow.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/randen_detect.h"
|
||||
#"${ABSL_DIR}/absl/random/seed_gen_exception.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/seed_material.h"
|
||||
#"${ABSL_DIR}/absl/random/gaussian_distribution.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/chi_square.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/pool_urbg.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/distribution_test_util.h"
|
||||
#"${ABSL_DIR}/absl/flags/usage.h"
|
||||
#"${ABSL_DIR}/absl/flags/commandlineflag.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/sequence_lock.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/private_handle_accessor.h"
|
||||
#"${ABSL_DIR}/absl/flags/reflection.h"
|
||||
#"${ABSL_DIR}/absl/numeric/int128.h"
|
||||
#"${ABSL_DIR}/absl/numeric/bits.h"
|
||||
#"${ABSL_DIR}/absl/numeric/internal/bits.h"
|
||||
#"${ABSL_DIR}/absl/numeric/internal/representation.h"
|
||||
#"${ABSL_DIR}/absl/flags/marshalling.h"
|
||||
#"${ABSL_DIR}/absl/flags/parse.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/commandlineflag.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/program_name.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/usage.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/registry.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/vdso_support.h"
|
||||
#"${ABSL_DIR}/absl/debugging/stacktrace.h"
|
||||
#"${ABSL_DIR}/absl/flags/flag.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/elf_mem_image.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/examine_stack.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/demangle.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/test_instance_tracker.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/address_is_readable.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/raw_hash_set.h"
|
||||
#"${ABSL_DIR}/absl/debugging/failure_signal_handler.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/hash_generator_testing.h"
|
||||
#"${ABSL_DIR}/absl/container/flat_hash_map.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/hash_function_defaults.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/spinlock_wait.h"
|
||||
#"${ABSL_DIR}/absl/base/log_severity.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/sysinfo.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/scoped_set_env.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/spinlock.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/raw_logging.h"
|
||||
#"${ABSL_DIR}/absl/base/dynamic_annotations.h"
|
||||
#"${ABSL_DIR}/absl/strings/match.h"
|
||||
#"${ABSL_DIR}/absl/algorithm/container.h"
|
||||
#"${ABSL_DIR}/absl/types/bad_optional_access.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/include/cctz/zone_info_source.h"
|
||||
#"${ABSL_DIR}/absl/time/time.h"
|
||||
#"${ABSL_DIR}/absl/time/clock.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/internal/futex.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/internal/waiter.h"
|
||||
#"${ABSL_DIR}/absl/strings/str_split.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/float_conversion.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/charconv_parse.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/parser.h"
|
||||
#"${ABSL_DIR}/absl/status/status_payload_printer.h"
|
||||
#"${ABSL_DIR}/absl/random/seed_sequences.h"
|
||||
#"${ABSL_DIR}/absl/strings/charconv.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/randen.h"
|
||||
#"${ABSL_DIR}/absl/random/discrete_distribution.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/randen_hwaes.h"
|
||||
#"${ABSL_DIR}/absl/hash/internal/hash.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/nanobenchmark.h"
|
||||
#"${ABSL_DIR}/absl/hash/internal/city.h"
|
||||
#"${ABSL_DIR}/absl/hash/internal/low_level_hash.h"
|
||||
#"${ABSL_DIR}/absl/debugging/symbolize.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/stack_consumption.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/flag.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/hashtablez_sampler.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/raw_hash_map.h"
|
||||
#"${ABSL_DIR}/absl/profiling/internal/sample_recorder.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/unscaledcycleclock.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/thread_identity.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/cycleclock.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/strerror.h"
|
||||
#"${ABSL_DIR}/absl/flags/usage_config.h"
|
||||
#"${ABSL_DIR}/absl/utility/utility.h"
|
||||
#"${ABSL_DIR}/absl/algorithm/algorithm.h"
|
||||
#"${ABSL_DIR}/absl/base/call_once.h"
|
||||
#"${ABSL_DIR}/absl/base/const_init.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/atomic_hook.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/endian.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/errno_saver.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/fast_type_id.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/identity.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/low_level_scheduling.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/per_thread_tls.h"
|
||||
#"${ABSL_DIR}/absl/base/thread_annotations.h"
|
||||
#"${ABSL_DIR}/absl/container/inlined_vector.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/hash_policy_testing.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/stacktrace_config.h"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/symbolize.h"
|
||||
#"${ABSL_DIR}/absl/flags/declare.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/parse.h"
|
||||
#"${ABSL_DIR}/absl/memory/memory.h"
|
||||
#"${ABSL_DIR}/absl/random/bernoulli_distribution.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/fast_uniform_bits.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/platform.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/salted_seed_seq.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/traits.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_format/checker.h"
|
||||
#"${ABSL_DIR}/absl/strings/str_join.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/internal/graphcycles.h"
|
||||
#"${ABSL_DIR}/absl/time/internal/cctz/include/cctz/civil_time.h"
|
||||
#"${ABSL_DIR}/absl/types/compare.h"
|
||||
#"${ABSL_DIR}/absl/types/span.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/invoke.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/hide_ptr.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/scheduling_mode.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/tsan_mutex_interface.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/unaligned_access.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/inlined_vector.h"
|
||||
#"${ABSL_DIR}/absl/flags/config.h"
|
||||
#"${ABSL_DIR}/absl/flags/internal/path_util.h"
|
||||
#"${ABSL_DIR}/absl/hash/hash.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/generate_real.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/iostream_state_saver.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/randen_engine.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/randen_traits.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/resize_uninitialized.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_join_internal.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/str_split_internal.h"
|
||||
#"${ABSL_DIR}/absl/strings/str_format.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/internal/kernel_timeout.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/internal/per_thread_sem.h"
|
||||
#"${ABSL_DIR}/absl/types/internal/optional.h"
|
||||
#"${ABSL_DIR}/absl/types/internal/span.h"
|
||||
#"${ABSL_DIR}/absl/types/variant.h"
|
||||
#"${ABSL_DIR}/absl/types/internal/variant.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/direct_mmap.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/dynamic_annotations.h"
|
||||
#"${ABSL_DIR}/absl/container/fixed_array.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/common.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/compressed_tuple.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/fastmath.h"
|
||||
#"${ABSL_DIR}/absl/random/uniform_int_distribution.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/char_map.h"
|
||||
#"${ABSL_DIR}/absl/strings/strip.h"
|
||||
#"${ABSL_DIR}/absl/synchronization/internal/create_thread_identity.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/container_memory.h"
|
||||
#"${ABSL_DIR}/absl/functional/function_ref.h"
|
||||
#"${ABSL_DIR}/absl/random/internal/wide_multiply.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/hash_policy_traits.h"
|
||||
#"${ABSL_DIR}/absl/functional/internal/function_ref.h"
|
||||
#"${ABSL_DIR}/absl/functional/bind_front.h"
|
||||
#"${ABSL_DIR}/absl/functional/internal/front_binder.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/cycleclock_config.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/prefetch.h"
|
||||
#"${ABSL_DIR}/absl/base/internal/unscaledcycleclock_config.h"
|
||||
#"${ABSL_DIR}/absl/functional/any_invocable.h"
|
||||
#"${ABSL_DIR}/absl/profiling/internal/exponential_biased.h"
|
||||
#"${ABSL_DIR}/absl/strings/cord_analysis.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/has_absl_stringify.h"
|
||||
#"${ABSL_DIR}/absl/container/internal/common_policy_traits.h"
|
||||
#"${ABSL_DIR}/absl/functional/internal/any_invocable.h"
|
||||
#"${ABSL_DIR}/absl/strings/cord_buffer.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/stringify_sink.h"
|
||||
#"${ABSL_DIR}/absl/cleanup/cleanup.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_data_edge.h"
|
||||
#"${ABSL_DIR}/absl/cleanup/internal/cleanup.h"
|
||||
#"${ABSL_DIR}/absl/strings/internal/cord_rep_crc.h"
|
||||
|
||||
#"${ABSL_DIR}/absl/numeric/int128_have_intrinsic.inc"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/stacktrace_unimplemented-inl.inc"
|
||||
#"${ABSL_DIR}/absl/debugging/internal/stacktrace_generic-inl.inc"
|
||||
#"${ABSL_DIR}/absl/debugging/symbolize_unimplemented.inc"
|
||||
#"${ABSL_DIR}/absl/debugging/symbolize_darwin.inc"
|
||||
#"${ABSL_DIR}/absl/base/internal/spinlock_posix.inc"
|
||||
#"${ABSL_DIR}/absl/time/internal/get_current_time_chrono.inc"
|
||||
|
||||
add_library(absl STATIC
|
||||
"${ABSL_DIR}/absl/base/internal/cycleclock.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/low_level_alloc.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/raw_logging.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/scoped_set_env.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/spinlock.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/spinlock_wait.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/strerror.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/sysinfo.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/thread_identity.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/throw_delegate.cc"
|
||||
"${ABSL_DIR}/absl/base/internal/unscaledcycleclock.cc"
|
||||
"${ABSL_DIR}/absl/base/log_severity.cc"
|
||||
"${ABSL_DIR}/absl/container/internal/hash_generator_testing.cc"
|
||||
"${ABSL_DIR}/absl/container/internal/hashtablez_sampler.cc"
|
||||
"${ABSL_DIR}/absl/container/internal/hashtablez_sampler_force_weak_definition.cc"
|
||||
"${ABSL_DIR}/absl/container/internal/raw_hash_set.cc"
|
||||
"${ABSL_DIR}/absl/container/internal/test_instance_tracker.cc"
|
||||
"${ABSL_DIR}/absl/debugging/failure_signal_handler.cc"
|
||||
"${ABSL_DIR}/absl/debugging/internal/address_is_readable.cc"
|
||||
"${ABSL_DIR}/absl/debugging/internal/demangle.cc"
|
||||
"${ABSL_DIR}/absl/debugging/internal/elf_mem_image.cc"
|
||||
"${ABSL_DIR}/absl/debugging/internal/examine_stack.cc"
|
||||
"${ABSL_DIR}/absl/debugging/internal/stack_consumption.cc"
|
||||
"${ABSL_DIR}/absl/debugging/internal/vdso_support.cc"
|
||||
"${ABSL_DIR}/absl/debugging/stacktrace.cc"
|
||||
"${ABSL_DIR}/absl/debugging/symbolize.cc"
|
||||
"${ABSL_DIR}/absl/flags/flag.cc"
|
||||
"${ABSL_DIR}/absl/flags/flag_test_defs.cc"
|
||||
"${ABSL_DIR}/absl/flags/internal/commandlineflag.cc"
|
||||
"${ABSL_DIR}/absl/flags/internal/flag.cc"
|
||||
"${ABSL_DIR}/absl/flags/internal/program_name.cc"
|
||||
"${ABSL_DIR}/absl/flags/internal/usage.cc"
|
||||
"${ABSL_DIR}/absl/flags/marshalling.cc"
|
||||
"${ABSL_DIR}/absl/flags/parse.cc"
|
||||
"${ABSL_DIR}/absl/flags/usage.cc"
|
||||
"${ABSL_DIR}/absl/flags/usage_config.cc"
|
||||
"${ABSL_DIR}/absl/hash/internal/city.cc"
|
||||
"${ABSL_DIR}/absl/hash/internal/hash.cc"
|
||||
"${ABSL_DIR}/absl/numeric/int128.cc"
|
||||
"${ABSL_DIR}/absl/random/discrete_distribution.cc"
|
||||
"${ABSL_DIR}/absl/random/gaussian_distribution.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/chi_square.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/distribution_test_util.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/nanobenchmark.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/pool_urbg.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/randen.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/randen_detect.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/randen_hwaes.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/randen_slow.cc"
|
||||
"${ABSL_DIR}/absl/random/internal/seed_material.cc"
|
||||
"${ABSL_DIR}/absl/random/seed_gen_exception.cc"
|
||||
"${ABSL_DIR}/absl/random/seed_sequences.cc"
|
||||
"${ABSL_DIR}/absl/status/status.cc"
|
||||
"${ABSL_DIR}/absl/status/status_payload_printer.cc"
|
||||
"${ABSL_DIR}/absl/strings/ascii.cc"
|
||||
"${ABSL_DIR}/absl/strings/charconv.cc"
|
||||
"${ABSL_DIR}/absl/strings/cord.cc"
|
||||
"${ABSL_DIR}/absl/strings/escaping.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/charconv_bigint.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/charconv_parse.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/escaping.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/memutil.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/ostringstream.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/pow10_helper.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/str_format/arg.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/str_format/bind.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/str_format/extension.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/str_format/float_conversion.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/str_format/output.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/str_format/parser.cc"
|
||||
"${ABSL_DIR}/absl/strings/internal/utf8.cc"
|
||||
"${ABSL_DIR}/absl/strings/match.cc"
|
||||
"${ABSL_DIR}/absl/strings/numbers.cc"
|
||||
"${ABSL_DIR}/absl/strings/str_cat.cc"
|
||||
"${ABSL_DIR}/absl/strings/str_replace.cc"
|
||||
"${ABSL_DIR}/absl/strings/str_split.cc"
|
||||
"${ABSL_DIR}/absl/strings/string_view.cc"
|
||||
"${ABSL_DIR}/absl/strings/substitute.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/barrier.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/blocking_counter.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/internal/create_thread_identity.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/internal/graphcycles.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/internal/per_thread_sem.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/internal/waiter.cc"
|
||||
"${ABSL_DIR}/absl/synchronization/notification.cc"
|
||||
"${ABSL_DIR}/absl/time/civil_time.cc"
|
||||
"${ABSL_DIR}/absl/time/clock.cc"
|
||||
"${ABSL_DIR}/absl/time/duration.cc"
|
||||
"${ABSL_DIR}/absl/time/format.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/civil_time_detail.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_fixed.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_format.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_if.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_impl.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_info.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_libc.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_lookup.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/time_zone_posix.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/cctz/src/zone_info_source.cc"
|
||||
"${ABSL_DIR}/absl/time/internal/test_util.cc"
|
||||
"${ABSL_DIR}/absl/time/time.cc"
|
||||
"${ABSL_DIR}/absl/types/bad_any_cast.cc"
|
||||
"${ABSL_DIR}/absl/types/bad_optional_access.cc"
|
||||
"${ABSL_DIR}/absl/types/bad_variant_access.cc"
|
||||
)
|
||||
target_compile_definitions(absl PRIVATE
|
||||
ABSL_ALLOCATOR_NOTHROW=1
|
||||
)
|
||||
target_include_directories(absl PUBLIC
|
||||
"${ABSL_DIR}"
|
||||
)
|
68
BuildLibSRTP.cmake
Normal file
68
BuildLibSRTP.cmake
Normal file
@ -0,0 +1,68 @@
|
||||
# srtp
|
||||
|
||||
set(SRTP_DIR "${THIRDPARTY_DIR}/libsrtp")
|
||||
|
||||
# libsrtp version matches the one used in Chromium:
|
||||
# https://chromium.googlesource.com/chromium/deps/libsrtp/+/5b7c744/LIBSRTP_VERSION
|
||||
# TODO: extract commit hash dynamically instead of hardcoding current $(git rev-parse HEAD)
|
||||
set(SRTP_COMMIT_HASH "860492290f7d1f25e2bd45da6471bfd4cd4d7add")
|
||||
|
||||
add_library(srtp STATIC
|
||||
"${SRTP_DIR}/crypto/cipher/aes_gcm_ossl.c"
|
||||
"${SRTP_DIR}/crypto/cipher/aes_icm_ossl.c"
|
||||
"${SRTP_DIR}/crypto/cipher/cipher.c"
|
||||
"${SRTP_DIR}/crypto/cipher/null_cipher.c"
|
||||
"${SRTP_DIR}/crypto/hash/auth.c"
|
||||
"${SRTP_DIR}/crypto/hash/hmac_ossl.c"
|
||||
"${SRTP_DIR}/crypto/hash/null_auth.c"
|
||||
"${SRTP_DIR}/crypto/kernel/alloc.c"
|
||||
"${SRTP_DIR}/crypto/kernel/crypto_kernel.c"
|
||||
"${SRTP_DIR}/crypto/kernel/err.c"
|
||||
"${SRTP_DIR}/crypto/kernel/key.c"
|
||||
"${SRTP_DIR}/crypto/math/datatypes.c"
|
||||
"${SRTP_DIR}/crypto/math/stat.c"
|
||||
"${SRTP_DIR}/crypto/replay/rdb.c"
|
||||
"${SRTP_DIR}/crypto/replay/rdbx.c"
|
||||
"${SRTP_DIR}/crypto/replay/ut_sim.c"
|
||||
"${SRTP_DIR}/srtp/ekt.c"
|
||||
"${SRTP_DIR}/srtp/srtp.c"
|
||||
)
|
||||
# config.h options match the ones used in Chromium:
|
||||
# https://chromium.googlesource.com/chromium/deps/libsrtp/+/5b7c744/BUILD.gn
|
||||
target_compile_definitions(srtp PRIVATE
|
||||
PACKAGE_VERSION="${SRTP_COMMIT_HASH}"
|
||||
PACKAGE_STRING="${SRTP_COMMIT_HASH}"
|
||||
|
||||
HAVE_CONFIG_H
|
||||
OPENSSL
|
||||
GCM
|
||||
HAVE_STDLIB_H
|
||||
HAVE_STRING_H
|
||||
HAVE_STDINT_H
|
||||
HAVE_INTTYPES_H
|
||||
HAVE_INT16_T
|
||||
HAVE_INT32_T
|
||||
HAVE_INT8_T
|
||||
HAVE_UINT16_T
|
||||
HAVE_UINT32_T
|
||||
HAVE_UINT64_T
|
||||
HAVE_UINT8_T
|
||||
HAVE_ARPA_INET_H
|
||||
HAVE_SYS_TYPES_H
|
||||
HAVE_UNISTD_H
|
||||
|
||||
HAVE_ARPA_INET_H
|
||||
HAVE_NETINET_IN_H
|
||||
HAVE_SYS_TYPES_H
|
||||
HAVE_UNISTD_H
|
||||
)
|
||||
target_include_directories(srtp PRIVATE
|
||||
"${STUB_DIR}"
|
||||
)
|
||||
target_link_libraries(srtp PUBLIC
|
||||
usrsctp ssl
|
||||
)
|
||||
target_include_directories(srtp PUBLIC
|
||||
"${SRTP_DIR}/include"
|
||||
"${SRTP_DIR}/crypto/include"
|
||||
)
|
130
BuildOpenH264.cmake
Normal file
130
BuildOpenH264.cmake
Normal file
@ -0,0 +1,130 @@
|
||||
# OpenH264
|
||||
|
||||
set(OPENH264_DIR "${THIRDPARTY_DIR}/openh264")
|
||||
|
||||
add_library(openh264 STATIC
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/au_set.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/deblocking.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/decode_mb_aux.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/encode_mb_aux.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/encoder_data_tables.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/encoder_ext.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/encoder.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/get_intra_predictor.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/md.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/mv_pred.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/nal_encap.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/paraset_strategy.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/picture_handle.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/ratectl.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/ref_list_mgr_svc.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/sample.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/set_mb_syn_cabac.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/set_mb_syn_cavlc.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/slice_multi_threading.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_base_layer_md.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_enc_slice_segment.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_encode_mb.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_encode_slice.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_mode_decision.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_motion_estimate.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_set_mb_syn_cabac.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/svc_set_mb_syn_cavlc.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/wels_preprocess.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/wels_task_base.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/wels_task_encoder.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/core/src/wels_task_management.cpp"
|
||||
"${OPENH264_DIR}/codec/encoder/plus/src/welsEncoderExt.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/welsCodecTrace.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/common_tables.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/copy_mb.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/cpu.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/crt_util_safe_x.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/deblocking_common.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/expand_pic.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/intra_pred_common.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/mc.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/memory_align.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/sad_common.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/WelsTaskThread.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/WelsThread.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/WelsThreadLib.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/WelsThreadPool.cpp"
|
||||
"${OPENH264_DIR}/codec/common/src/utils.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/adaptivequantization/AdaptiveQuantization.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/backgrounddetection/BackgroundDetection.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/common/memory.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/common/WelsFrameWork.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/common/WelsFrameWorkEx.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/complexityanalysis/ComplexityAnalysis.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/denoise/denoise.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/denoise/denoise_filter.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/downsample/downsample.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/downsample/downsamplefuncs.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/imagerotate/imagerotate.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/imagerotate/imagerotatefuncs.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/scenechangedetection/SceneChangeDetection.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/scrolldetection/ScrollDetection.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/scrolldetection/ScrollDetectionFuncs.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/vaacalc/vaacalcfuncs.cpp"
|
||||
"${OPENH264_DIR}/codec/processing/src/vaacalc/vaacalculation.cpp"
|
||||
)
|
||||
target_include_directories(openh264 PRIVATE
|
||||
"${OPENH264_DIR}/codec/encoder/core/inc"
|
||||
"${OPENH264_DIR}/codec/encoder/plus/inc"
|
||||
"${OPENH264_DIR}/codec/decoder/plus/inc"
|
||||
"${OPENH264_DIR}/codec/common/inc"
|
||||
"${OPENH264_DIR}/codec/api/svc"
|
||||
"${OPENH264_DIR}/codec/processing/interface"
|
||||
"${OPENH264_DIR}/codec/processing/src/common"
|
||||
)
|
||||
|
||||
if (${ARCHITECTURE} STREQUAL "armv7l")
|
||||
target_sources(openh264 PRIVATE
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm/intra_pred_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm/memory_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm/pixel_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm/reconstruct_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm/svc_motion_estimation.S"
|
||||
"${OPENH264_DIR}/codec/common/arm/copy_mb_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm/deblocking_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm/expand_picture_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm/intra_pred_common_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm/mc_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm/adaptive_quantization.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm/down_sample_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm/pixel_sad_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm/vaa_calc_neon.S"
|
||||
)
|
||||
target_include_directories(openh264 PRIVATE
|
||||
"${OPENH264_DIR}/codec/common/arm"
|
||||
)
|
||||
target_compile_definitions(openh264 PRIVATE
|
||||
HAVE_NEON=1
|
||||
)
|
||||
elseif(${ARCHITECTURE} STREQUAL "aarch64")
|
||||
target_sources(openh264 PRIVATE
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm64/intra_pred_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm64/memory_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm64/pixel_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm64/reconstruct_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm64/copy_mb_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm64/deblocking_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm64/expand_picture_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm64/intra_pred_common_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/common/arm64/mc_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm64/adaptive_quantization_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm64/down_sample_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm64/pixel_sad_aarch64_neon.S"
|
||||
"${OPENH264_DIR}/codec/processing/src/arm64/vaa_calc_aarch64_neon.S"
|
||||
)
|
||||
target_include_directories(openh264 PRIVATE
|
||||
"${OPENH264_DIR}/codec/common/arm64"
|
||||
)
|
||||
target_compile_definitions(openh264 PUBLIC
|
||||
HAVE_NEON_AARCH64=1
|
||||
)
|
||||
endif()
|
58
BuildOpus.cmake
Normal file
58
BuildOpus.cmake
Normal file
@ -0,0 +1,58 @@
|
||||
# opus
|
||||
|
||||
set(OPUS_DIR "${THIRDPARTY_DIR}/opus")
|
||||
|
||||
ReadVariables("${OPUS_DIR}/celt_sources.mk")
|
||||
ReadVariables("${OPUS_DIR}/opus_sources.mk")
|
||||
ReadVariables("${OPUS_DIR}/silk_sources.mk")
|
||||
|
||||
Prefix(CELT_SOURCES "${OPUS_DIR}/")
|
||||
Prefix(OPUS_SOURCES "${OPUS_DIR}/")
|
||||
Prefix(OPUS_SOURCES_FLOAT "${OPUS_DIR}/")
|
||||
Prefix(SILK_SOURCES "${OPUS_DIR}/")
|
||||
Prefix(SILK_SOURCES_FIXED "${OPUS_DIR}/")
|
||||
Prefix(CELT_SOURCES_ARM "${OPUS_DIR}/")
|
||||
Prefix(CELT_SOURCES_ARM_ASM "${OPUS_DIR}/")
|
||||
|
||||
add_library(opus STATIC
|
||||
${CELT_SOURCES}
|
||||
${OPUS_SOURCES}
|
||||
${OPUS_SOURCES_FLOAT}
|
||||
${SILK_SOURCES}
|
||||
${SILK_SOURCES_FIXED}
|
||||
)
|
||||
target_compile_definitions(opus PRIVATE
|
||||
OPUS_BUILD
|
||||
FIXED_POINT
|
||||
USE_ALLOCA
|
||||
HAVE_LRINT
|
||||
HAVE_LRINTF
|
||||
)
|
||||
if (${ARCHITECTURE} STREQUAL "armv7l")
|
||||
Transform(CELT_SOURCES_ARM_ASM "\\.s$" "_gnu.s")
|
||||
target_sources(opus PRIVATE
|
||||
${CELT_SOURCES_ARM}
|
||||
"${OPUS_DIR}/celt/arm/armopts_gnu.s"
|
||||
${CELT_SOURCES_ARM_ASM}
|
||||
)
|
||||
target_compile_definitions(opus PRIVATE
|
||||
OPUS_ARM_ASM
|
||||
OPUS_ARM_INLINE_ASM
|
||||
OPUS_ARM_INLINE_EDSP
|
||||
OPUS_ARM_INLINE_MEDIA
|
||||
OPUS_ARM_INLINE_NEON
|
||||
OPUS_ARM_MAY_HAVE_NEON
|
||||
OPUS_ARM_MAY_HAVE_MEDIA
|
||||
OPUS_ARM_MAY_HAVE_EDSP
|
||||
)
|
||||
endif()
|
||||
target_include_directories(opus PUBLIC
|
||||
"${OPUS_DIR}/include"
|
||||
)
|
||||
target_include_directories(opus PRIVATE
|
||||
"${OPUS_DIR}/src"
|
||||
"${OPUS_DIR}/silk"
|
||||
"${OPUS_DIR}/celt"
|
||||
"${OPUS_DIR}/silk/fixed"
|
||||
"${OPUS_DIR}"
|
||||
)
|
360
BuildTelegramVoIP.cmake
Normal file
360
BuildTelegramVoIP.cmake
Normal file
@ -0,0 +1,360 @@
|
||||
# libtgvoip
|
||||
|
||||
set(TGVOIP_DIR "${THIRDPARTY_DIR}/libtgvoip")
|
||||
|
||||
# TODO move to "${THIRDPARTY_DIR}/libtgvoip/CMakeLists.txt"
|
||||
add_library(tgvoip STATIC
|
||||
"${TGVOIP_DIR}/logging.cpp"
|
||||
"${TGVOIP_DIR}/VoIPController.cpp"
|
||||
"${TGVOIP_DIR}/VoIPGroupController.cpp"
|
||||
"${TGVOIP_DIR}/Buffers.cpp"
|
||||
"${TGVOIP_DIR}/BlockingQueue.cpp"
|
||||
"${TGVOIP_DIR}/audio/AudioInput.cpp"
|
||||
"${TGVOIP_DIR}/MediaStreamItf.cpp"
|
||||
"${TGVOIP_DIR}/audio/AudioOutput.cpp"
|
||||
"${TGVOIP_DIR}/OpusEncoder.cpp"
|
||||
"${TGVOIP_DIR}/JitterBuffer.cpp"
|
||||
"${TGVOIP_DIR}/OpusDecoder.cpp"
|
||||
"${TGVOIP_DIR}/EchoCanceller.cpp"
|
||||
"${TGVOIP_DIR}/CongestionControl.cpp"
|
||||
"${TGVOIP_DIR}/VoIPServerConfig.cpp"
|
||||
"${TGVOIP_DIR}/audio/Resampler.cpp"
|
||||
"${TGVOIP_DIR}/NetworkSocket.cpp"
|
||||
"${TGVOIP_DIR}/os/posix/NetworkSocketPosix.cpp"
|
||||
"${TGVOIP_DIR}/PacketReassembler.cpp"
|
||||
"${TGVOIP_DIR}/MessageThread.cpp"
|
||||
"${TGVOIP_DIR}/json11.cpp"
|
||||
"${TGVOIP_DIR}/audio/AudioIO.cpp"
|
||||
"${TGVOIP_DIR}/video/VideoRenderer.cpp"
|
||||
"${TGVOIP_DIR}/video/VideoSource.cpp"
|
||||
"${TGVOIP_DIR}/video/ScreamCongestionController.cpp"
|
||||
)
|
||||
if (${ARCHITECTURE} STREQUAL "armv7l")
|
||||
target_compile_definitions(tgvoip PRIVATE
|
||||
WEBRTC_HAS_NEON
|
||||
)
|
||||
elseif(${ARCHITECTURE} STREQUAL "aarch64")
|
||||
target_compile_definitions(tgvoip PRIVATE
|
||||
WEBRTC_HAS_NEON
|
||||
__ARM64_NEON__
|
||||
)
|
||||
endif()
|
||||
set(CC_NEON "cc")
|
||||
target_sources(tgvoip PRIVATE
|
||||
"${TGVOIP_DIR}/webrtc_dsp/system_wrappers/source/field_trial.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/system_wrappers/source/metrics.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/system_wrappers/source/cpu_features.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/strings/internal/memutil.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/strings/string_view.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/strings/ascii.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/types/bad_optional_access.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/types/optional.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/base/internal/raw_logging.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/absl/base/internal/throw_delegate.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/race_checker.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/strings/string_builder.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/memory/aligned_malloc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/timeutils.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/platform_file.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/string_to_number.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/thread_checker_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/stringencode.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/stringutils.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/checks.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/platform_thread.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/criticalsection.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/platform_thread_types.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/event.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/event_tracer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/rtc_base/logging_webrtc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/third_party/rnnoise/src/kiss_fft.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/api/audio/audio_frame.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/api/audio/echo_canceller3_config.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/api/audio/echo_canceller3_factory.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/third_party/fft/fft.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_logist.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filterbanks.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/transform.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lattice.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/intialize.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_hist.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode_bwe.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/rms_level.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/echo_detector/moving_max.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/splitting_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/gain_control_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/ns/nsx_core.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/ns/nsx_core_c.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/ns/ns_core.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/ns/noise_suppression.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/audio_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/typing_detection.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/include/audio_generator_factory.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/include/aec_dump.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/include/audio_processing.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/include/config.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/agc2_common.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/gain_applier.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/limiter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/saturation_protector.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/vad_with_level.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/down_sampler.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/signal_classifier.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/biquad_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/transient/moving_moments.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/transient/wpd_tree.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/transient/wpd_node.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/transient/transient_suppressor.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/transient/transient_detector.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/low_cut_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/level_estimator_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/three_band_filter_bank.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec/echo_cancellation.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec/aec_resampler.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec/aec_core.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/voice_detection_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/echo_cancellation_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc/agc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc/loudness_histogram.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/agc/utility.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/audio_processing_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/gain_controller2.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/residual_echo_detector.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/noise_suppression_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aecm/aecm_core.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aecm/aecm_core_c.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer2.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/frame_blocker.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/subtractor.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/aec3_fft.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/suppression_filter.${CC_NEON}"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/block_processor.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/vector_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/erl_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/aec_state.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.${CC_NEON}"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/skew_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/block_framer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/erle_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/reverb_model.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/subtractor_output.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/suppression_gain.${CC_NEON}"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/echo_audibility.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/moving_average.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/aec3_common.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/matched_filter.${CC_NEON}"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/render_delay_controller2.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/echo_remover.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/block_processor2.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/fft_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.${CC_NEON}"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec3/decimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/standalone_vad.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/pitch_internal.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/vad/gmm.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/utility/ooura_fft.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/utility/delay_estimator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/window_generator.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/channel_buffer.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/fir_filter_factory.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/wav_header.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/real_fourier_ooura.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/audio_util.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/push_sinc_resampler.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/resampler.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/push_resampler.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/sinc_resampler.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/wav_file.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/third_party/fft4g/fft4g.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/audio_converter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/real_fourier.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/sparse_fir_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/smoothing_filter.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/fir_filter_c.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/ring_buffer.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/complex_fft.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/filter_ma_fast_q12.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/levinson_durbin.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/auto_corr_to_refl_coef.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/energy.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/downsample_fast.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/splitting_filter1.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/spl_init.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/lpc_to_refl_coef.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/cross_correlation.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/division_operations.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/auto_correlation.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/get_scaling_square.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/resample.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/min_max_operations.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/refl_coef_to_lpc.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/filter_ar.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/vector_scaling_operations.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/resample_fractional.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/real_fft.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/ilbc_specific_functions.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/complex_bit_reverse.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/randomization_functions.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/copy_set_operations.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/resample_by_2.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/get_hanning_window.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/resample_48khz.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/spl_inl.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/spl_sqrt.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/vad/vad_sp.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/vad/vad.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/vad/webrtc_vad.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/vad/vad_filterbank.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/vad/vad_core.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/vad/vad_gmm.c"
|
||||
)
|
||||
if (${ARCHITECTURE} STREQUAL "armv7l" OR ${ARCHITECTURE} STREQUAL "aarch64")
|
||||
target_sources(tgvoip PRIVATE
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/ns/nsx_core_neon.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec/aec_core_neon.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aecm/aecm_core_neon.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/utility/ooura_fft_neon.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/fir_filter_neon.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/sinc_resampler_neon.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/downsample_fast_neon.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/min_max_operations_neon.c"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/cross_correlation_neon.c"
|
||||
)
|
||||
endif()
|
||||
if (${ARCHITECTURE} STREQUAL "armv7l")
|
||||
target_sources(tgvoip PRIVATE
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_arm.S"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/complex_bit_reverse_arm.S"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12_armv7.S"
|
||||
)
|
||||
endif()
|
||||
if (${ARCHITECTURE} STREQUAL "x86" OR ${ARCHITECTURE} STREQUAL "x86_64")
|
||||
target_sources(tgvoip PRIVATE
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/aec/aec_core_sse2.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/modules/audio_processing/utility/ooura_fft_sse2.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/fir_filter_sse.cc"
|
||||
"${TGVOIP_DIR}/webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc"
|
||||
)
|
||||
endif()
|
||||
target_compile_definitions(tgvoip PRIVATE
|
||||
TGVOIP_USE_CUSTOM_CRYPTO
|
||||
TGVOIP_HAS_CONFIG
|
||||
TGVOIP_NO_VIDEO
|
||||
TGVOIP_NO_GROUP_CALLS
|
||||
TGVOIP_PACKAGE_PATH="org/thunderdog/challegram/voip"
|
||||
TGVOIP_PEER_TAG_VARIABLE_NAME="peerTag"
|
||||
TGVOIP_ENDPOINT_CLASS="org/drinkless/td/libcore/telegram/TdApi$CallServer"
|
||||
|
||||
USE_KISS_FFT
|
||||
WEBRTC_APM_DEBUG_DUMP=0
|
||||
WEBRTC_POSIX
|
||||
WEBRTC_LINUX
|
||||
FIXED_POINT
|
||||
WEBRTC_NS_FLOAT
|
||||
__STDC_LIMIT_MACROS
|
||||
)
|
||||
target_include_directories(tgvoip PRIVATE
|
||||
"${TGVOIP_DIR}/webrtc_dsp"
|
||||
.
|
||||
)
|
||||
target_compile_options(tgvoip PRIVATE
|
||||
-frtti -fexceptions -finline-functions -ffast-math -fno-strict-aliasing -Wno-unknown-pragmas
|
||||
)
|
||||
target_link_libraries(tgvoip PUBLIC opus)
|
10
BuildTgCalls.cmake
Normal file
10
BuildTgCalls.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
# tgcalls
|
||||
|
||||
set(TGCALLS_DIR "${THIRDPARTY_DIR}/tgcalls")
|
||||
|
||||
# Commit Telegram X currently relies on:
|
||||
# https://github.com/TelegramMessenger/tgcalls/tree/92640c4db6d99de3754bf5ada8419a40d0c4aac4
|
||||
|
||||
# Source files list:
|
||||
# https://github.com/TelegramMessenger/Telegram-iOS/blob/930d1fcc46e39830e6d590986a6a838c3ff49e27/submodules/TgVoipWebrtc/BUILD
|
||||
|
37
BuildUsrSCTP.cmake
Normal file
37
BuildUsrSCTP.cmake
Normal file
@ -0,0 +1,37 @@
|
||||
# usrsctp
|
||||
|
||||
set(USRSCTP_DIR "${THIRDPARTY_DIR}/usrsctp/usrsctplib")
|
||||
|
||||
add_library(usrsctp STATIC
|
||||
"${USRSCTP_DIR}/netinet/sctp_asconf.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_auth.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_bsd_addr.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_callout.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_cc_functions.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_crc32.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_indata.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_input.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_output.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_pcb.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_peeloff.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_sha1.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_ss_functions.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_sysctl.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_timer.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_userspace.c"
|
||||
"${USRSCTP_DIR}/netinet/sctp_usrreq.c"
|
||||
"${USRSCTP_DIR}/netinet/sctputil.c"
|
||||
"${USRSCTP_DIR}/netinet6/sctp6_usrreq.c"
|
||||
"${USRSCTP_DIR}/user_environment.c"
|
||||
"${USRSCTP_DIR}/user_mbuf.c"
|
||||
"${USRSCTP_DIR}/user_recv_thread.c"
|
||||
"${USRSCTP_DIR}/user_socket.c"
|
||||
)
|
||||
target_compile_definitions(usrsctp PRIVATE
|
||||
__Userspace__
|
||||
SCTP_SIMPLE_ALLOCATOR
|
||||
SCTP_PROCESS_LEVEL_LOCKS
|
||||
)
|
||||
target_include_directories(usrsctp PUBLIC
|
||||
"${USRSCTP_DIR}"
|
||||
)
|
2876
BuildWebRTC.cmake
Normal file
2876
BuildWebRTC.cmake
Normal file
File diff suppressed because it is too large
Load Diff
75
BuildYuv.cmake
Normal file
75
BuildYuv.cmake
Normal file
@ -0,0 +1,75 @@
|
||||
# yuv
|
||||
|
||||
set(YUV_DIR "${THIRDPARTY_DIR}/libyuv")
|
||||
|
||||
add_library(yuv STATIC
|
||||
"${YUV_DIR}/source/compare.cc"
|
||||
"${YUV_DIR}/source/compare_common.cc"
|
||||
"${YUV_DIR}/source/compare_gcc.cc"
|
||||
"${YUV_DIR}/source/compare_mmi.cc"
|
||||
"${YUV_DIR}/source/compare_msa.cc"
|
||||
"${YUV_DIR}/source/compare_neon.cc"
|
||||
"${YUV_DIR}/source/compare_neon64.cc"
|
||||
"${YUV_DIR}/source/compare_win.cc"
|
||||
"${YUV_DIR}/source/convert.cc"
|
||||
"${YUV_DIR}/source/convert_argb.cc"
|
||||
"${YUV_DIR}/source/convert_from.cc"
|
||||
"${YUV_DIR}/source/convert_from_argb.cc"
|
||||
"${YUV_DIR}/source/convert_to_argb.cc"
|
||||
"${YUV_DIR}/source/convert_to_i420.cc"
|
||||
"${YUV_DIR}/source/cpu_id.cc"
|
||||
"${YUV_DIR}/source/planar_functions.cc"
|
||||
"${YUV_DIR}/source/rotate.cc"
|
||||
"${YUV_DIR}/source/rotate_any.cc"
|
||||
"${YUV_DIR}/source/rotate_argb.cc"
|
||||
"${YUV_DIR}/source/rotate_common.cc"
|
||||
"${YUV_DIR}/source/rotate_gcc.cc"
|
||||
"${YUV_DIR}/source/rotate_mmi.cc"
|
||||
"${YUV_DIR}/source/rotate_msa.cc"
|
||||
"${YUV_DIR}/source/rotate_neon.cc"
|
||||
"${YUV_DIR}/source/rotate_neon64.cc"
|
||||
"${YUV_DIR}/source/rotate_win.cc"
|
||||
"${YUV_DIR}/source/row_any.cc"
|
||||
"${YUV_DIR}/source/row_common.cc"
|
||||
"${YUV_DIR}/source/row_gcc.cc"
|
||||
"${YUV_DIR}/source/row_mmi.cc"
|
||||
"${YUV_DIR}/source/row_msa.cc"
|
||||
"${YUV_DIR}/source/row_neon.cc"
|
||||
"${YUV_DIR}/source/row_neon64.cc"
|
||||
"${YUV_DIR}/source/row_win.cc"
|
||||
"${YUV_DIR}/source/scale.cc"
|
||||
"${YUV_DIR}/source/scale_any.cc"
|
||||
"${YUV_DIR}/source/scale_argb.cc"
|
||||
"${YUV_DIR}/source/scale_common.cc"
|
||||
"${YUV_DIR}/source/scale_gcc.cc"
|
||||
"${YUV_DIR}/source/scale_mmi.cc"
|
||||
"${YUV_DIR}/source/scale_msa.cc"
|
||||
"${YUV_DIR}/source/scale_neon.cc"
|
||||
"${YUV_DIR}/source/scale_neon64.cc"
|
||||
"${YUV_DIR}/source/scale_uv.cc"
|
||||
"${YUV_DIR}/source/scale_win.cc"
|
||||
"${YUV_DIR}/source/video_common.cc"
|
||||
)
|
||||
if(${ARCHITECTURE} STREQUAL "armv7l")
|
||||
target_sources(yuv PRIVATE
|
||||
"${YUV_DIR}/source/compare_neon.cc"
|
||||
"${YUV_DIR}/source/rotate_neon.cc"
|
||||
"${YUV_DIR}/source/row_neon.cc"
|
||||
"${YUV_DIR}/source/scale_neon.cc"
|
||||
)
|
||||
target_compile_definitions(yuv PRIVATE
|
||||
LIBYUV_NEON
|
||||
)
|
||||
endif()
|
||||
target_include_directories(yuv PUBLIC
|
||||
"${YUV_DIR}/include"
|
||||
)
|
||||
|
||||
target_compile_options(yuv PRIVATE
|
||||
-fexceptions
|
||||
-finline-functions -ffast-math
|
||||
-Os
|
||||
-fno-unwind-tables -fno-asynchronous-unwind-tables
|
||||
-Wnon-virtual-dtor -Woverloaded-virtual
|
||||
-Wno-unused-parameter
|
||||
)
|
51
CMakeLists.txt
Normal file
51
CMakeLists.txt
Normal file
@ -0,0 +1,51 @@
|
||||
cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR)
|
||||
project(tgcalls_cli)
|
||||
|
||||
EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
|
||||
set(THIRDPARTY_DIR "${CMAKE_HOME_DIRECTORY}/third_party")
|
||||
|
||||
include("${CMAKE_HOME_DIRECTORY}/cmake/ReadVariables.cmake")
|
||||
include("${CMAKE_HOME_DIRECTORY}/cmake/Prefix.cmake")
|
||||
include("${CMAKE_HOME_DIRECTORY}/cmake/Join.cmake")
|
||||
|
||||
set(SSL_DIR "${THIRDPARTY_DIR}/boringssl")
|
||||
set(SSL_LIB_PATH "${SSL_DIR}/build/${ANDROID_ABI}/ssl/libssl.a")
|
||||
set(CRYPTO_LIB_PATH "${SSL_DIR}/build/${ANDROID_ABI}/crypto/libcrypto.a")
|
||||
|
||||
# crypto
|
||||
add_library(crypto STATIC IMPORTED)
|
||||
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION "${CRYPTO_LIB_PATH}")
|
||||
|
||||
# ssl
|
||||
add_library(ssl STATIC IMPORTED)
|
||||
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION "${SSL_LIB_PATH}")
|
||||
target_include_directories(ssl INTERFACE "${SSL_DIR}/include")
|
||||
|
||||
# libtgvoip
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildTelegramVoIP.cmake")
|
||||
|
||||
# usrsctp
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildUsrSCTP.cmake")
|
||||
|
||||
# srtp
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildLibSRTP.cmake")
|
||||
|
||||
# openh264
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildOpenH264.cmake")
|
||||
|
||||
# absl
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildAbsl.cmake")
|
||||
|
||||
# webrtc
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildWebRTC.cmake")
|
||||
|
||||
# tgcalls
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildTgCalls.cmake")
|
||||
|
||||
# yuv
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildYuv.cmake")
|
||||
|
||||
# opus
|
||||
include("${CMAKE_HOME_DIRECTORY}/BuildOpus.cmake")
|
||||
|
||||
# == Linking dependencies ==
|
12
cmake/Join.cmake
Normal file
12
cmake/Join.cmake
Normal file
@ -0,0 +1,12 @@
|
||||
function(Join output_var list glue)
|
||||
set(result "")
|
||||
foreach(item ${list})
|
||||
string(LENGTH "${result}" len)
|
||||
if (${len} EQUAL 0)
|
||||
string(APPEND result "${item}")
|
||||
else()
|
||||
string(APPEND result "${glue}${item}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(${output_var} "${result}" PARENT_SCOPE)
|
||||
endfunction(Join)
|
13
cmake/Prefix.cmake
Normal file
13
cmake/Prefix.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
function(Prefix list prefix)
|
||||
string(REGEX REPLACE "([^;]+)" "${prefix}\\1" newList "${${list}}")
|
||||
set(${list} "${newList}" PARENT_SCOPE)
|
||||
endfunction(Prefix)
|
||||
|
||||
function(Transform list regex replacement)
|
||||
set(newList "")
|
||||
foreach(line ${${list}})
|
||||
string(REGEX REPLACE "${regex}" "${replacement}" newLine "${line}")
|
||||
list(APPEND newList "${newLine}")
|
||||
endforeach()
|
||||
set(${list} "${newList}" PARENT_SCOPE)
|
||||
endfunction(Transform)
|
34
cmake/ReadVariables.cmake
Normal file
34
cmake/ReadVariables.cmake
Normal file
@ -0,0 +1,34 @@
|
||||
# Simple CMake utility to read variables from MK files
|
||||
# - Gets contents from given file (name or path)
|
||||
# - Parses the assignment statements
|
||||
# - Makes the same assignments in the PARENT_SCOPE
|
||||
|
||||
if(POLICY CMP0007)
|
||||
cmake_policy(SET CMP0007 NEW)
|
||||
endif()
|
||||
|
||||
function(ReadVariables MKFile)
|
||||
file(READ "${MKFile}" FileContents)
|
||||
string(REGEX REPLACE "\\\\\n *" " " FileContents ${FileContents})
|
||||
string(REGEX REPLACE "#[^\n]*" "" FileContents ${FileContents})
|
||||
string(STRIP FileContents ${FileContents})
|
||||
string(REPLACE "\n" ";" FileLines ${FileContents})
|
||||
list(REMOVE_ITEM FileLines "")
|
||||
foreach(line ${FileLines})
|
||||
string(REGEX REPLACE ":?=" ";" line_split ${line})
|
||||
list(LENGTH line_split count)
|
||||
if (count LESS 2)
|
||||
message(STATUS "Skipping ${line}")
|
||||
continue()
|
||||
endif()
|
||||
list(GET line_split -1 value)
|
||||
string(STRIP ${value} value)
|
||||
string(REGEX REPLACE " +" " " value "${value}")
|
||||
separate_arguments(value)
|
||||
list(REMOVE_AT line_split -1)
|
||||
foreach(var_name ${line_split})
|
||||
string(STRIP ${var_name} var_name)
|
||||
set(${var_name} ${value} PARENT_SCOPE)
|
||||
endforeach()
|
||||
endforeach()
|
||||
endfunction()
|
1
stub/config.h
Normal file
1
stub/config.h
Normal file
@ -0,0 +1 @@
|
||||
// Empty
|
1
third_party/abseil-cpp
vendored
Submodule
1
third_party/abseil-cpp
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f2b52372f7f553a4e9b2558daf2d14d3adf484da
|
1
third_party/boringssl
vendored
Submodule
1
third_party/boringssl
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit b3c2c756aeec1c4309447f5247f61d435274da4a
|
1
third_party/crc32c
vendored
Submodule
1
third_party/crc32c
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 21fc8ef30415a635e7351ffa0e5d5367943d4a94
|
1
third_party/libevent
vendored
Submodule
1
third_party/libevent
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 422a87cd9cfc916fae4b918d63bf2a3d9bc9c40f
|
1
third_party/libsrtp
vendored
Submodule
1
third_party/libsrtp
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 860492290f7d1f25e2bd45da6471bfd4cd4d7add
|
1
third_party/libtgvoip
vendored
Submodule
1
third_party/libtgvoip
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 3df5d624cfead0f00069bcc6df1f586ac4e8d21e
|
1
third_party/libyuv
vendored
Submodule
1
third_party/libyuv
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 88b050f337cc0ca2a51800fe7bf4737222c87344
|
1
third_party/openh264
vendored
Submodule
1
third_party/openh264
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit a60e28efe227ea8ea760b1e29a8943e371ebe4b3
|
1
third_party/opus
vendored
Submodule
1
third_party/opus
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 8cf872a186b96085b1bb3a547afd598354ebeb87
|
1
third_party/pffft
vendored
Submodule
1
third_party/pffft
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit de9c9a8ab9ade3cff08762f888a7ea24c81ac0dc
|
1
third_party/rnnoise
vendored
Submodule
1
third_party/rnnoise
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 3b97c7947b92ca521de898f444cccf5a66c8552b
|
1
third_party/tgcalls
vendored
Submodule
1
third_party/tgcalls
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 5090576cde46c2c4e05c264f2e6c1ea7a2771d49
|
1
third_party/usrsctp
vendored
Submodule
1
third_party/usrsctp
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit c1d6cb3bf4344e01e7d0b3157f4e7103d55b0fbf
|
1
third_party/webrtc
vendored
Submodule
1
third_party/webrtc
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit a5ada0a83db11a26d9ac6804d767d30c6d2a0b42
|
Loading…
Reference in New Issue
Block a user