Date: 21.10.2020 9:54:40
Секрет сборки lib-файлов тут, насколько я понял, в следующем. Проект WebRTC.NET имеет копии скриптов сборки WebRTC, в которых директивы rtc_library заменены на директивы rtc_static_library. Сравните оригинальный (https://chromium.googlesource.com/external/webrtc.git/+/refs/heads/master/api/BUILD.gn) и WebRTC.NET (https://github.com/radioman/WebRtc.NET/blob/master/WebRtc.NET/gn/webrtc/api/BUILD.gn). Поэтому вместо dll файлов получаются lib.
Как работает сама сборка через системы gn/ninja, описано в документации к репозиторию WebRTC: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/index.md Создавать с нуля тут нечего и незачем, нужно лишь воспользоваться имеющимся инструментарием. И обновлять самостоятельно тоже ничего не надо, это должна команда gclient sync вот здесь: https://github.com/radioman/WebRtc.NET/blob/master/WebRtc.NET/cmd/syncWebRtc.bat
Date: 21.10.2020 17:12:02
Проблема в том, что это совсем не то же самое, что "привет мир". Скорее это похоже на гибрид ужа с ежом, или что-то в этом роде. По ссылке - руководство, как создать проект DLL в обычном Visual C++/MSBuild. WebRTC же использует, как я уже сказал, хитровывернутую связку систем сборки от Google, GN + ninja. Одно с другим не соединяется, это вообще вещи разного порядка. Проект для MSBuild, конечно, можно сгенерировать в GN, просто он будет только для красоты, никто не гарантирует, что он будет собираться. Об этом явно написано в документации: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md#using-another-build-system
Other build systems are not supported (and may fail), such as Visual Studio on Windows or Xcode on OSX. GN supports a hybrid approach of using Ninja for building, but Visual Studio/Xcode for editing and driving compilation.
To generate IDE project files, pass the --ide
flag to the GN command.
See the GN reference for more details on the supported IDEs.
Сделать, чтобы проект от другой системы сборки вот так в лоб собирался в MSBuild, это совсем не уровня "привет мир". Разработчики WebRTC.NET придумали хороший обходной способ, через подключение статических библиотек в один большой проект. Что тут можно сделать лучше, я даже не представляю.
Date: 21.10.2020 19:02:18
Автор: VadimTagil