diff --git a/Library/Homebrew/shims/linux/super/swift b/Library/Homebrew/shims/linux/super/swift new file mode 120000 index 0000000000..cdc038de8a --- /dev/null +++ b/Library/Homebrew/shims/linux/super/swift @@ -0,0 +1 @@ +../../super/swift \ No newline at end of file diff --git a/Library/Homebrew/shims/super/cc b/Library/Homebrew/shims/super/cc index fbe556f8b0..af5bd8c7f8 100755 --- a/Library/Homebrew/shims/super/cc +++ b/Library/Homebrew/shims/super/cc @@ -79,6 +79,8 @@ class Cmd "#{ENV["HOMEBREW_PREFIX"]}/opt/llvm/bin/#{Regexp.last_match(1)}" when /\w\+\+(-\d+(\.\d)?)?$/ case ENV["HOMEBREW_CC"] + when "swift_clang" + "#{ENV["HOMEBREW_PREFIX"]}/opt/swift/libexec/bin/clang++" when /clang/ "clang++" when /llvm-gcc/ @@ -91,6 +93,8 @@ class Cmd # HOMEBREW_CC regardless of what name under which the tool was invoked. if ENV["HOMEBREW_CC"] == "llvm_clang" "#{ENV["HOMEBREW_PREFIX"]}/opt/llvm/bin/clang" + elsif ENV["HOMEBREW_CC"] == "swift_clang" + "#{ENV["HOMEBREW_PREFIX"]}/opt/swift/libexec/bin/clang" else ENV["HOMEBREW_CC"] end diff --git a/Library/Homebrew/shims/super/swift b/Library/Homebrew/shims/super/swift new file mode 100755 index 0000000000..8d46e5174d --- /dev/null +++ b/Library/Homebrew/shims/super/swift @@ -0,0 +1,15 @@ +#!/bin/bash + +# Ensure we use Swift's clang when performing Swift builds. + +export CC="clang" +export CXX="clang++" + +# swift_clang isn't a shim but is used to ensure the cc shim +# points to the compiler inside the swift keg +export HOMEBREW_CC="swift_clang" +export HOMEBREW_CXX="swift_clang++" + +# HOMEBREW_OPT is set by extend/ENV/super.rb +# shellcheck disable=SC2154 +exec "${HOMEBREW_OPT}/swift/bin/swift" "$@"