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