diff options
Diffstat (limited to 'bdep/init.cxx')
-rw-r--r-- | bdep/init.cxx | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bdep/init.cxx b/bdep/init.cxx index 04afd3c..1e794f8 100644 --- a/bdep/init.cxx +++ b/bdep/init.cxx @@ -94,6 +94,33 @@ namespace bdep continue; } + // If this configuration is forwarded, verify there is no other + // forwarded configuration that also has this package. + // + if (c->forward) + { + using query = bdep::query<configuration>; + + for (const shared_ptr<configuration>& o: + pointer_result (db.query<configuration> (query::forward))) + { + if (o == c) + continue; + + if (find_if (o->packages.begin (), + o->packages.end (), + [&p] (const package_state& s) + { + return p.name == s.name; + }) != o->packages.end ()) + { + fail << "forwarded configuration " << *o << " also has package " + << p.name << " initialized" << + info << "while initializing in forwarded configuration " << *c; + } + } + } + // If we are initializing multiple packages, print their names. // if (verb && pkgs.size () > 1) |