Boost.Build が #include ディレクティブを再帰的にスキャンするヘッダー ファイルを特定のディレクトリまたはディレクトリのセットに制限する方法はありますか? つまり、プロジェクト内のヘッダー ファイルのみを再帰的にスキャンしたいと考えています。それらの外部依存関係は変更されないことを私は知っています (そして、Boost と Qt はかなり大きいです)。依存関係ツリーに約 50,000 のターゲットがあり、処理に時間がかかります (ファイルが実際に変更されていなくても、ビルド時間は 1 ~ 2 分です)。
これまでに見つけた唯一の解決策は、INCLUDE 環境変数を利用することです (私は MSVC を使用しています)。これは、Boost.Build にインクルード パスを通知する必要がないことを意味します (私はこの機能を使用しています)。それらをスキャンしないでください。これはちょっとしたハックのようです。
ほとんどすぐにこれに遭遇したにもかかわらず、同様の問題を経験している他の人を見つけることができなかったので、私は明らかな何かを見逃しているに違いないと感じています. 一番近いのはここです。
デバッグ出力 (bjam -d 3) から判断すると、ほとんどのヘッダー ファイルも複数回スキャンされます...これが依存関係として複数回追加されることを意味するかどうかはわかりませんが、確かにファイルとコンテンツ全体のスキャンを合計する必要がありますか?
ヘッダー ファイルが変更されないことを保証できる特定のディレクトリまたは一連のディレクトリをわざわざスキャンしないように指示できれば、それは完璧です。