Repository navigation
build: add opt-in Cargo/cc::Build OBS prototype - #1333
Merged
Merged
Conversation
Refs #1332. Both integration contracts fail because the shared-library backend is not implemented. Preserve the full application conversion and performance requirements in the build plan.
…EEN) Refs #1332. Compile separate or unity C/C++ sources with cc::Build, link shared libraries with target-specific conventions and keep generated source paths explicit. Both native integration contracts and all-target clippy pass on Linux. Full libobs/application conversion remains in progress.
…RED) Refs #1332. The bundled C API test fails at the explicitly unimplemented libobs backend. Move the existing source sets into a manifest shared with the CMake reference so the new native build does not maintain a divergent source list.
5 tasks
zackees
marked this pull request as ready for review
October 18, 2026 04:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Shipping scope
Ship the opt-in Cargo/cc::Build prototype and bundled
obs-syspath. The existing CMake build remains the default. This PR does not claim the full CMake replacement, complete platform coverage or release packaging readiness.The maintainer explicitly requested getting this code merged and doing follow-ups afterward. Additional C/Rust parity expansion is deferred to #1390; the complete native-build replacement remains tracked in #1332. Existing tests and public C headers are preserved.
Included
Correctness changes included
Completed validation
Detailed commands, runtime artifacts, RED/GREEN commits, scope and limitations: docs/rust-port/cc-build.md.
Current shipping checks
Required CI on26f33f149 PASS, including the final CI gate: run39097098398. The prior head passed Fast Gate, Qt, Windows/macOS Rust tests/cross lint/Tier2 and Linux ON, but failed the fixed documentation scan and the existing recording-shutdown race tracked in #1283. The focused regression correction is in #1392 (issue #1391), with deterministic RED/GREEN coverage and unchanged original tests. No tests are skipped/weakened or retried just to report green.
Final-head local shipping checks PASS on26f33f149: all-target/all-feature Clippy; both staged OBS variants with browser/VLC/WebRTC selected; actual browser pixels/JavaScript, websocket/profile/frontend recording and normal shutdown;4 additional validated API recordings;2 real decoded H.264/Opus WHIP streams with timestamps/tone/authenticated cleanup;8 unchanged standalone WHIP cases. The complete native invocation took440.60s including compilation and runtime checks, not a controlled build benchmark. Runtime directories:
app-runtime-XGjhaF,app-runtime-7EQ8Pb. Prior failed/interrupted attempts are retained and not counted as passes. Required PR CI passed. This PR is ready and enqueued normally behind #1392; merge-queue validation is running: run39098913076.Follow-ups
Refs #1332, #1385, #1390. The full conversion remains open under #1332.