Skip to content

Commit 351ab6a

Browse files
committed
fix(rust): Add file playback source files to build-source mode
Problem Analysis: - Build Source (Dist) mode on macOS/Windows was failing with undefined symbols - Root cause: ccap_file_reader_apple.mm and ccap_file_reader_windows.cpp were missing - These files are required when CCAP_ENABLE_FILE_PLAYBACK is enabled (default ON in CMake) - The FileReaderApple/Windows classes are referenced in ccap_imp_apple.mm and ccap_imp_windows.cpp Changes: - Add ccap_file_reader_apple.mm to macOS platform sources - Add ccap_file_reader_windows.cpp to Windows platform sources - Define CCAP_ENABLE_FILE_PLAYBACK=1 to enable file playback functionality Verification: - Linux build-source mode: ✅ cargo build --no-default-features --features build-source - Linux tests: ✅ cargo test --no-default-features --features build-source - All 11 tests passed This fix ensures build-source mode includes all required source files for the file playback feature, resolving linker errors on macOS and Windows.
1 parent f499ce2 commit 351ab6a

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

bindings/rust/build.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ fn main() {
4646
{
4747
build
4848
.file(ccap_root.join("src/ccap_imp_apple.mm"))
49-
.file(ccap_root.join("src/ccap_convert_apple.cpp"));
49+
.file(ccap_root.join("src/ccap_convert_apple.cpp"))
50+
.file(ccap_root.join("src/ccap_file_reader_apple.mm"));
5051
}
5152

5253
#[cfg(target_os = "linux")]
@@ -56,7 +57,9 @@ fn main() {
5657

5758
#[cfg(target_os = "windows")]
5859
{
59-
build.file(ccap_root.join("src/ccap_imp_windows.cpp"));
60+
build
61+
.file(ccap_root.join("src/ccap_imp_windows.cpp"))
62+
.file(ccap_root.join("src/ccap_file_reader_windows.cpp"));
6063
}
6164

6265
// Include directories
@@ -67,6 +70,9 @@ fn main() {
6770
// Compiler flags
6871
build.cpp(true).std("c++17"); // Use C++17
6972

73+
// Enable file playback support
74+
build.define("CCAP_ENABLE_FILE_PLAYBACK", "1");
75+
7076
#[cfg(target_os = "macos")]
7177
{
7278
build.flag("-fobjc-arc"); // Enable ARC for Objective-C++

0 commit comments

Comments
 (0)