110 lines
2.9 KiB
CMake
110 lines
2.9 KiB
CMake
# This file is part of Desktop App Toolkit,
|
|
# a set of libraries for developing nice desktop applications.
|
|
#
|
|
# For license and copyright information please follow this link:
|
|
# https://github.com/desktop-app/legal/blob/master/LEGAL
|
|
|
|
add_library(external_webrtc INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_webrtc ALIAS external_webrtc)
|
|
|
|
set(webrtc_loc ${libs_loc}/webrtc/src)
|
|
set(webrtc_build_loc ${webrtc_loc}/out/$<CONFIG>/obj)
|
|
|
|
target_compile_definitions(external_webrtc
|
|
INTERFACE
|
|
WEBRTC_ENABLE_PROTOBUF=0
|
|
WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE
|
|
RTC_ENABLE_VP9
|
|
HAVE_SCTP
|
|
WEBRTC_USE_H264
|
|
WEBRTC_LIBRARY_IMPL
|
|
WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=1
|
|
ABSL_ALLOCATOR_NOTHROW=1
|
|
)
|
|
|
|
if (WIN32)
|
|
set(webrtc_lib_prefix "")
|
|
set(webrtc_lib_suffix .lib)
|
|
|
|
target_compile_definitions(external_webrtc
|
|
INTERFACE
|
|
WEBRTC_WIN
|
|
)
|
|
else()
|
|
set(webrtc_lib_prefix lib)
|
|
set(webrtc_lib_suffix .a)
|
|
|
|
if (APPLE)
|
|
target_compile_definitions(external_webrtc
|
|
INTERFACE
|
|
WEBRTC_MAC
|
|
)
|
|
else()
|
|
target_compile_definitions(external_webrtc
|
|
INTERFACE
|
|
WEBRTC_LINUX
|
|
)
|
|
endif()
|
|
|
|
target_compile_definitions(external_webrtc
|
|
INTERFACE
|
|
WEBRTC_POSIX
|
|
)
|
|
endif()
|
|
|
|
target_include_directories(external_webrtc
|
|
INTERFACE
|
|
${webrtc_loc}
|
|
${webrtc_loc}/third_party/abseil-cpp
|
|
)
|
|
|
|
set(webrtc_libs
|
|
${webrtc_lib_prefix}webrtc
|
|
)
|
|
if (WIN32)
|
|
list(APPEND webrtc_libs
|
|
test/${webrtc_lib_prefix}platform_video_capturer
|
|
test/${webrtc_lib_prefix}video_test_common
|
|
)
|
|
elseif (APPLE)
|
|
list(APPEND webrtc_libs
|
|
sdk/${webrtc_lib_prefix}native_video
|
|
sdk/${webrtc_lib_prefix}videoframebuffer_objc
|
|
sdk/${webrtc_lib_prefix}videocapture_objc
|
|
sdk/${webrtc_lib_prefix}videocodec_objc
|
|
sdk/${webrtc_lib_prefix}videotoolbox_objc
|
|
sdk/${webrtc_lib_prefix}video_toolbox_cc
|
|
sdk/${webrtc_lib_prefix}vpx_codec_constants
|
|
sdk/${webrtc_lib_prefix}native_api
|
|
sdk/${webrtc_lib_prefix}vp8
|
|
sdk/${webrtc_lib_prefix}vp9
|
|
sdk/${webrtc_lib_prefix}wrapped_native_codec_objc
|
|
)
|
|
target_include_directories(external_webrtc
|
|
INTERFACE
|
|
${webrtc_loc}/sdk/objc
|
|
${webrtc_loc}/sdk/objc/base
|
|
${webrtc_loc}/sdk/objc/components/video_codec
|
|
${webrtc_loc}/third_party/libyuv/include
|
|
)
|
|
endif()
|
|
foreach (lib ${webrtc_libs})
|
|
list(APPEND webrtc_libs_list "${webrtc_build_loc}/${lib}${webrtc_lib_suffix}")
|
|
endforeach()
|
|
|
|
if (WIN32)
|
|
target_link_libraries(external_webrtc
|
|
INTERFACE
|
|
Secur32.lib # Required for rtc_base/http_common.cc
|
|
dmoguids.lib # Required for the built-in WASAPI AEC, see modules/audio_device/BUILD.gn
|
|
wmcodecdspuuid.lib
|
|
amstrmid.lib
|
|
msdmo.lib
|
|
)
|
|
endif()
|
|
|
|
target_link_libraries(external_webrtc
|
|
INTERFACE
|
|
${webrtc_libs_list}
|
|
desktop-app::external_openssl
|
|
)
|