- for(Dependencies::const_iterator i=deps_to_add.begin(); i!=deps_to_add.end(); ++i)
- if(find(depends.begin(), depends.end(), *i)==depends.end())
- add_dependency(**i);
+ for(Target *d: deps_to_add)
+ if(FileTarget *file = dynamic_cast<FileTarget *>(d))
+ {
+ auto i = lower_bound(headers, file);
+ if(i==headers.end() || *i!=file)
+ {
+ headers.insert(i, file);
+ find_dependencies(*file, headers);
+ }
+ }