homebrew-core/Formula/swift.rb
2015-12-23 18:41:43 +00:00

108 lines
3.4 KiB
Ruby

class Swift < Formula
desc "High-performance system programming language"
homepage "https://github.com/apple/swift"
url "https://github.com/apple/swift/archive/swift-2.2-SNAPSHOT-2015-12-18-a.tar.gz"
version "2.2-SNAPSHOT-2015-12-18-a"
sha256 "2ff6c780f1768e410e444915d6830048025a7f353c9a4bc30456bbd40ad33951"
stable do
swift_tag = "swift-#{version}"
resource "cmark" do
url "https://github.com/apple/swift-cmark/archive/0.22.0.tar.gz"
sha256 "7fa11223b9a29a411fbc440aba2a756ccc8b6228d8c2b367e8f568968e3eb569"
end
resource "clang" do
url "https://github.com/apple/swift-clang/archive/#{swift_tag}.tar.gz"
sha256 "a626feb26119cde3f9df15549d8a53028c704c5deba5e84b60ba434398a529da"
end
resource "llvm" do
url "https://github.com/apple/swift-llvm/archive/#{swift_tag}.tar.gz"
sha256 "6d69cd1ea9bb830bc7f21a80c30d5be29e55878b9f9f46ef4faa2fd02d36b160"
end
end
bottle do
sha256 "d6702f2d52b0f570c3851e88605529e3102df8b3bf243d8c8db0cbe18b63d027" => :el_capitan
sha256 "6d5ed861ec71459e6671a534f52e0e449e9025bdad1a6faab6dc3bc843aa4af8" => :yosemite
end
head do
url "https://github.com/apple/swift"
resource "cmark" do
url "https://github.com/apple/swift-cmark.git"
end
resource "clang" do
url "https://github.com/apple/swift-clang.git", :branch => "stable"
end
resource "llvm" do
url "https://github.com/apple/swift-llvm.git", :branch => "stable"
end
end
keg_only :provided_by_osx, "Apple's CLT package contains Swift."
depends_on "cmake" => :build
depends_on "ninja" => :build
depends_on :xcode => ["7.0", :build]
def install
workspace = buildpath.parent
build = workspace/"build"
ln_sf buildpath, "#{workspace}/swift"
resources.each { |r| r.stage("#{workspace}/#{r.name}") }
mkdir build do
system "#{buildpath}/utils/build-script-impl",
"--build-dir=#{build}",
"--cmark-build-type=Release",
"--llvm-build-type=Release",
"--swift-build-type=Release",
"--swift-stdlib-build-type=Release",
"--lldb-build-type=Release",
"--llvm-enable-assertions=false",
"--swift-enable-assertions=false",
"--swift-stdlib-enable-assertions=false",
"--cmake-generator=Ninja",
"--workspace=#{workspace}",
"--skip-test-cmark",
"--skip-test-lldb",
"--skip-test-swift",
"--skip-test-llbuild",
"--skip-test-swiftpm",
"--skip-test-xctest",
"--skip-test-foundation",
"--skip-test-validation",
"--skip-test-optimized",
"--skip-build-lldb",
"--skip-build-llbuild",
"--skip-build-swiftpm",
"--skip-build-xctest",
"--skip-build-foundation",
"--build-args=-j#{ENV.make_jobs}",
"--lldb-use-system-debugserver",
"--install-prefix=#{prefix}",
"--skip-ios",
"--skip-tvos",
"--skip-watchos",
"--darwin-deployment-version-osx=#{MacOS.version}",
"--build-jobs=#{ENV.make_jobs}"
end
bin.install "#{build}/swift-macosx-x86_64/bin/swift",
"#{build}/swift-macosx-x86_64/bin/swiftc"
(lib/"swift").install "#{build}/swift-macosx-x86_64/lib/swift/macosx/",
"#{build}/swift-macosx-x86_64/lib/swift/shims/"
end
test do
(testpath/"test.swift").write 'print("test")'
system "#{bin}/swiftc", "test.swift"
assert_equal "test\n", shell_output("./test")
end
end