diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-04-05 17:15:33 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-04-11 07:47:18 +0000 |
commit | 7324afb043a0b1e623d8e8eb906cdc53bdeb4685 (patch) | |
tree | a3fe2d74ea9c9e142c390dac4ca0e219382ace46 /chromium/build/docs | |
parent | 6a4cabb866f66d4128a97cdc6d9d08ce074f1247 (diff) | |
download | qtwebengine-chromium-7324afb043a0b1e623d8e8eb906cdc53bdeb4685.tar.gz |
BASELINE: Update Chromium to 58.0.3029.54
Change-Id: I67f57065a7afdc8e4614adb5c0230281428df4d1
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'chromium/build/docs')
-rw-r--r-- | chromium/build/docs/mac_hermetic_toolchain.md | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/chromium/build/docs/mac_hermetic_toolchain.md b/chromium/build/docs/mac_hermetic_toolchain.md new file mode 100644 index 00000000000..97caee99296 --- /dev/null +++ b/chromium/build/docs/mac_hermetic_toolchain.md @@ -0,0 +1,44 @@ +# Mac and iOS hermetic toolchain instructions + +The following is a short explanation of why we use a the hermetic toolchain +and instructions on how to roll a new toolchain. + +## How to roll a new hermetic toolchain. + +1. Download a new version of Xcode, and confirm either mac or ios builds + properly with this new version. + +2. Run the following command: + + ``` + src/build/package_mac_toolchain.py /path/to/Xcode.app/ [ios|mac] + ``` + + The script will create a subset of the toolchain necessary for a build, and + upload them to be used by hermetic builds. + + If for some reason this toolchain version has already been uploaded, the + script will ask if we should create sub revision. This can be necessary when + the package script has been updated to compress additional files. + +2. Create a CL with updated [MAC|IOS]_TOOLCHAIN_VERSION and _SUB_REVISION in + src/build/mac_toolchain.py with the version created by the previous command. + +3. Run the CL thru the trybots to confirm the roll works. + +## Why we use a hermetic toolchain. + +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. + +Chrome should be built against the latest SDK available, but historically, +updating the SDK has been nontrivially difficult. Additionally, bot system +installs can range from Xcode 5 on some bots, to the latest and +greatest. Using a hermetic toolchain has two main benefits: + +1. Build Chrome with a well-defined toolchain [rather than whatever happens to +be installed on the machine]. + +2. Easily roll/update the toolchain. |