webrtc 源码中如何新添加一个类
webrtc 源码使用gn做构建脚本,使用.ninja作为编译脚本,gn就类似于cmakelist.txt,而.ninja就类似于makefile,webrtc中的BUILD.gn就是构建脚本gn文件,构建的时候会通过BUILD.gn文件生成工程文件(例如vs工程文件)和.ninja文件。
下面举个例子:
本人在实现windows版的文件插播和桌面共享是需要修改webrtc源代码,下面是修改gn文件,路径是webrtc/src/media/BUILD.gn, 内容如下:
sources = [
"engine/adm_helpers.cc",
"engine/adm_helpers.h",
"engine/apm_helpers.cc",
"engine/apm_helpers.h",
"engine/nullwebrtcvideoengine.h",
"engine/payload_type_mapper.cc",
"engine/payload_type_mapper.h",
"engine/simulcast.cc",
"engine/simulcast.h",
"engine/webrtcmediaengine.cc",
"engine/webrtcmediaengine.h",
"engine/webrtcvideocapturer.cc",
"engine/webrtcvideocapturer.h",
"../custom_video_capturer/capture_module_interface.h",
"../custom_video_capturer/custom_video_capture.h",
"../custom_video_capturer/custom_video_capture.cc",
"../custom_video_capturer/video_capture.h",
"../custom_video_capturer/video_capture.cc",
"engine/webrtcvideocapturerfactory.cc",
"engine/webrtcvideocapturerfactory.h",
"engine/webrtcvideodecoderfactory.cc",
"engine/webrtcvideodecoderfactory.h",
"engine/webrtcvideoencoderfactory.cc",
"engine/webrtcvideoencoderfactory.h",
"engine/webrtcvideoengine.cc",
"engine/webrtcvideoengine.h",
"engine/webrtcvoiceengine.cc",
"engine/webrtcvoiceengine.h",
]
将自己的类加上之后,重新 gn gen out/Default –args=“target_os=\”win\” target_cpu=\”x86\” is_debug=false” –ide=vs2017 构建完成后,编译就可以了。