Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Mac and iOS hermetic toolchain instructions | |
| 2 | |
| 3 The following is a short explanation of why we use a the hermetic toolchain | |
| 4 and instructions on how to roll a new toolchain. | |
| 5 | |
| 6 ## How to roll a new hermetic toolchain. | |
| 7 | |
| 8 1. Download a new version of Xcode, and confirm either mac or ios builds | |
| 9 properly with this new version. | |
| 10 | |
| 11 2. Run the following command: | |
| 12 | |
| 13 ``` | |
| 14 src/build/package_mac_toolchain.py /path/to/Xcode.app/ [ios|mac] | |
| 15 ``` | |
| 16 | |
| 17 The script will create a subset of the toolchain necessary for a build, and | |
| 18 upload them to be used by hermetic builds. | |
| 19 | |
| 20 If for some reason this toolchain version has already been uploaded, the | |
| 21 script will ask if we should create sub revision. This can be necessary when | |
| 22 the package script has been updated to compress additional files. | |
| 23 | |
| 24 2. Create a CL with updated [MAC|IOS]_TOOLCHAIN_VERSION and _SUB_REVISION in | |
| 25 src/build/mac_toolchain.py with the version created by the previous command. | |
| 26 | |
| 27 3. Run the CL thru the trybots to confirm the roll works. | |
| 28 | |
| 29 ## Why we use a hermetic toolchain. | |
| 30 | |
| 31 Building Chrome Mac currently requires many binaries that come bundled with | |
| 32 Xcode, as well the macOS and iphoneOS SDK [also bundled with Xcode]. Note that | |
| 33 Chrome ships its own version of clang [compiler], but is dependent on the system | |
|
erikchen
2017/01/17 19:33:09
this is no longer true with hermetic.
IMO, there
| |
| 34 install of Xcode for these other binaries. | |
| 35 | |
| 36 Chrome should be built against the latest SDK available, but historically, | |
| 37 updating the SDK has been nontrivially difficult. Additionally, bot system | |
| 38 installs can range from Xcode 5 on some bots, to the latest and | |
| 39 greatest. Using hermetic allows for transparent, easier deployment of a | |
| 40 consistent toolchain. | |
| OLD | NEW |