- At least 50GB of free disk space.
- High speed network connection.
- Ubuntu 18.04 for Ubuntu build.
- Chromium source code base 109.0.5414.67
Please follow Chromium Windows build instruction or Chromium Linux build instruction to setup system and install depot_tools
.
Create a new directory for the check out, and create a .gclient
file in this directory. Add following code to .gclient
file.
solutions = [
{ "name" : "src/owt",
"url" : "https://github.com/open-webrtc-toolkit/owt-sdk-quic.git",
"deps_file" : "DEPS",
"managed" : False,
"custom_deps" : {
},
"custom_vars": {},
},
]
Run gclient sync
to check out SDK code, Chromium code, and other dependencies. It may take one or two hours if your network connection is not fast enough.
You will see a src
directory after sync completes. Switch to the src
directory for following steps.
Some manually changes to Chromium code are needed before building SDK.
-
Apply patches in
owt/quic_transport/patches
tosrc
directory. -
Create a file
gclient_args.gni
inbuild/config
with following code.
# Generated from 'DEPS'
build_with_chromium = true
checkout_android = false
checkout_android_native_support = false
checkout_ios_webkit = false
checkout_nacl = true
checkout_oculus_sdk = false
checkout_openxr = false
checkout_aemu = false
checkout_google_benchmark = false
Since we checked out code to src/owt
, gclient cannot find buildtools under this directory. We need to add an environment variable CHROMIUM_BUILDTOOLS_PATH
. Its value should be <dir of .gclient file>/src/buildtools
.
Run gn gen out/debug
to generate ninja files, or gn args out/debug
to configure GN arguments. For debug version, it may look like this
is_debug=true
is_component_build=false
symbol_level=1
You may want to set is_component_build
to false
in order to get a single shared library, but you can also set it to true
to reduce the compiling time for debugging. symbol_level
is set to 1
since 2
is conflicted with is_component_build=false
.
Then run ninja -C out/debug/ owt_quic_transport
to build the SDK.
Encryption is mandatory for QUIC connections. You may generate a testing certificate by running net/tools/quic/certs/generate-certs.sh
. It valids for 72 hours.