Xcode 9.2

Update all the necessary versions but also cleanup some related
indentation and point the `Xcode.md` document to the code rather than
duplicating it there (which means it sometimes ends up outdated).
This commit is contained in:
Mike McQuaid 2017-12-08 14:59:15 +00:00
parent f52d69abea
commit 1aee4e1e1c
2 changed files with 23 additions and 89 deletions

View File

@ -17,13 +17,13 @@ module OS
when "10.9" then "6.2" when "10.9" then "6.2"
when "10.10" then "7.2.1" when "10.10" then "7.2.1"
when "10.11" then "8.2.1" when "10.11" then "8.2.1"
when "10.12" then "9.1" when "10.12" then "9.2"
when "10.13" then "9.1" when "10.13" then "9.2"
else else
raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease? raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease?
# Default to newest known version of Xcode for unreleased macOS versions. # Default to newest known version of Xcode for unreleased macOS versions.
"9.1" "9.2"
end end
end end
@ -141,7 +141,11 @@ module OS
end end
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 # installed CLT version. This is useful as they are packaged
# simultaneously so workarounds need to apply to both based on their # simultaneously so workarounds need to apply to both based on their
# comparable version. # comparable version.
@ -166,7 +170,7 @@ module OS
when 80 then "8.0" when 80 then "8.0"
when 81 then "8.3" when 81 then "8.3"
when 90 then "9.0" when 90 then "9.0"
else "9.0" else "9.0"
end end
end end
@ -217,14 +221,13 @@ module OS
# on the older supported platform for that Xcode release, i.e there's no # 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. # CLT package for 10.11 that contains the Clang version from Xcode 8.
case MacOS.version case MacOS.version
when "10.13" then "900.0.38" when "10.13" then "900.0.39.2"
when "10.12" then "900.0.38" when "10.12" then "900.0.39.2"
when "10.11" then "800.0.42.1" when "10.11" then "800.0.42.1"
when "10.10" then "700.1.81" when "10.10" then "700.1.81"
when "10.9" then "600.0.57" when "10.9" then "600.0.57"
when "10.8" then "503.0.40" when "10.8" then "503.0.40"
else else "425.0.28"
"425.0.28"
end end
end end
@ -232,7 +235,7 @@ module OS
case MacOS.version case MacOS.version
when "10.13" then "9.0.0" when "10.13" then "9.0.0"
when "10.12" then "8.0.0" when "10.12" then "8.0.0"
else "1.0.0" else "1.0.0"
end end
end end

View File

@ -2,88 +2,19 @@
## Supported Xcode versions ## Supported Xcode versions
Homebrew supports and recommends the latest Xcode and/or Command Line 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 | ## Xcode compiler versions
|-------|-------|--------------------|
| 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 |
## 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) | ## Updating for new Xcode releases
|-------|---------|---------|--------------|------------|-----------------|------------|
| 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
When a new Xcode release is made, the following things need to be When a new Xcode release is made, the following things need to be
updated: updated:
* `MacOS::Xcode.latest_version` - In [`Library/Homebrew/os/mac/xcode.rb`](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/os/mac/xcode.rb)
* `MacOS::CLT.latest_version` * `OS::Mac::Xcode.latest_version`
* `MacOS::STANDARD_COMPILERS` * `OS::Mac::CLT.latest_version`
* `MacOS::Xcode.version fallback logic` * `OS::Mac::Xcode.detect_version_from_clang_version`
* ensure compiler version Regexps continue to work (`MacOS` module) - In [`Library/Homebrew/os/mac.rb`](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/os/mac.rb)
* `OS::Mac::STANDARD_COMPILERS`