Follow all the Get the Code instructions for your target platform up to and including running hooks.
To build Cronet for development and debugging purposes:
First, gn is used to create ninja files targeting the intended platform, then ninja executes the ninja files to run the build.
$ ./components/cronet/tools/cr_cronet.py gn --out_dir=out/Cronet
If the build host is Linux, Android binaries will be built. If the build host is macOS, iOS binaries will be built.
Note: these commands clobber output of previously executed gn commands in out/Cronet. If --out_dir is left out, the output directory defaults to out/Debug for debug builds and out/Release for release builds (see below).
If --x86 option is specified, then a native library is built for Intel x86 architecture, and the output directory defaults to out/Debug-x86 if unspecified. This can be useful for running on mobile emulators.
TODO(caraitto): Specify how to target Chrome OS and Fuchsia.
gn gen out/Cronet
Now, use the generated ninja files to execute the build against the cronet_package build target:
$ ninja -C out/Cronet cronet_package
To build Cronet with optimizations and with debug information stripped out:
$ ./components/cronet/tools/cr_cronet.py gn --release $ ninja -C out/Release cronet_package
Note: these commands clobber output of previously executed gn commands in out/Release.
By default ARMv7 32-bit executables are generated. To generate executables targeting other architectures modify cr_cronet.py's gn_args variable to include:
target_cpu="arm64"target_cpu="x86"target_cpu="x64"Alternatively you can run gn args {out_dir} and modify arguments in the editor that comes up. This has advantage of not changing cr_cronet.py.