tdesktop/Telegram/cmake/lib_tgcalls.cmake

268 lines
8.0 KiB
CMake
Raw Normal View History

2020-07-09 17:38:26 +00:00
# This file is part of Telegram Desktop,
# the official desktop application for the Telegram messaging service.
#
# For license and copyright information please follow this link:
# https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
add_library(lib_tgcalls STATIC)
init_target(lib_tgcalls) # Can't use std::optional::value on macOS.
2020-08-11 09:59:48 +00:00
2020-07-09 17:38:26 +00:00
add_library(tdesktop::lib_tgcalls ALIAS lib_tgcalls)
set(tgcalls_dir ${third_party_loc}/tgcalls)
set(tgcalls_loc ${tgcalls_dir}/tgcalls)
nice_target_sources(lib_tgcalls ${tgcalls_loc}
PRIVATE
Instance.cpp
Instance.h
2020-07-09 17:38:26 +00:00
)
nice_target_sources(lib_tgcalls ${tgcalls_loc}
PRIVATE
AudioDeviceHelper.cpp
AudioDeviceHelper.h
CodecSelectHelper.cpp
CodecSelectHelper.h
CryptoHelper.cpp
CryptoHelper.h
EncryptedConnection.cpp
EncryptedConnection.h
FakeAudioDeviceModule.cpp
FakeAudioDeviceModule.h
InstanceImpl.cpp
InstanceImpl.h
LogSinkImpl.cpp
LogSinkImpl.h
Manager.cpp
Manager.h
MediaManager.cpp
MediaManager.h
Message.cpp
Message.h
NetworkManager.cpp
NetworkManager.h
SctpDataChannelProviderInterfaceImpl.cpp
SctpDataChannelProviderInterfaceImpl.h
2021-03-08 07:57:00 +00:00
StaticThreads.cpp
StaticThreads.h
ThreadLocalObject.h
TurnCustomizerImpl.cpp
TurnCustomizerImpl.h
VideoCaptureInterface.cpp
VideoCaptureInterface.h
VideoCaptureInterfaceImpl.cpp
VideoCaptureInterfaceImpl.h
VideoCapturerInterface.h
v2/InstanceV2Impl.cpp
v2/InstanceV2Impl.h
v2/NativeNetworkingImpl.cpp
v2/NativeNetworkingImpl.h
v2/Signaling.cpp
v2/Signaling.h
v2/SignalingEncryption.cpp
v2/SignalingEncryption.h
# Desktop capturer
desktop_capturer/DesktopCaptureSource.h
desktop_capturer/DesktopCaptureSource.cpp
desktop_capturer/DesktopCaptureSourceHelper.h
desktop_capturer/DesktopCaptureSourceHelper.cpp
desktop_capturer/DesktopCaptureSourceManager.h
desktop_capturer/DesktopCaptureSourceManager.cpp
# Group calls
2022-02-25 08:17:23 +00:00
group/AVIOContextImpl.cpp
group/AVIOContextImpl.h
2021-08-24 17:57:54 +00:00
group/AudioStreamingPart.cpp
group/AudioStreamingPart.h
2022-02-25 08:17:23 +00:00
group/AudioStreamingPartInternal.cpp
group/AudioStreamingPartInternal.h
2022-02-25 13:30:58 +00:00
group/AudioStreamingPartPersistentDecoder.cpp
group/AudioStreamingPartPersistentDecoder.h
2021-03-08 07:57:00 +00:00
group/GroupInstanceCustomImpl.cpp
group/GroupInstanceCustomImpl.h
2021-04-29 11:36:53 +00:00
group/GroupInstanceImpl.h
group/GroupJoinPayloadInternal.cpp
group/GroupJoinPayloadInternal.h
group/GroupJoinPayload.h
2021-03-08 07:57:00 +00:00
group/GroupNetworkManager.cpp
group/GroupNetworkManager.h
2021-08-24 17:57:54 +00:00
group/StreamingMediaContext.cpp
group/StreamingMediaContext.h
group/VideoStreamingPart.cpp
group/VideoStreamingPart.h
platform/PlatformInterface.h
# Android
platform/android/AndroidContext.cpp
platform/android/AndroidContext.h
platform/android/AndroidInterface.cpp
platform/android/AndroidInterface.h
platform/android/VideoCameraCapturer.cpp
platform/android/VideoCameraCapturer.h
platform/android/VideoCapturerInterfaceImpl.cpp
platform/android/VideoCapturerInterfaceImpl.h
# iOS / macOS
2022-01-29 11:06:55 +00:00
platform/darwin/CustomSimulcastEncoderAdapter.cpp
platform/darwin/CustomSimulcastEncoderAdapter.h
platform/darwin/DarwinInterface.h
platform/darwin/DarwinInterface.mm
2021-05-28 15:08:11 +00:00
platform/darwin/DarwinVideoSource.h
platform/darwin/DarwinVideoSource.mm
platform/darwin/DesktopSharingCapturer.h
platform/darwin/DesktopSharingCapturer.mm
platform/darwin/GLVideoView.h
platform/darwin/GLVideoView.mm
platform/darwin/GLVideoViewMac.h
platform/darwin/GLVideoViewMac.mm
2021-07-15 13:43:07 +00:00
platform/darwin/objc_video_encoder_factory.h
platform/darwin/objc_video_encoder_factory.mm
2021-08-10 16:24:56 +00:00
platform/darwin/objc_video_decoder_factory.h
platform/darwin/objc_video_decoder_factory.mm
platform/darwin/TGCMIOCapturer.h
platform/darwin/TGCMIOCapturer.m
platform/darwin/TGCMIODevice.h
platform/darwin/TGCMIODevice.mm
platform/darwin/TGRTCCVPixelBuffer.h
platform/darwin/TGRTCCVPixelBuffer.mm
platform/darwin/TGRTCDefaultVideoDecoderFactory.h
platform/darwin/TGRTCDefaultVideoDecoderFactory.mm
platform/darwin/TGRTCDefaultVideoEncoderFactory.h
platform/darwin/TGRTCDefaultVideoEncoderFactory.mm
platform/darwin/TGRTCVideoDecoderH264.h
platform/darwin/TGRTCVideoDecoderH264.mm
platform/darwin/TGRTCVideoDecoderH265.h
platform/darwin/TGRTCVideoDecoderH265.mm
platform/darwin/TGRTCVideoEncoderH264.h
platform/darwin/TGRTCVideoEncoderH264.mm
platform/darwin/TGRTCVideoEncoderH265.h
platform/darwin/TGRTCVideoEncoderH265.mm
platform/darwin/VideoCameraCapturer.h
platform/darwin/VideoCameraCapturer.mm
platform/darwin/VideoCameraCapturerMac.h
platform/darwin/VideoCameraCapturerMac.mm
platform/darwin/VideoCapturerInterfaceImpl.h
platform/darwin/VideoCapturerInterfaceImpl.mm
platform/darwin/VideoCMIOCapture.h
platform/darwin/VideoCMIOCapture.mm
platform/darwin/VideoMetalView.h
platform/darwin/VideoMetalView.mm
platform/darwin/VideoMetalViewMac.h
platform/darwin/VideoMetalViewMac.mm
# POSIX
# Teleram Desktop
platform/tdesktop/DesktopInterface.cpp
platform/tdesktop/DesktopInterface.h
platform/tdesktop/VideoCapturerInterfaceImpl.cpp
platform/tdesktop/VideoCapturerInterfaceImpl.h
platform/tdesktop/VideoCapturerTrackSource.cpp
platform/tdesktop/VideoCapturerTrackSource.h
platform/tdesktop/VideoCameraCapturer.cpp
platform/tdesktop/VideoCameraCapturer.h
2021-04-29 11:36:53 +00:00
# third-party
third-party/json11.cpp
third-party/json11.hpp
)
2020-08-11 13:31:27 +00:00
target_link_libraries(lib_tgcalls
PRIVATE
desktop-app::external_webrtc
desktop-app::external_ffmpeg
desktop-app::external_openssl
2021-04-15 13:55:13 +00:00
desktop-app::external_rnnoise
)
2020-08-11 13:31:27 +00:00
2020-07-13 14:04:02 +00:00
target_compile_definitions(lib_tgcalls
2021-04-29 11:36:53 +00:00
PUBLIC
TGCALLS_USE_STD_OPTIONAL
2020-07-13 14:04:02 +00:00
PRIVATE
WEBRTC_APP_TDESKTOP
RTC_ENABLE_VP9
)
2020-07-09 17:38:26 +00:00
if (WIN32)
2020-07-13 14:04:02 +00:00
elseif (APPLE)
target_compile_options(lib_tgcalls
PRIVATE
-fobjc-arc
)
remove_target_sources(lib_tgcalls ${tgcalls_loc}
platform/darwin/GLVideoView.h
platform/darwin/GLVideoView.mm
platform/darwin/GLVideoViewMac.h
platform/darwin/GLVideoViewMac.mm
platform/darwin/VideoCameraCapturer.h
platform/darwin/VideoCameraCapturer.mm
platform/darwin/VideoMetalView.h
platform/darwin/VideoMetalView.mm
platform/darwin/VideoMetalViewMac.h
platform/darwin/VideoMetalViewMac.mm
platform/tdesktop/DesktopInterface.cpp
platform/tdesktop/DesktopInterface.h
platform/tdesktop/VideoCapturerInterfaceImpl.cpp
platform/tdesktop/VideoCapturerInterfaceImpl.h
platform/tdesktop/VideoCapturerTrackSource.cpp
platform/tdesktop/VideoCapturerTrackSource.h
platform/tdesktop/VideoCameraCapturer.cpp
platform/tdesktop/VideoCameraCapturer.h
)
2020-07-09 17:38:26 +00:00
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(lib_tgcalls
PRIVATE
-Wno-deprecated-volatile
-Wno-ambiguous-reversed-operator
)
endif()
2020-08-12 16:58:24 +00:00
remove_target_sources(lib_tgcalls ${tgcalls_loc}
platform/android/AndroidContext.cpp
platform/android/AndroidContext.h
platform/android/AndroidInterface.cpp
platform/android/AndroidInterface.h
platform/android/VideoCameraCapturer.cpp
platform/android/VideoCameraCapturer.h
platform/android/VideoCapturerInterfaceImpl.cpp
platform/android/VideoCapturerInterfaceImpl.h
reference/InstanceImplReference.cpp
reference/InstanceImplReference.h
2020-08-12 16:58:24 +00:00
)
2020-07-09 17:38:26 +00:00
target_include_directories(lib_tgcalls
PUBLIC
${tgcalls_dir}
PRIVATE
${tgcalls_loc}
)
add_library(lib_tgcalls_legacy STATIC)
init_target(lib_tgcalls_legacy)
2020-08-11 09:59:48 +00:00
2020-07-09 17:38:26 +00:00
add_library(tdesktop::lib_tgcalls_legacy ALIAS lib_tgcalls_legacy)
nice_target_sources(lib_tgcalls_legacy ${tgcalls_loc}
PRIVATE
legacy/InstanceImplLegacy.cpp
legacy/InstanceImplLegacy.h
)
target_include_directories(lib_tgcalls_legacy
PRIVATE
${tgcalls_loc}
)
target_link_libraries(lib_tgcalls_legacy
PRIVATE
tdesktop::lib_tgcalls
tdesktop::lib_tgvoip
desktop-app::external_openssl
)