Swift

WindowsでどうにかSwift環境を作る

ひょんなことから、Swiftを動作させる必要が生じた。
が、家にMacがない。Win10しかない。
で、どうするよっていうお話。

仮想環境を用意する

使っているのがWindows10 Proであれば、Hyper-Vが使える。Homeだったらどこかから仮想環境作成ソフトを落としてくる。無料ならVirtualBoxがある。VMWareも個人利用に限られるが、無償評価版がある(2018.08.09現在。ライセンスについては自己責任っ)

Ubuntuをインストール

Swiftのバイナリはここからダウンロードできるんだが、バージョンに強烈な制限がある。

最初、既に作ってある仮想環境(UbuntuServer18.04)で動作させようと試みたが、依存関係地獄にハマり断念。ここは素直に、古いUbuntuの環境を作ったほうがいい。
レガシーなUbuntuのisoは、ここで手に入る。
何故か16.10がない。黒歴史なのか!?
ということで、Ubuntu Server16.4のisoを落とし、仮想環境をぶっ立てた。

必要なブツをインストール

$ cd ~
$ sudo apt-get update
$ sudo apt-get install clang libicu-dev libcurl4-openssl-dev libssl-dev
$ wget https://swift.org/builds/swift-4.1.3-release/ubuntu1604/swift-4.1.3-RELEASE/swift-4.1.3-RELEASE-ubuntu16.04.tar.gz

バージョンに注意。16.10を使うのであれば、16.10用のtarが必要。解凍する。

$ tar xzvf swift-4.1.3-RELEASE-ubuntu16.04.tar.gz

すると$HOMEに、swift-4.1.3-RELEASE-ubuntu16.04みたいなフォルダができる。

パスを通す

$ sudo apt-get install -y vim
$ vim ~/.profile

profileの最下行に下記を追加

$HOME/.profile
パス(~/swift-4.1.3...の部分)は各自、展開したフォルダパスにあわせる

 17 fi
 18
 19 # set PATH so it includes user's private bin directories
 20 PATH="$HOME/bin:$HOME/.local/bin:$PATH"
 21 # これ↓
 22 export PATH=~/swift-4.1.3-RELEASE-ubuntu16.04/usr/bin:$PATH

profile再読み込み。

$ source ~/.profile

確認

$ swift --version
Swift version 4.1.3 (swift-4.1.3-RELEASE)
Target: x86_64-unknown-linux-gnu

うまくいってたらこんな風に表示される

Hello World!!

適当にフォルダを作る

$ mkdir swift-project
$ cd swift-project

下記コマンド実行

$ swift package init --type executable

Sources/<ProjectName>/main.swiftに、初めから以下のようなコードが挿入されている。

$ cat Sources/swift-project/main.swift
print("Hello, world!")

とりあえずこれをビルド。

$ swift build
Compile Swift Module 'swift_project' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/swift-project

で、実行。

$ ./.build/debug/swift-project
Hello, world!

こんにちは世界!!