Я уже написал пример такой тулзы — cppinclude
есть ещё include-what-you-see (вроде)
Правда, я не уверен что они подойдут для этой задачи, но посмотреть можно
include-what-you-use
Она умеет самостоятельно переписывать инклюды, но чтобы добиться адекватного результата придется писать конфиги и вписывать метаинформацию в хедеры.
Кроме того она еще не поддерживает 11 кланг, который недавно зарелизился. Информация устарела - уже поддерживает.
Из плюсов, она умеет читать compilation database, так что ее сравнительно легко интегрировать в проект на cmake.