前回の日記で、Swiftのソースビルドがうまく行かなかった。
いろいろ調査していると、どうやらディスク容量が足りないのと、メモリ容量が足りないようだった。 最初は1GBのメモリを用意していたが、次に4GBでビルドしてみる。これでもtopをしてみるとメモリを使い切っているようだった。 そこで、一気にメモリを8GBまで増強するようにVagrantfileを指定した。
config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine # vb.gui = true # Customize the amount of memory on the VM: vb.memory = "8192" end
これでvagrantの箱を構築した。利用したのはUbuntu15.04だ。
config.vm.box = "ubuntu-1504" config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/vivid/current/vivid-server-cloudimg-amd64-vagrant-disk1.box"
基本的に、swiftのページに書いてあることをやるだけだ。
$ sudo apt-get install git cmake ninja-build clang uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config
$ git clone https://github.com/apple/swift.git swift
$ git clone https://github.com/apple/swift-llvm.git llvm
$ git clone https://github.com/apple/swift-clang.git clang
$ git clone https://github.com/apple/swift-lldb.git lldb
$ git clone https://github.com/apple/swift-cmark.git cmark
$ git clone https://github.com/apple/swift-llbuild.git llbuild
$ git clone https://github.com/apple/swift-package-manager.git swiftpm
$ git clone https://github.com/apple/swift-corelibs-xctest.git
$ git clone https://github.com/apple/swift-corelibs-foundation.git
これをChefに記述しておいた。さらに、swift/utils/build-scriptを実行する。
# Download source code of Swift git "/home/vagrant/swift/swift" do repository "https://github.com/apple/swift.git" user "vagrant" group "vagrant" action :sync end git "/home/vagrant/swift/llvm" do repository "https://github.com/apple/swift-llvm.git" user "vagrant" group "vagrant" action :sync end ... execute "Execute Swift-Build" do cwd "/home/vagrant/swift" command " sudo ./swift/utils/build-script" user "root" group "root" action :run end
これで構築完了できた!ただし、全体のビルドだけで3~4時間はかかった気がする。。。
swiftcを使って、ビルドしてみる。
print("Hello World")
ビルドと実行。
$ swiftc printme.swift -o printme
$ ./printme
Hello World
うまくいった!