Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2500)

Unified Diff: build/docs/mac_hermetic_toolchain.md

Issue 2606223003: Add markdown instructions for using hermetic toolchain on mac and ios. (Closed)
Patch Set: Moved into docs dir Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/docs/mac_hermetic_toolchain.md
diff --git a/build/docs/mac_hermetic_toolchain.md b/build/docs/mac_hermetic_toolchain.md
new file mode 100644
index 0000000000000000000000000000000000000000..97caee99296811ce67b1e0b375bb48d6ac969204
--- /dev/null
+++ b/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.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698