2016-03-09

Swift で複数ファイルのコンパイルを行なう

Swift ではスクリプト・ファイルのような実行が可能。

例えば Hello.swift というファイルを次のように書いてみる。

#!/usr/bin/env swift

print("Hello, World!")

これを swift コマンドで実行する。

$ swift --version
Apple Swift version 2.1.1 (swiftlang-700.1.101.15 clang-700.1.81)
Target: x86_64-apple-darwin15.3.0
$ swift Hello.swift
Hello, World!

実行権限を付けることも可能。

$ chmod +x Hello.swift
$ ./Hello.swift
Hello, World!

複数ファイルのコンパイル

Swift は swiftc コマンドを使ってコンパイルを行なうこともできる。スクリプト実行より高速になることと、複数の Swift スクリプトを一つの実行ファイルにまとめられる点がメリット。

この場合、main.swift というファイルが起点になる点に注意。

あと、ぼくが試した時は -sdk フラグに SDK のパスを指定する必要があった。少しハマったので、Makefile をここに写しておく。実行ファイル名は foo。

OUTPUT = foo

SDKPATH = `xcrun --show-sdk-path --sdk macosx`
SWIFTFLAGS = -sdk $(SDKPATH)
SOURCES = main.swift Foo.swift Bar.swift
SWIFTC = /usr/bin/swiftc

$(OUTPUT): $(SOURCES)
 $(SWIFTC) $(SWIFTFLAGS) $^ -o $@

あとがき

Swift で書くスクリプト言語については、まだ興味を持った程度。少しずつ学んでいくつもり。

No comments:

Post a Comment