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/linux/super/swiftc b/Library/Homebrew/shims/linux/super/swiftc new file mode 120000 index 0000000000..7e5f6f29f7 --- /dev/null +++ b/Library/Homebrew/shims/linux/super/swiftc @@ -0,0 +1 @@ +swift \ No newline at end of file diff --git a/Library/Homebrew/shims/mac/super/swift b/Library/Homebrew/shims/mac/super/swift index 3b8949f31d..0573e95853 100755 --- a/Library/Homebrew/shims/mac/super/swift +++ b/Library/Homebrew/shims/mac/super/swift @@ -11,5 +11,5 @@ if [[ -z "${SDKROOT}" && -n "${HOMEBREW_SDKROOT}" ]]; then export SDKROOT=${HOMEBREW_SDKROOT} fi -try_exec_non_system "swift" "$@" -safe_exec "/usr/bin/swift" "$@" +try_exec_non_system "${SHIM_FILE}" "$@" +safe_exec "/usr/bin/${SHIM_FILE}" "$@" diff --git a/Library/Homebrew/shims/mac/super/swiftc b/Library/Homebrew/shims/mac/super/swiftc new file mode 120000 index 0000000000..7e5f6f29f7 --- /dev/null +++ b/Library/Homebrew/shims/mac/super/swiftc @@ -0,0 +1 @@ +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..a659de25e6 --- /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/${0##*/}" "$@" diff --git a/Library/Homebrew/shims/super/swiftc b/Library/Homebrew/shims/super/swiftc new file mode 120000 index 0000000000..7e5f6f29f7 --- /dev/null +++ b/Library/Homebrew/shims/super/swiftc @@ -0,0 +1 @@ +swift \ No newline at end of file