because-why-not / webrtc_visionpro_workspace

This is a collection of scripts to build and test a customized WebRTC version for the Apple Vision Pro / Vision OS. See subrepository at "src" for the code changes.
4 stars 1 forks source link

build question #2

Closed SetoKaiba closed 1 month ago

SetoKaiba commented 1 month ago

I want to use it with com.unity.webrtc. So I have to build it as libwebrtc.a. I tried to modify the build_xros.sh to follow the same arguments of this build script. https://github.com/Unity-Technologies/com.unity.webrtc/blob/main/BuildScripts~/build_libwebrtc_ios.sh#L55-L65 But I can't build it successfully. Can you please help? Thank you.

devluz commented 1 month ago

What errors are you getting? I will try to port unity's webrtc build as well but for now I want to verify the current library build works. There are likely still bugs in files my own test build doesn't happen to use.

SetoKaiba commented 1 month ago

I will get error if I remove these two arguments clang_use_chrome_plugins = false use_lld=false. If I remove the first one, it will report that it can't not find the fix-bad-contructs plugin. The clang for visionos is not open sourced. It seems that I have to keep this argument. If I remove the second one, it will report that i't can't find llvm-ar.

But I then find that the problem isn't come from the arguments. But the version mismatch. I'm trying to use the correct version instead to see whether it's ok.

SetoKaiba commented 1 month ago

I try it with M116 the version com.unity.webrtc use. I met this problem.

error: 'MTKViewDelegate' is unavailable: not available on visionOS

I see that you remove this DEPS in for xros for framework_objc. I use the same lines you use. But the metal_objc is still introduced.

devluz commented 1 month ago

I will give it a try tomorrow. The build was based on M120 so maybe there are some merge / version differences or unity's own targets work differently.

SetoKaiba commented 1 month ago

I will give it a try tomorrow. The build was based on M120 so maybe there are some merge / version differences or unity's own targets work differently.

I found out the problem. M120 removed the lines below. The opengl_ui_objc has a dependency on metal_objc and some unsupported GL APIS. I just exclude it for xros is ok. Thank you

        if (rtc_ios_macos_use_opengl_rendering) {
          deps += [ ":opengl_ui_objc" ]
        }