とりあえず Windows 版 Swift を試す
参考
これを普通に使ってる物理マシンでやるのはおすすめしない
Visual Studio 2019 を入れる (一部コンポーネントがSwiftで書いたコードのビルドに必要)
落とした vs_Community.exe を
code:install-components.bat
vs_Community.exe --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^
--add Microsoft.VisualStudio.Component.Windows10SDK.17763
で起動してそのままインストール
「ワークロードなしで続行しますか?」は無視して「続行」を選択
このへんでVMのスナップショットを取っておくと良いかもしれない (忘れた)
Windows 版 Swift を落とす
その行の Stages の一番右のチェックマーク ✅ をクリックする
カーソルをホバーすると package Installer: Success から始まるテキストが出てくるやつ
ビルドログが出るので 1 artifact produced のリンクになってる 1 artifact を押す
すると Artifacts 一覧が開くので installer.exe の行にホバーすると出てくる右端の 「…」をクリックして Download Artifacts を押す
めっちゃ右端なのでブラウザのウィンドウがある程度でかいと視界に入らないのが注意点
参考画像https://gyazo.com/47bf54cc36c1c81fc14c5997203f3c1c
すると installer.exe.zip が降ってくる
その中の installer.exe¥installer.exe を起動して Install (UACを求められる)
最後におまじない (これをしないとたぶん Foundation.framework が使えない)
x64 Native Tools Command Prompt for VS 2019 を 管理者で実行
code:magic.bat
set SDKROOT=%SystemDrive%\Library\Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk
copy "%SDKROOT%\usr\share\ucrt.modulemap" "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap"
copy "%SDKROOT%\usr\share\visualc.modulemap" "%VCToolsInstallDir%\include\module.modulemap"
copy "%SDKROOT%\usr\share\visualc.apinotes" "%VCToolsInstallDir%\include\visualc.apinotes"
copy "%SDKROOT%\usr\share\winsdk.modulemap" "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap"
をコピペ
管理者で実行してないとコケる
実際に Swift でコンパイルする
cmd.exe を起動する
code:build-my-code.bat
set SDKROOT=%SystemDrive%/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk
swiftc -sdk %SDKROOT% -I %SDKROOT%\usr\lib\swift -L %SDKROOT%\usr\lib\swift\windows -emit-executable test.swift -o test.exe
でビルドする
と test.exe ができるのでそれを実行する
注意点
-o で .exe 付きの名前を指定しないと普通に拡張子なしのファイルが出てくる
ので付けよう
-L %SDKROOT%\usr\lib\swift\windows がないとリンクでコケる
ので付けよう
swift は動かん
REPLは無言で終了する
<unknown>:0: error: could not load the swift standard library になる
ので swiftc を使おう
-I %SDKROOT%\usr\lib\swift がないとimportでコケる
ので付けよう
ここまでやれば動くはず!
https://gyazo.com/b600e3b812c32534335e84f468e3ef18
動いた様子
おまけ
そのまま別の環境にexeを持っていっても動かない
https://gyazo.com/7fa0613bd74b17e18a9ddac64c232427
適当にdllを全部コピペするとかしないといけなさそう
ライセンス周りどうなってるんだろう?
とりあえず
C:¥Library¥Swift-development¥bin¥*.dll
C:¥icu-67¥usr¥bin¥*.dll
を手でexeと同じ階層に入れたら動きはした