Avatar
Avatar
Yuta Saito
これまでビルド済みのバイナリを配布してたので、「ホストのコンパイラ」というのがそもそもcartonから見えてなかった(無いかもしれない。特にLinuxで。)SwiftPMのプラグインにしたことで常に「ホストのコンパイラ」が存在するようになった
omochimetaru 6/8/2024 1:26 PM
確かにややこしい。cartonがSwiftを用意しようとしてるのに、そのSwiftのバージョンを判定しようとしてる。
1:27 PM
でもシンプルに carton-driver が実行された時に、 PATH から見える swift を基準にしてもいい気がするけど
1:27 PM
ちょうどさっき手元で試したんだけど、 #if compiler(>=6.0) #error("6.0") #elseif compiler(>=5.10) #error("5.10") #elseif compiler(>=5.9) #error("5.9") #endif これで、目の前の $ swift のバージョンを判定するのはうまくいきそうだった ( $ swift --version をパースするのはちょっと怪しさがある気がしている ) (edited)
1:29 PM
「1. cartonコンパイル時のswift」だと、パッケージで入れた時はうまくいくけど、 「2. carton-driver実行にみつけたswift」にすれば、パッケージの場合もうまく行くし、carton driverをマシンレベルでインストールしてる環境でもうまく動く (edited)
1:29 PM
ので、後者の方が良さそうな気がするけど、どうでしょうか
1:32 PM
いや、 1. でも別にそう困ることは無い気はするな・・・ 結局マシン環境で見つかる $ swift は原則一つなので
1:33 PM
export TOOLCHAINS で切り替えた時に carton-driver はそのまんま同じマシンインストール版を使っていてもうまく切り替わるみたいな事か
1:33 PM
俺が色々開発上で生じるややこしい状況を考えてるだけで一般ユーザには不要な混乱をもたらすだけか? (edited)