等待許久,終於等到 Swift Open Source
Linux Version
可以先用上面的 dockerfile
快速建立一個有 swift 的 client。
Swift 安裝 (OSX) Swift Download
安裝 pkg 後,他會將 toolchain 安裝在 /Library/Developer/Toolchains/
1 | ls /Library/Developer/Toolchains/ |
然後關閉 XCode,執行 xcrun launch-with-toolchain /Library/Developer/Toolchains/swift-latest.xctoolchain
他會以 toolchain 的 swift 版本,開啟 XCode
最後,記得把 toolchain 加入到 PATH
1 | export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}" |
測試安裝是否成功
1 | swift build --help |
如果沒有安裝成功的話會出現類似下面的字眼(要選 Development Snapshots,不是 Release Snapshots)
1 | <unknown>:0: error: no such file or directory: 'build' |
開始寫第一份 Package
專案結構如下。
1 | tree |
大致上,package 內需要一個 Package.swift
Source Code 要放在 Sources 目錄
,如果這個 Package
是執行的話,需要加入 main.swift
(entry point)。
或者只是把它當成 Lib 的話,只要把你想要公開的功能設定成 public 就可以了(名稱就不用是 main.swift
)。
寫下第一個 Hello Word!!
1 | print("Hello Yume") |
Build
then Run
1 | yume:Swift22 yume$ pwd |
Swift Packagae Manager
Source Layouts
swift package manager 的一些使用約束。
swift package manager 會因為你的 src layout。
進行 swift build
後,會有不同的輸出結果
1 | example/ |
輸出:
example/.build/debug/example.a
1 | example/Sources/foo/foo.swift |
輸出:
example/.build/debug/foo.a
example/.build/debug/bar.a
1 | example/Sources/foo/main.swift |
輸出:
example/.build/debug/foo
example/.build/debug/bar.a
其他規則:
Tests
目錄會被忽略Sources
,Source
,srcs
,src
目錄下會變成模組(Module)- 可以接受沒有
Sources 目錄
,此時它會將根目錄(root directory)
視為單一模組(可以將code 放在根目錄或者其子目錄,simple 專案的寫法)。
Package.swift
1 | import PackageDescription |
針對各個平台
1 | #if os(OSX) |