一、准备工作
1、安装 node
可以不预先安装 meson(ninjia)
, make
时会自动使用 pip
安装。故需确保安装了 python3
。
2、获取源码并安装 node 包
1 2 3 4
| git clone https://github.com/versatica/mediasoup cd mediasoup npm i
|
二、默认编译
默认编译将产出 mediasoup-worker
可执行程序。
1 2
| node npm-scripts.js worker:build
|
当然,也可以直接执行 make
:
如果报”ERROR: Subproject exists but has no meson.build file”之类的错误,执行命令 make -C worker clean-all
后重试。
三、生成 xcodeproj
四、生成 sln (尚未测试)
1 2 3
| cd worker meson setup --buildtype debug --backend vs ./out/vs
|
1 2 3 4
| export MEDIASOUP_BUILDTYPE=Release export MEDIASOUP_OUT_DIR=$(pwd)/out make -C worker libmediasoup-worker
|
首先打开 meson.build
文件,搜索 libmediasoup_worker = library
,将 library
改为 shared_library
。
1 2 3 4
| export MEDIASOUP_BUILDTYPE=Release export MEDIASOUP_OUT_DIR=$(pwd)/out make -C worker libmediasoup-worker
|
生成 P/Invoke
代码(尚未测试):
1 2
| dotnet tool install --global ClangSharpPInvokeGenerator --version 14.0.0-beta2 DYLD_LIBRARY_PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib ClangSharpPInvokeGenerator -n Tubumu.Mediasoup -m MediasoupNative -o MediasoupNative.cs -l ./worker/out/Release/libmediasoup-worker.dylib -f ./worker/include/lib.hpp
|
七、备注
后来在较新版本上的 mediasoup
上尝试生成 xcodeproj
失败,并且提示警告 WARNING: xcode backend is currently unmaintained, patches welcome
。
参考资料
npm-scripts.js
Makefile
task.py
meson.build