Skip to content

Commit c5c399a

Browse files
Build cpp examples from CMakeLists
1 parent 905cca7 commit c5c399a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+55
-7898
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ build.log
99
build/
1010
build-debug/
1111
build-release/
12+
local-install/
1213
release/
1314
vcpkg_installed/
1415
# Generated header

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "client-sdk-rust"]
22
path = client-sdk-rust
33
url = https://github.com/livekit/client-sdk-rust
4+
[submodule "cpp-example-collection"]
5+
path = cpp-example-collection
6+
url = https://github.com/livekit-examples/cpp-example-collection.git

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,8 @@ install(FILES
690690
add_subdirectory(bridge)
691691

692692
if(LIVEKIT_BUILD_EXAMPLES)
693-
add_subdirectory(examples)
693+
include(cpp-example-collection)
694+
livekit_configure_cpp_example_collection()
694695
endif()
695696

696697
if(LIVEKIT_BUILD_TESTS)

cmake/cpp-example-collection.cmake

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Copyright 2026 LiveKit, Inc.
2+
#
3+
# LiveKit examples integration helpers.
4+
5+
include_guard(GLOBAL)
6+
7+
function(livekit_configure_cpp_example_collection)
8+
set(LIVEKIT_CPP_EXAMPLES_SOURCE_DIR
9+
"${CMAKE_SOURCE_DIR}/cpp-example-collection")
10+
set(LIVEKIT_CPP_EXAMPLES_INSTALL_PREFIX
11+
"${CMAKE_BINARY_DIR}/../local-install"
12+
CACHE PATH "Install prefix used by cpp-example-collection")
13+
set(LIVEKIT_CPP_EXAMPLES_BINARY_DIR
14+
"${CMAKE_BINARY_DIR}/cpp-example-collection-build"
15+
CACHE PATH "Build directory for cpp-example-collection")
16+
set(LIVEKIT_CPP_EXAMPLES_LIVEKIT_DIR
17+
"${LIVEKIT_CPP_EXAMPLES_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/LiveKit")
18+
19+
if(NOT EXISTS "${LIVEKIT_CPP_EXAMPLES_SOURCE_DIR}/CMakeLists.txt")
20+
message(FATAL_ERROR
21+
"cpp-example-collection submodule is missing. Run: "
22+
"git submodule sync --recursive && "
23+
"git submodule update --init --recursive --checkout")
24+
endif()
25+
26+
add_custom_target(install_livekit_sdk_for_examples
27+
COMMAND ${CMAKE_COMMAND} -E make_directory "${LIVEKIT_CPP_EXAMPLES_INSTALL_PREFIX}"
28+
COMMAND ${CMAKE_COMMAND} --install "${CMAKE_BINARY_DIR}"
29+
--prefix "${LIVEKIT_CPP_EXAMPLES_INSTALL_PREFIX}"
30+
--config "$<CONFIG>"
31+
DEPENDS livekit
32+
COMMENT "Installing LiveKit SDK for cpp-example-collection"
33+
VERBATIM
34+
)
35+
36+
add_custom_target(cpp_example_collection ALL
37+
COMMAND ${CMAKE_COMMAND} -S "${LIVEKIT_CPP_EXAMPLES_SOURCE_DIR}"
38+
-B "${LIVEKIT_CPP_EXAMPLES_BINARY_DIR}"
39+
-DCMAKE_PREFIX_PATH="${LIVEKIT_CPP_EXAMPLES_INSTALL_PREFIX}"
40+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
41+
-DLiveKit_DIR="${LIVEKIT_CPP_EXAMPLES_LIVEKIT_DIR}"
42+
COMMAND ${CMAKE_COMMAND} --build "${LIVEKIT_CPP_EXAMPLES_BINARY_DIR}"
43+
--config "$<CONFIG>"
44+
DEPENDS install_livekit_sdk_for_examples
45+
COMMENT "Configuring and building cpp-example-collection"
46+
VERBATIM
47+
)
48+
endfunction()

cpp-example-collection

Submodule cpp-example-collection added at a74ca36

docker/Dockerfile

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,18 +104,14 @@ WORKDIR /client-sdk-cpp
104104
RUN mkdir -p /client-sdk-cpp
105105
COPY src /client-sdk-cpp/src
106106
COPY include /client-sdk-cpp/include
107-
COPY bridge /client-sdk-cpp/bridge
108107
COPY build.sh /client-sdk-cpp/build.sh
109108
COPY CMakePresets.json /client-sdk-cpp/CMakePresets.json
110109
COPY build.cmd /client-sdk-cpp/build.cmd
111110
COPY client-sdk-rust /client-sdk-cpp/client-sdk-rust
112111
COPY data /client-sdk-cpp/data
113-
COPY examples /client-sdk-cpp/examples
114112
COPY cmake /client-sdk-cpp/cmake
115113
COPY CMakeLists.txt /client-sdk-cpp/CMakeLists.txt
116114
COPY build.h.in /client-sdk-cpp/build.h.in
117-
COPY build.sh /client-sdk-cpp/build.sh
118-
COPY build.cmd /client-sdk-cpp/build.cmd
119115

120116
# Configure Rust linker: use full GCC path so liblto_plugin.so is found (not /home/installs/ which has no plugin)
121117
RUN mkdir -p /client-sdk-cpp/client-sdk-rust/.cargo \

0 commit comments

Comments
 (0)