OpenSource版Swiftをビルドしてみた

概要

OpenSource版のSwiftがリリースされたのでビルドしてみました。MacOSXであれば、ここの手順を参考にすると問題なくビルドできました。

環境は、MacOSX 10.11.1(EL Captain)です。

ビルド手順

ソースコードをダウンロードする

$ git clone git@github.com:apple/swift.git swift

上記メソッドは失敗したのでHTTPプロトコルで取得しました。

git clone https://github.com/apple/swift-corelibs-xctest.git
git clone https://github.com/apple/swift-corelibs-foundation.git
git clone https://github.com/apple/corelibs-xctest.git
git clone https://github.com/apple/swift-package-manager.git
git clone https://github.com/apple/swift-llbuild.git

シンボリックリンクを作成する

シンボリックリンクを作成しました。ビルドファイルにディレクトリ名が書かれているようなので必要な処理です。

ln -s swift-package-manager swiftpm
ln -s swift-llbuild llbuild
ln -s swift-lldb lldb
ln -s swift-llvm llvm
ln -s swift-cmark cmark
ln -s swift-clang clang

必要なモジュールを準備する

brewでモジュールをインストールしました。

$ brew install cmake ninja

ビルドする

ビルド用スクリプトを実行します。-hでオプションが表示されます。必要に応じてオプションを追加してください。

$ utils/build-script

実行する

ビルドが成功すると、buildディレクトリが作成されます。ここに各環境用のバイナリが作成されます。

[build]$ ls -l Ninja-DebugAssert
total 0
drwxr-xr-x  15 unokun  staff   510 12  4 21:41 cmark-macosx-x86_64
drwxr-xr-x  27 unokun  staff   918 12  4 21:41 llvm-macosx-x86_64
drwxr-xr-x  43 unokun  staff  1462 12  4 21:41 swift-macosx-x86_64

ビルドしたモジュールを実行してみます。以下のようにバージョンが表示されれば成功です。

$ ./build/Ninja-DebugAssert/swift-macosx-x86_64/bin/swift -version
Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift bbab40abc2)
Target: x86_64-apple-macosx10.9

Next Step

XCodeをつかってソースを編集できるようにする予定です。

関連情報