xref: /aosp_15_r20/external/openscreen/third_party/chromium_quic/README.md (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Chromium's QUIC
2*3f982cf4SFabien Sanglard
3*3f982cf4SFabien SanglardThis directory contains a copy of Chromium's QUIC, along with what is
4*3f982cf4SFabien Sanglard(hopefully) a minimum set of dependencies from Chromium.  All of the build files
5*3f982cf4SFabien Sanglardwere rewritten to avoid also porting Chromium's build infrastructure (gn flags,
6*3f982cf4SFabien Sanglardconfigs, and absolute-path imports).
7*3f982cf4SFabien Sanglard
8*3f982cf4SFabien Sanglard## Build files
9*3f982cf4SFabien Sanglard
10*3f982cf4SFabien SanglardThe QUIC code is all covered by the BUILD.gn in this directory.  The remaining
11*3f982cf4SFabien SanglardChromium code is covered by a BUILD.gn for each top-level directory under src/
12*3f982cf4SFabien Sanglard(e.g. net, url, etc.).  src/base/ is handled slightly differently, because it is
13*3f982cf4SFabien Sanglarda submodule where we still want to rewrite BUILD.gn, as well as some generated
14*3f982cf4SFabien Sanglardfiles.  In this case, we use build/base/, which contains our new BUILD.gn and
15*3f982cf4SFabien Sanglardgenerated files from an existing Chromium checkout.
16*3f982cf4SFabien Sanglard
17*3f982cf4SFabien Sanglard## Cloning process
18*3f982cf4SFabien Sanglard
19*3f982cf4SFabien SanglardAt a basic level, the original cloning process was as follows:
20*3f982cf4SFabien Sanglard  1. Copy net/third_party/quic and add its files to BUILD.gn.
21*3f982cf4SFabien Sanglard  2. Try to compile.
22*3f982cf4SFabien Sanglard  3. Fix errors by copying evidently necessary files from Chromium and adding
23*3f982cf4SFabien Sanglard     them to the appropriate BUILD.gn
24*3f982cf4SFabien Sanglard  4. Repeat from 2 until everything works.
25*3f982cf4SFabien Sanglard
26*3f982cf4SFabien SanglardThe process is mostly encapsulated in the script `clone_helper.sh`.  The only
27*3f982cf4SFabien Sanglardcaveat is that the original cloning process was done as described, but now
28*3f982cf4SFabien Sanglardsrc/base/ is included as a submodule with its BUILD.gn and generated files in
29*3f982cf4SFabien Sanglardbuild/base/.
30*3f982cf4SFabien Sanglard
31*3f982cf4SFabien SanglardThe original clone is from Chromium commit
32*3f982cf4SFabien Sanglard8b90885e60134c34176df2dd1834a94dbd6b73b9.
33