Pull webrtc down from a webserver before building.

master
Roxie Linden 2023-09-08 21:36:17 -07:00
parent 0ae8bbaf5d
commit a80f6070a2
2 changed files with 40 additions and 40 deletions

View File

@ -1,43 +1,41 @@
# -*- cmake -*-
include(CMakeCopyIfDifferent)
include(Linking)
include(FetchContent)
include_guard()
set(WEBRTC_ROOT ${CMAKE_BINARY_DIR}/../../webrtc/src)
file(COPY ${WEBRTC_ROOT}/out/Default/obj/webrtc.lib
DESTINATION ${CMAKE_BINARY_DIR}/packages/lib/release
if (WINDOWS)
FetchContent_Declare(
webrtc
URL http://localhost:8000/webrtc.windows_x86_64.tar.bz2
URL_HASH MD5=dfb692562770dc8c877ebfe4302e2881
FIND_PACKAGE_ARGS NAMES webrtc
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
DOWNLOAD_DIR "${LIBS_PREBUILT_DIR}/webrtc/"
)
set(WEBRTC_INCLUDE_DIR ${CMAKE_BINARY_DIR}/packages/include/webrtc)
file(MAKE_DIRECTORY ${WEBRTC_INCLUDE_DIR})
file(COPY ${WEBRTC_ROOT}/api
${WEBRTC_ROOT}/media/base
${WEBRTC_ROOT}/media/engine
${WEBRTC_ROOT}/rtc_base
${WEBRTC_ROOT}/pc
${WEBRTC_ROOT}/p2p
${WEBRTC_ROOT}/call
${WEBRTC_ROOT}/media
${WEBRTC_ROOT}/system_wrappers
${WEBRTC_ROOT}/common_video
${WEBRTC_ROOT}/video
${WEBRTC_ROOT}/common_audio
${WEBRTC_ROOT}/logging
${WEBRTC_ROOT}/third_party/abseil-cpp/absl
DESTINATION ${WEBRTC_INCLUDE_DIR}
FILES_MATCHING PATTERN "*.h"
)
add_library(ll::webrtc STATIC IMPORTED)
if (LINUX)
target_link_libraries( ll::webrtc INTERFACE ../webrtc/src/obj/Default/webrtc)
elseif (DARWIN)
target_link_libraries( ll::webrtc INTERFACE ../webrtc/src/obj/Default/webrtc)
elseif (WINDOWS)
set_target_properties( ll::webrtc PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/packages/lib/release/webrtc.lib)
target_link_libraries( ll::webrtc INTERFACE ${CMAKE_BINARY_DIR}/packages/lib/release/webrtc.lib)
endif (LINUX)
target_include_directories( ll::webrtc INTERFACE "${WEBRTC_INCLUDE_DIR}")
FetchContent_Declare(
webrtc
URL http://localhost:8000/webrtc.macos_x86_64.tar.bz2
URL_HASH MD5=cfbcac7da897a862f9791ea29330b814
FIND_PACKAGE_ARGS NAMES webrtc
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
DOWNLOAD_DIR "${LIBS_PREBUILT_DIR}/webrtc/"
)
endif (WINDOWS)
FetchContent_MakeAvailable(webrtc)
set(WEBRTC_PATH ${webrtc_SOURCE_DIR})
add_library( ll::webrtc INTERFACE IMPORTED )
if (WINDOWS)
target_link_libraries( ll::webrtc INTERFACE "${WEBRTC_PATH}/lib/webrtc.lib" )
elseif (DARWIN)
target_link_libraries( ll::webrtc INTERFACE "${WEBRTC_PATH}/lib/webrtc.a" )
elseif (LINUX)
target_link_libraries( ll::webrtc INTERFACE "${WEBRTC_PATH}/lib/webrtc.a" )
endif (WINDOWS)
target_include_directories( ll::webrtc SYSTEM INTERFACE "${WEBRTC_PATH}/include" "${WEBRTC_PATH}/include/third_party/abseil-cpp")

View File

@ -5,7 +5,7 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_GENERATOR_TOOLSET "clang_cl_x64")
#set(CMAKE_GENERATOR_TOOLSET "clang-cl")
include(00-Common)
include(Linking)
@ -20,6 +20,7 @@ message(STATUS "SharedLib: ${SHARED_LIB_STAGING_DIR}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
set(llwebrtc_SOURCE_FILES
llwebrtc.cpp
)
@ -46,7 +47,8 @@ target_link_libraries(llwebrtc PRIVATE ll::webrtc
iphlpapi)
target_include_directories( llwebrtc INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
set_property(TARGET llwebrtc PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
set_property(TARGET llwebrtc PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
install(TARGETS llwebrtc RUNTIME DESTINATION "${CMAKE_BINARY_DIR}/sharedlibs/RelWithDebInfo")