Open aniongithub opened 6 years ago
I assume this is a question "how to use libwebrtc" as a submodule and you did not figure that out yet.
I've asked myself the same question but the solution is not so straight forward:
SET(CUSTOM_LIBWEBRTC_INSTALLATION_DIR "" CACHE STRING "Should point to the build/installation directory of libwebrtc (the directory with lib/, include/ and webrtc/)")
if( NOT "${CUSTOM_LIBWEBRTC_INSTALLATION_DIR}" STREQUAL "" )
message("CUSTOM_LIBWEBRTC_INSTALLATION_DIR = '${CUSTOM_LIBWEBRTC_INSTALLATION_DIR}' so we build with a user-supplied LIBWEBRTC location")
include_directories(
${CUSTOM_LIBWEBRTC_INSTALLATION_DIR}/include/webrtc
${CUSTOM_LIBWEBRTC_INSTALLATION_DIR}/include/webrtc/third_party/libyuv/include/
${CUSTOM_LIBWEBRTC_INSTALLATION_DIR}/webrtc/src/third_party/abseil-cpp
)
add_library(libwebrtc STATIC IMPORTED)
set_property(TARGET libwebrtc PROPERTY IMPORTED_LOCATION "${CUSTOM_LIBWEBRTC_INSTALLATION_DIR}/lib/libwebrtc.a")
target_link_libraries(${PROJECT_NAME} libwebrtc)
else ()
message("CUSTOM_LIBWEBRTC_INSTALLATION_DIR NOT DEFINED -> build with bundled LIBWEBRTC")
# HACK: In libwebrtc's CMakeLists.txt one has to rename the project(libwebrtcx) and also ExternalProject_Add(libwebrtcx ...) to inject
# a build time dependency which will build the library/includes first before they can be used from this CMakeLists.txt
# This is also why the libwebrtc is included as a third party library below.
add_dependencies(${PROJECT_NAME} libwebrtcx)
add_subdirectory(third-party/libwebrtc)
include_directories(
${CMAKE_BINARY_DIR}/sources/third-party/libwebrtc/include/webrtc
${CMAKE_BINARY_DIR}/sources/third-party/libwebrtc/include/webrtc/third_party/libyuv/include/
${CMAKE_BINARY_DIR}/sources/third-party/libwebrtc/webrtc/src/third_party/abseil-cpp
)
add_library(libwebrtc STATIC IMPORTED)
# FIXME maybe never build in debug mode
if(CMAKE_BUILD_TYPE MATCHES DEBUG)
set_property(TARGET libwebrtc PROPERTY IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/sources/third-party/libwebrtc/webrtc/src/out/Debug/obj/libwebrtc.a")
else()
set_property(TARGET libwebrtc PROPERTY IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/sources/third-party/libwebrtc/webrtc/src/out/Release/obj/libwebrtc.a")
endif()
target_link_libraries(${PROJECT_NAME} libwebrtc)
endif()
# webrtc specific libraries
target_link_libraries(${PROJECT_NAME} X11 Xcomposite Xdamage Xfixes Xext)
That's built in-source, not as a build/install globally. My .gitmodules is:
The intention is to be able to get my source tree and build it all once, with libwebrtc binaries being generated locally in my binary directory.