Xcode 15.2でswiftコンパイラの開発環境を作る
Xcodeプロジェクトを生成するまではGetting Startedに従うとします。ここでは、最後のUsing Ninja with Xcodeの部分を添付画像付きで説明したいと思います。添付画像はXcode 15.2のときのものを使用します。
まず、空のワークスペースを作ります。File > New > Workspace...
を選択します。
好きな場所に、ワークスペース名を付けて作ります。ここでは、SwiftDev
とします。
次に、ワークスペースにSwift.xcodeproj
を追加します。ナビゲーションの何もないところで、右クリックしてAdd Files to "SwiftDev"...
を選択します。
Swift.xcodeproj
のパスはbuild/Xcode-*/swift-macosx-*/Swift.xcodeproj
のようになっているはずです。
ワークスペースを開くと、次のような表示になりますが、Manually Manage Schemes
を選択します。
つづいてninjaのターゲットを追加します。File > New > Target...
を選択します。
Other
のExternal Build System
を選択します。
Product Name
などは適当に決めます(ここではSwiftDev
としました)。Build Tool
だけはwhich ninja
で出てくるパスを設定します。
XcodeのプロジェクトSwift
をタップし、ターゲットSwiftDev
を選択し、Info
を設定します。Directory
はbuild/Ninja-*/swift-macosx-*
を設定します。Argumentsは目的に応じて変えるのですが、ここではbin/swift-frontend
にします。
最後にSwiftDev
ターゲットを追加します。実行時の設定も必要なのでManage Schemes...
を選択します。
次のキャプチャのようになるので、+
ボタンをクリックします。
Target
をSwiftDev
にして、OK
をクリックして追加します。
ここまでで、ビルドまではできるのですが、同時に実行までできるようにしたいと思います。こうすることで、実行中にデバッガで止めたりでき、実践的?な開発環境が出来上がります。
ターゲットをSwiftDev
にした状態で、SwiftDev
をクリックをして出てくるEdit Scheme
を選択します。
Run > Info > Executable
で、ninjaの生成するswift-frontend
を選択します。これはOther...
にしないとできません。
build/Ninja-*/swift-macosx-*/bin/swift-frontend
を選択します。
Arguments
はswift-frontend
の好きなオプションを設定します。ここでは-typecheck
とtest.swift
にしています。
Options
のUse custom working directory
を有効にしてファイルパスを設定すると、test.swift
の部分を単純にできます。
以上で準備ができました。あとは通常のiOSアプリと同様にデバッガでブレイクポイントを設定すると、そこで停止させたりできるようになります。標準出力はXcodeの画面右下のConsoleに表示されます。
Discussion