Skip to content

Great project - can we get the required specs on your compilation procedure for OSX/Win builds #22

@austinkottke

Description

@austinkottke

Encountered a few compiler errors w/ arm64 (m3) Xcode 14.5. Attempted to remove the RUST bindings so I can compile w/ C++17.

How did you guys build this on OSX/WIN ? Should I create a PR if I get it building w/o RUST (If possible)?

Have you tested as a pure static library?


MacBook-Pro:client-sdk-cpp future$ ./build.sh debug

....

cargo:warning=__expand_to_true<__enable_if_t<_Pred::value>...> __and_helper(int);
  cargo:warning=                               ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__type_traits/conjunction.h:38:39: note: while substituting explicitly-specified template arguments into function template '__and_helper' 
  cargo:warning=using _And _LIBCPP_NODEBUG = decltype(std::__and_helper<_Pred...>(0));
  cargo:warning=                                      ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__memory/pointer_traits.h:200:5: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
  cargo:warning=    _And<is_class<_Pointer>, _IsFancyPointer<_Pointer> >::value
  cargo:warning=    ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__algorithm/copy_move_common.h:108:24: note: in instantiation of function template specialization 'std::__unwrap_range<rust::Slice<unsigned char>::iterator, rust::Slice<unsigned char>::iterator>' requested here
  cargo:warning=  auto __range  = std::__unwrap_range(__first, std::move(__last));
  cargo:warning=                       ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__algorithm/copy_move_common.h:133:15: note: in instantiation of function template specialization 'std::__unwrap_and_dispatch<std::__overload<std::__copy_loop<std::_ClassicAlgPolicy>, std::__copy_trivial>, rust::Slice<unsigned char>::iterator, rust::Slice<unsigned char>::iterator, std::back_insert_iterator<std::vector<unsigned char>>, 0>' requested here
  cargo:warning=  return std::__unwrap_and_dispatch<_Algorithm>(std::move(__first), std::move(__last), std::move(__out_first));
  cargo:warning=              ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__algorithm/copy.h:110:15: note: in instantiation of function template specialization 'std::__dispatch_copy_or_move<std::_ClassicAlgPolicy, std::__copy_loop<std::_ClassicAlgPolicy>, std::__copy_trivial, rust::Slice<unsigned char>::iterator, rust::Slice<unsigned char>::iterator, std::back_insert_iterator<std::vector<unsigned char>>>' requested here
  cargo:warning=  return std::__dispatch_copy_or_move<_AlgPolicy, __copy_loop<_AlgPolicy>, __copy_trivial>(
  cargo:warning=              ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__algorithm/copy.h:117:15: note: in instantiation of function template specialization 'std::__copy<std::_ClassicAlgPolicy, rust::Slice<unsigned char>::iterator, rust::Slice<unsigned char>::iterator, std::back_insert_iterator<std::vector<unsigned char>>>' requested here
  cargo:warning=  return std::__copy<_ClassicAlgPolicy>(__first, __last, __result).second;
  cargo:warning=              ^
  cargo:warning=./include/livekit/frame_cryptor.h:51:10: note: in instantiation of function template specialization 'std::copy<rust::Slice<unsigned char>::iterator, std::back_insert_iterator<std::vector<unsigned char>>>' requested here
  cargo:warning=    std::copy(key.begin(), key.end(), std::back_inserter(key_vec));
  cargo:warning=         ^
  cargo:warning=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__memory/pointer_traits.h:38:8: note: template is declared here
  cargo:warning=struct __pointer_traits_element_type;
  cargo:warning=       ^
  cargo:warning=2 errors generated.

  exit status: 0
  exit status: 0
  exit status: 1
  cargo:warning=ToolExecError: command did not execute successfully (status code exit status: 1): env -u IPHONEOS_DEPLOYMENT_TARGET LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-2" "-fno-omit-frame-pointer" "--target=arm64-apple-macosx" "-mmacosx-version-min=14.5" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/webrtc-sys-xxxx/out/cxxbridge/include" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/webrtc-sys-xxxx/out/cxxbridge/crate" "-I" "./include" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/scratch-xxxx/out/livekit_webrtc/livekit/mac-arm64-release-webrtc-ebd5a9f-2/mac-arm64-release/include" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/scratch-xxxx/out/livekit_webrtc/livekit/mac-arm64-release-webrtc-ebd5a9f-2/mac-arm64-release/include/third_party/abseil-cpp/" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/scratch-xxxx/out/livekit_webrtc/livekit/mac-arm64-release-webrtc-ebd5a9f-2/mac-arm64-release/include/third_party/libyuv/include/" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/scratch-xxxx/out/livekit_webrtc/livekit/mac-arm64-release-webrtc-ebd5a9f-2/mac-arm64-release/include/third_party/libc++/" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/scratch-xxxx/out/livekit_webrtc/livekit/mac-arm64-release-webrtc-ebd5a9f-2/mac-arm64-release/include/sdk/objc" "-I" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/scratch-xxxx/out/livekit_webrtc/livekit/mac-arm64-release-webrtc-ebd5a9f-2/mac-arm64-release/include/sdk/objc/base" "-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk" "-stdlib=libc++" "-std=c++20" "-Wno-nullability-completeness" "-DWEBRTC_APM_DEBUG_DUMP=0" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D_FORTIFY_SOURCE=2" "-D__ARM_NEON__=1" "-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" "-DNDEBUG" "-DNVALGRIND" "-DDYNAMIC_ANNOTATIONS_ENABLED=0" "-DWEBRTC_ENABLE_PROTOBUF=0" "-DWEBRTC_STRICT_FIELD_TRIALS=0" "-DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE" "-DRTC_USE_LIBAOM_AV1_ENCODER" "-DRTC_ENABLE_VP9" "-DRTC_ENABLE_H265" "-DRTC_DAV1D_IN_INTERNAL_DECODER_FACTORY" "-DWEBRTC_HAVE_SCTP" "-DWEBRTC_USE_H264" "-DWEBRTC_ARCH_ARM64" "-DWEBRTC_HAS_NEON" "-DWEBRTC_LIBRARY_IMPL" "-DPROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII=0" "-DWEBRTC_ENABLE_SYMBOL_EXPORT" "-DWEBRTC_ENABLE_AVX2" "-DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0" "-DWEBRTC_POSIX" "-DWEBRTC_MAC" "-DWEBRTC_ALLOW_DEPRECATED_NAMESPACES" "-DABSL_ALLOCATOR_NOTHROW=1" "-DCHROMIUM" "-DLIBYUV_DISABLE_SME" "-DLIBYUV_DISABLE_LSX" "-DLIBYUV_DISABLE_LASX" "-DLIVEKIT_TEST" "-o" "/path/to/livekit/client-sdk-cpp/client-sdk-rust/target/debug/build/webrtc-sys-xxxx/out/0602fb52cb66f316-frame_cryptor.o" "-c" "src/frame_cryptor.cpp"


CMake Error at run_cargo.cmake:24 (message):
  cargo build failed with code: 101


make[2]: *** [CMakeFiles/build_rust_ffi] Error 1
make[1]: *** [CMakeFiles/build_rust_ffi.dir/all] Error 2
make: *** [all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions