Plugin から別ディレクトリにあるネイティブコードを参照する時は Symbolic Link を使う

Swift Package Manager の Plugin から Sources や 親階層の別ディレクトリにあるネイティブコードを参照したい時は、シンボリックリンクを使えばいいようです。 swift-docc-plugin が参考になりました。

github.com

この方法は Plugin 間でコードの共有ができるまでの間の一時的なワークアラウンドとされています。

This is a workaround until SwiftPM has native support for sharing code between plugins.

Sources/YourTool があったとして、 Plugins/YourTool から参照としたいとします。 この時 Plugins/YourTool/Symbolic-Links を作ってそこにシンボリックリンクを作成してあげるだけです。

$ cd Plugins/YourTool/Symbolic-Links
$ ln -s ../../../Sources/YourTool YourTool

とても単純な話ですが、 Command plugin を自作する際にインプットした情報の備忘録として残しておこうと思います。