Skip to content

Commit 9d0eeb5

Browse files
Breaking changes: remove deprecated code, return weak_ptr instead of raw, remove unused LogSink enum. More targetted docs. (#143)
Breaking changes of public API: - return weak handles for Room participant/E2EE accessors - remove deprecated snake_case aliases - remove TrackSource-based audio/video callback registration - remove livekit_bridge Cleanup - sdk build warnings are now errors - remove third party warnings. - refactor readme to more targeted .md files - cleaner Doxygen
1 parent c362267 commit 9d0eeb5

95 files changed

Lines changed: 1730 additions & 5135 deletions

File tree

Some content is hidden

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

.github/workflows/builds.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ on:
77
- src/**
88
- include/**
99
- cpp-example-collection/**
10-
- bridge/**
1110
- client-sdk-rust/**
1211
- cmake/**
1312
- scripts/**
@@ -28,7 +27,6 @@ on:
2827
- src/**
2928
- include/**
3029
- cpp-example-collection/**
31-
- bridge/**
3230
- client-sdk-rust/**
3331
- cmake/**
3432
- scripts/**
@@ -58,7 +56,7 @@ env:
5856
# failing the build.
5957
SCCACHE_GHA_ENABLED: "true"
6058
# Pinned commit for cpp-example-collection smoke build (https://github.com/livekit-examples/cpp-example-collection)
61-
CPP_EXAMPLE_COLLECTION_REF: 56815733a71c14692569e8adf2916a56a14d4882
59+
CPP_EXAMPLE_COLLECTION_REF: 402e6fbcc3cb8b2b2aaf80e21b289f27a9060dc6
6260
# vcpkg binary caching for Windows
6361
VCPKG_DEFAULT_TRIPLET: x64-windows-static-md
6462
VCPKG_DEFAULT_HOST_TRIPLET: x64-windows-static-md

.github/workflows/docker-images.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ on:
66
paths:
77
- src/**
88
- include/**
9-
- bridge/**
109
- client-sdk-rust/**
1110
- CMakeLists.txt
1211
- build.sh
@@ -90,7 +89,7 @@ jobs:
9089
fi
9190
9291
case "${path}" in
93-
docker/Dockerfile.sdk|src/*|include/*|bridge/*|client-sdk-rust/*|cmake/*|data/*|CMakeLists.txt|build.sh|build.cmd|build.h.in|.build-info.json.in|CMakePresets.json)
92+
docker/Dockerfile.sdk|src/*|include/*|client-sdk-rust/*|cmake/*|data/*|CMakeLists.txt|build.sh|build.cmd|build.h.in|.build-info.json.in|CMakePresets.json)
9493
sdk_changed=true
9594
;;
9695
esac

.github/workflows/docker-validate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ permissions:
1111

1212
env:
1313
# Pinned commit for cpp-example-collection smoke build (https://github.com/livekit-examples/cpp-example-collection)
14-
CPP_EXAMPLE_COLLECTION_REF: 56815733a71c14692569e8adf2916a56a14d4882
14+
CPP_EXAMPLE_COLLECTION_REF: 402e6fbcc3cb8b2b2aaf80e21b289f27a9060dc6
1515

1616
jobs:
1717
validate-x64:

.github/workflows/license_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
set -euo pipefail
1919
2020
search_dirs=()
21-
for dir in src include bridge cpp-example-collection; do
21+
for dir in src include cpp-example-collection; do
2222
if [[ -d "$dir" ]]; then
2323
search_dirs+=("$dir")
2424
fi

AGENTS.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ Be sure to update the directory layout in this file if the directory layout chan
7474
| `src/` | Implementation files and internal-only headers (`ffi_client.h`, `lk_log.h`, etc.) |
7575
| `src/tests/` | Google Test integration and stress tests |
7676
| `examples/` | In-tree example applications |
77-
| `bridge/` | **Deprecated** C-style bridge layer — do not add new functionality |
7877
| `client-sdk-rust/` | Git submodule holding the Rust core of the SDK|
7978
| `client-sdk-rust/livekit-ffi/protocol/*.proto` | FFI contract (protobuf definitions, read-only reference) |
8079
| `cmake/` | Build helpers (`protobuf.cmake`, `spdlog.cmake`, `LiveKitConfig.cmake.in`) |
@@ -368,11 +367,6 @@ When adding new client facing functionality, add benchmarking to understand the
368367
- Declare all data objects at the smallest possible level of scope
369368
- Each calling function must check the return value of nonvoid functions, and each called function must check the validity of all parameters provided by the caller
370369

371-
372-
## Deprecated / Out of Scope
373-
374-
- **`bridge/`** (`livekit_bridge`) is deprecated. Do not add new functionality to it.
375-
376370
## Common Pitfalls
377371

378372
- A `Room` with `auto_subscribe = false` will never receive remote audio/video frames — this is almost never what you want.

CMakeLists.txt

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ project(livekit VERSION ${LIVEKIT_PROJECT_VERSION} LANGUAGES C CXX)
1414
set(LIVEKIT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
1515
set(LIVEKIT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
1616
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
17+
include(warnings)
1718

1819
option(LIVEKIT_BUILD_EXAMPLES "Build LiveKit examples" OFF)
1920
option(LIVEKIT_BUILD_TESTS "Build LiveKit tests" OFF)
@@ -113,17 +114,28 @@ if(TARGET protobuf::libprotobuf)
113114
else()
114115
message(FATAL_ERROR "No protobuf library target found (expected protobuf::libprotobuf)")
115116
endif()
116-
target_include_directories(livekit_proto PRIVATE
117-
"${PROTO_BINARY_DIR}"
118-
${Protobuf_INCLUDE_DIRS}
119-
)
120-
target_link_libraries(livekit_proto PRIVATE ${LIVEKIT_PROTOBUF_TARGET})
117+
set(LIVEKIT_PROTOBUF_DEP_INCLUDE_DIRS ${Protobuf_INCLUDE_DIRS})
121118
if(TARGET absl::base)
122-
get_target_property(_absl_inc absl::base INTERFACE_INCLUDE_DIRECTORIES)
119+
livekit_get_interface_includes(absl::base _absl_inc)
123120
if(_absl_inc)
124-
target_include_directories(livekit_proto PRIVATE ${_absl_inc})
121+
list(APPEND LIVEKIT_PROTOBUF_DEP_INCLUDE_DIRS ${_absl_inc})
125122
endif()
126123
endif()
124+
set(LIVEKIT_SYSTEM_INCLUDE_DIRS)
125+
if(TARGET spdlog::spdlog)
126+
livekit_get_interface_includes(spdlog::spdlog _spdlog_inc)
127+
if(_spdlog_inc)
128+
list(APPEND LIVEKIT_SYSTEM_INCLUDE_DIRS ${_spdlog_inc})
129+
endif()
130+
endif()
131+
target_include_directories(livekit_proto SYSTEM PRIVATE
132+
"${PROTO_BINARY_DIR}"
133+
)
134+
target_include_directories(livekit_proto PRIVATE
135+
${LIVEKIT_PROTOBUF_DEP_INCLUDE_DIRS}
136+
)
137+
target_link_libraries(livekit_proto PRIVATE ${LIVEKIT_PROTOBUF_TARGET})
138+
livekit_disable_warnings(livekit_proto)
127139

128140
# Manually generate protobuf files to avoid path prefix issues
129141
set(PROTO_SRCS)
@@ -432,8 +444,13 @@ target_include_directories(livekit
432444
PRIVATE
433445
${LIVEKIT_ROOT_DIR}/src
434446
${LIVEKIT_ROOT_DIR}/src/trace
435-
${RUST_ROOT}/livekit-ffi/include
436-
${PROTO_BINARY_DIR}
447+
${LIVEKIT_PROTOBUF_DEP_INCLUDE_DIRS}
448+
)
449+
450+
target_include_directories(livekit SYSTEM PRIVATE
451+
${RUST_ROOT}/livekit-ffi/include
452+
${PROTO_BINARY_DIR}
453+
${LIVEKIT_SYSTEM_INCLUDE_DIRS}
437454
)
438455

439456
target_link_libraries(livekit
@@ -748,9 +765,6 @@ install(FILES
748765

749766
# ------------------------------------------------------------------------
750767

751-
# Build the LiveKit C++ bridge before examples (human_robot depends on it)
752-
add_subdirectory(bridge)
753-
754768
if(LIVEKIT_BUILD_EXAMPLES)
755769
include(cpp-example-collection)
756770
livekit_configure_cpp_example_collection()

DEPENDENCIES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,6 @@ To verify you have all dependencies linked correctly:
254254

255255
## Need Help?
256256

257-
- See `README_BUILD.md` for complete build instructions
257+
- See [`docs/building.md`](docs/building.md) for complete build instructions
258258
- Check `CMakeLists.txt` lines 287-381 for the exact CMake configuration
259259
- Open an issue at: https://github.com/livekit/client-sdk-cpp/issues

0 commit comments

Comments
 (0)