見切り発車

とりあえずかきとめたい

ClangCL のexe の差し替えの続き

2022-12-01 追記: 後から調べた以下の記事のほうがまっとうな手法です。 uyamae.hatenablog.com


Visual Studio のClangCL ツールセットのコンパイラを差し替える - 見切り発車

Visual Studio 標準のClang/LLVM のカスタマイズ方法を試す - 見切り発車

libclang に渡すコンパイルオプションやインクルードパスなどの情報をvcxproj から取り出そうとほそぼそと手探りで進めていますが、ネット上に散らばった情報をつまんでうろうろした結果として公式に用意されているMSBuild のドキュメントを頭から読んだほうがいいよなやっぱり、となりました。うすうす気づいてはいました。

ビルドプロセスのカスタマイズについては

ビルドのカスタマイズ - MSBuild | Microsoft Learn

この辺りで説明されていますが、おおむねprops ファイルは標準的なプロセスの前にインポートされ、targets ファイルはあとからインポートされる、というようなことが書かれています。

前にDirectory.Build.props でClangCL.exe を差し替えようと試したけどうまくいきませんでしたが、Directory.Build.targets で指定してやると反映されるようです。Github においてるテストプロジェクトも更新しました。

clang-hook/makeproj.ps1 at master · uyamae/clang-hook · GitHub

名前からしてprops にはプロパティ、targets にはターゲットを指定するものかと思いましたがそう単純というか厳密なものではないようです。