summaryrefslogtreecommitdiff
path: root/chromium/build/docs
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-04-05 17:15:33 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-04-11 07:47:18 +0000
commit7324afb043a0b1e623d8e8eb906cdc53bdeb4685 (patch)
treea3fe2d74ea9c9e142c390dac4ca0e219382ace46 /chromium/build/docs
parent6a4cabb866f66d4128a97cdc6d9d08ce074f1247 (diff)
downloadqtwebengine-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.md44
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.