The following is a short explanation of why we use a the hermetic toolchain and instructions on how to roll a new toolchain. This toolchain is only available to Googlers and infra bots.
-
Download a new version of Xcode, and confirm either mac or ios builds properly with this new version.
-
Create a new CIPD package by moving Xcode.app to the
build/
directory, then follow the instructions in build/xcode_binaries.yaml.The CIPD package creates a subset of the toolchain necessary for a build.
-
Create a CL with the updated
MAC_BINARIES_TAG
in mac_toolchain.py with the version created by the previous command. -
Run the CL through the trybots to confirm the roll works.
Building Chrome Mac currently requires many binaries that come bundled with Xcode, as well the macOS and iphoneOS SDK (also bundled with Xcode). Note that Chrome ships its own version of clang (compiler), but is dependent on Xcode for these other binaries. Using a hermetic toolchain has two main benefits:
-
Build Chrome with a well-defined toolchain (rather than whatever happens to be installed on the machine).
-
Easily roll/update the toolchain.