You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 980332b
Browse filesBrowse the repository at this point in the historyBrowse files
Proper Linux compiler support/documentation (#303)
The C++ SDK silently moved compiler requirements from GCC to Clang 21+ as of release v1.10.1, and this was never announced, properly documented, and scripts were not updated accordingly. As such, a fresh clone of this SDK on Linux did not build out of the box. This PR addresses this alongside documentation, script support, etc.
Notable change overview:
Compiler: gcc -> clang-21
build.sh now properly supports this. After users install the deps, this script now just works
CMake minimum version: 3.20 -> 3.25
Note this was already required before this PR due to the schema version 6 usage in CMakePresets.json, just a documentation gap. All supported platforms in CI were already past this version
Updates docs/building.md with relevant changes and proper dependency table
Copy file name to clipboardExpand all lines: AGENTS.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -145,7 +145,16 @@ the source tree. Track capture Rust sources and shaders in build dependencies.
145
145
The build scripts pass an explicit job count to `cmake --build --parallel`. Set
146
146
`CMAKE_BUILD_PARALLEL_LEVEL` to override the default detected logical CPU count.
147
147
148
-
**Requirements:** CMake 3.20+, C++17, Rust toolchain (cargo), protoc. On macOS: `brew install cmake ninja protobuf abseil`. On Linux: see the CI workflow for apt packages. spdlog is vendored automatically via FetchContent (or vcpkg on Windows) to avoid system conflicts.
148
+
**Requirements:** CMake 3.25+, C++17, Rust toolchain (cargo), protoc. Linux
149
+
source builds require clang/clang++ 21+ and a matching libclang runtime;
150
+
`build.sh` sources `scripts/setup-linux-toolchain.sh` to discover versioned
151
+
installations and validate the toolchain. Source that script before direct
152
+
Linux CMake usage. The build script rejects stale build directories configured
153
+
with another compiler. macOS builds use Xcode Apple Clang selected through
154
+
`xcrun`. On macOS:
155
+
`brew install cmake ninja protobuf abseil`. On Linux: see `docs/building.md`
156
+
and the CI workflow for apt packages. spdlog is vendored automatically via
157
+
FetchContent (or vcpkg on Windows) to avoid system conflicts.
149
158
150
159
### SDK Packaging
151
160
@@ -357,6 +366,8 @@ malformed table, missing `@param` on a documented function, …) fails the build
357
366
| GStreamer | Capture builds / runtime | System libraries and plugins; accessed through Rust; not redistributed in SDK bundles |
358
367
| Google Test | Test only | FetchContent in `src/tests/CMakeLists.txt`|
359
368
369
+
When a dependency is added, removed, upgraded, or used differently, update the
370
+
Dependencies table in `docs/building.md` in the same change.
360
371
When adding a new private/vendored dependency to this table, also add a
361
372
forbidden symbol pattern for it to
362
373
`.github/scripts/check_no_private_symbols.py` so the "Symbol leak check"
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,7 @@ Use this SDK to add realtime video, audio and data features to your C++ app. By
35
35
36
36
## Using the SDK
37
37
38
-
[CMake](https://cmake.org/) (≥ 3.20) is used for building the SDK itself and for consuming it as a library. The
38
+
[CMake](https://cmake.org/) (≥ 3.25) is used for building the SDK itself and for consuming it as a library. The
39
39
[**cpp-example-collection**](https://github.com/livekit-examples/cpp-example-collection) contains a reference [LiveKitSDK.cmake](https://github.com/livekit-examples/cpp-example-collection/blob/main/cmake/LiveKitSDK.cmake)
40
40
which downloads the latest stable release at CMake configure time. See [docs/building.md](docs/building.md) for additional documentation on integrating LiveKit into your project.
0 commit comments