aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/os/mac/xcode.rb23
-rw-r--r--docs/Xcode.md89
2 files changed, 23 insertions, 89 deletions
diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb
index 0b1cc7146..f977a066d 100644
--- a/Library/Homebrew/os/mac/xcode.rb
+++ b/Library/Homebrew/os/mac/xcode.rb
@@ -17,13 +17,13 @@ module OS
when "10.9" then "6.2"
when "10.10" then "7.2.1"
when "10.11" then "8.2.1"
- when "10.12" then "9.1"
- when "10.13" then "9.1"
+ when "10.12" then "9.2"
+ when "10.13" then "9.2"
else
raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease?
# Default to newest known version of Xcode for unreleased macOS versions.
- "9.1"
+ "9.2"
end
end
@@ -141,7 +141,11 @@ module OS
end
end
- # The remaining logic provides a fake Xcode version based on the
+ detect_version_from_clang_version
+ end
+
+ def detect_version_from_clang_version
+ # This logic provides a fake Xcode version based on the
# installed CLT version. This is useful as they are packaged
# simultaneously so workarounds need to apply to both based on their
# comparable version.
@@ -166,7 +170,7 @@ module OS
when 80 then "8.0"
when 81 then "8.3"
when 90 then "9.0"
- else "9.0"
+ else "9.0"
end
end
@@ -217,14 +221,13 @@ module OS
# on the older supported platform for that Xcode release, i.e there's no
# CLT package for 10.11 that contains the Clang version from Xcode 8.
case MacOS.version
- when "10.13" then "900.0.38"
- when "10.12" then "900.0.38"
+ when "10.13" then "900.0.39.2"
+ when "10.12" then "900.0.39.2"
when "10.11" then "800.0.42.1"
when "10.10" then "700.1.81"
when "10.9" then "600.0.57"
when "10.8" then "503.0.40"
- else
- "425.0.28"
+ else "425.0.28"
end
end
@@ -232,7 +235,7 @@ module OS
case MacOS.version
when "10.13" then "9.0.0"
when "10.12" then "8.0.0"
- else "1.0.0"
+ else "1.0.0"
end
end
diff --git a/docs/Xcode.md b/docs/Xcode.md
index 6c8626095..7fcc48877 100644
--- a/docs/Xcode.md
+++ b/docs/Xcode.md
@@ -2,88 +2,19 @@
## Supported Xcode versions
Homebrew supports and recommends the latest Xcode and/or Command Line
-Tools available for your platform:
+Tools available for your platform (see `OS::Mac::Xcode.latest_version` and `OS::Mac::CLT.latest_version` in [`Library/Homebrew/os/mac/xcode.rb`](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/os/mac/xcode.rb)).
-| macOS | Xcode | Command Line Tools |
-|-------|-------|--------------------|
-| 10.6 | 3.2.6 | N/A |
-| 10.7 | 4.6.3 | April 2013 |
-| 10.8 | 5.1.1 | April 2014 |
-| 10.9 | 6.2 | 6.2 |
-| 10.10 | 7.2.1 | 7.2 |
-| 10.11 | 8.2.1 | 8.2 |
-| 10.12 | 9.1 | 9.0.1 |
-| 10.13 | 9.1 | 9.0.1 |
+## Xcode compiler versions
-## Compiler version database
+See `OS::Mac::STANDARD_COMPILERS` in [`Library/Homebrew/os/mac.rb`](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/os/mac.rb).
-| Xcode | GCC 4.0 | GCC 4.2 | LLVM-GCC 4.2 | LLVM | Clang | LLVM (SVN) |
-|-------|---------|---------|--------------|------------|-----------------|------------|
-| 2.5.0 | 5370 | — | — | — | — | — |
-| 3.1.4 | 5493 | 5577 | 5555 | 2064.3 | — | — |
-| 3.2.0 | 5493 | 5646 | 5646 | 2118 | — | — |
-| 3.2.1 | 5493 | 5646 | 5646 | 2206 | — | — |
-| 3.2.2 | 5493 | 5659 | 5646 | 2207.5 | 1.0.2 | — |
-| 3.2.3 | 5494 | 5664 | 5658 | 2326.10 | 1.5 (60) | — |
-| 3.2.4 | 5494 | 5664 | 5658 | 2326.10 | 1.5 (60) | — |
-| 3.2.5 | 5494 | 5664 | 5658 | 2333.4 | 1.6 (70) | — |
-| 3.2.6 | 5494 | 5666 | 5658 | 2335.6 | 1.7 (77) | 2.9 |
-| 4.0.0 | 5494 | 5666 | 5658 | 2335.9 | 2.0 (137) | 2.9 |
-| 4.0.2 | 5494 | 5666 | 5658 | 2335.9 | 2.0 (137) | 2.9 |
-| 4.1.0 | — | 5666 | 5658 | 2335.15.00 | 2.1 (163.7.1) | 3.0 |
-| 4.2.0 | — | — | 5658 | 2336.1.00 | 3.0 (211.10.1) | 3.0 |
-| 4.3.0 | — | — | 5658 | 2336.9.00 | 3.1 (318.0.45) | 3.1 |
-| 4.3.1 | — | — | 5658 | 2336.9.00 | 3.1 (318.0.54) | 3.1 |
-| 4.3.2 | — | — | 5658 | 2336.9.00 | 3.1 (318.0.58) | 3.1 |
-| 4.3.3 | — | — | 5658 | 2336.9.00 | 3.1 (318.0.61) | 3.1 |
-| 4.4.0 | — | — | 5658 | 2336.11.00 | 4.0 (421.0.57) | 3.1 |
-| 4.4.1 | — | — | 5658 | 2336.11.00 | 4.0 (421.0.60) | 3.1 |
-| 4.5.0 | — | — | 5658 | 2336.11.00 | 4.1 (421.11.65) | 3.1 |
-| 4.5.1 | — | — | 5658 | 2336.11.00 | 4.1 (421.11.66) | 3.1 |
-| 4.5.2 | — | — | 5658 | 2336.11.00 | 4.1 (421.11.66) | 3.1 |
-| 4.6.0 | — | — | 5658 | 2336.11.00 | 4.2 (425.0.24) | 3.2 |
-| 4.6.1 | — | — | 5658 | 2336.11.00 | 4.2 (425.0.27) | 3.2 |
-| 4.6.2 | — | — | 5658 | 2336.11.00 | 4.2 (425.0.28) | 3.2 |
-| 4.6.3 | — | — | 5658 | 2336.11.00 | 4.2 (425.0.28) | 3.2 |
-| 5.0.0 | — | — | — | — | 5.0 (500.2.76) | 3.3 |
-| 5.0.1 | — | — | — | — | 5.0 (500.2.78) | 3.3 |
-| 5.0.1 | — | — | — | — | 5.0 (500.2.79) | 3.3 |
-| 5.1 | — | — | — | — | 5.1 (503.0.38) | 3.4 |
-| 5.1.1 | — | — | — | — | 5.1 (503.0.40) | 3.4 |
-| 6.0 | — | — | — | — | 6.0 (600.0.51) | 3.5 |
-| 6.0.1 | — | — | — | — | 6.0 (600.0.51) | 3.5 |
-| 6.1 | — | — | — | — | 6.0 (600.0.54) | 3.5 |
-| 6.2 | — | — | — | — | 6.0 (600.0.57) | 3.5 |
-| 6.3 | — | — | — | — | 6.1 (602.0.49) | 3.6 |
-| 6.3.1 | — | — | — | — | 6.1 (602.0.49) | 3.6 |
-| 6.3.2 | — | — | — | — | 6.1 (602.0.53) | 3.6 |
-| 6.4 | — | — | — | — | 6.1 (602.0.53) | 3.6 |
-| 7.0 | — | — | — | — | 7.0 (700.0.72) | — |
-| 7.0.1 | — | — | — | — | 7.0 (700.0.72) | — |
-| 7.1 | — | — | — | — | 7.0 (700.1.76) | — |
-| 7.1.1 | — | — | — | — | 7.0 (700.1.76) | — |
-| 7.2 | — | — | — | — | 7.0 (700.1.81) | — |
-| 7.2.1 | — | — | — | — | 7.0 (700.1.81) | — |
-| 7.3 | — | — | — | — | 7.3 (703.0.29) | — |
-| 7.3.1 | — | — | — | — | 7.3 (703.0.31) | — |
-| 8.0 | — | — | — | — | 8.0 (800.0.38) | — |
-| 8.1 | — | — | — | — | 8.0 (800.0.42.1)| — |
-| 8.2 | — | — | — | — | 8.0 (800.0.42.1)| — |
-| 8.2.1 | — | — | — | — | 8.0 (800.0.42.1)| — |
-| 8.3 | — | — | — | — | 8.1 (802.0.38) | — |
-| 8.3.1 | — | — | — | — | 8.1 (802.0.41) | — |
-| 8.3.2 | — | — | — | — | 8.1 (802.0.42) | — |
-| 8.3.3 | — | — | — | — | 8.1 (802.0.42) | — |
-| 9.0.0 | — | — | — | — | 9.0 (900.0.37) | — |
-| 9.0.1 | — | — | — | — | 9.0 (900.0.38) | — |
-| 9.1 | — | — | — | — | 9.0 (900.0.38) | — |
-
-## References to Xcode and compiler versions in code
+## Updating for new Xcode releases
When a new Xcode release is made, the following things need to be
updated:
-* `MacOS::Xcode.latest_version`
-* `MacOS::CLT.latest_version`
-* `MacOS::STANDARD_COMPILERS`
-* `MacOS::Xcode.version fallback logic`
-* ensure compiler version Regexps continue to work (`MacOS` module)
+- In [`Library/Homebrew/os/mac/xcode.rb`](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/os/mac/xcode.rb)
+ * `OS::Mac::Xcode.latest_version`
+ * `OS::Mac::CLT.latest_version`
+ * `OS::Mac::Xcode.detect_version_from_clang_version`
+- In [`Library/Homebrew/os/mac.rb`](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/os/mac.rb)
+ * `OS::Mac::STANDARD_COMPILERS`