problems.push_back(Problem(p, d));
}
-void Builder::add_target(Target *t)
+void Builder::add_target(FileTarget *t)
+{
+ targets.insert(TargetMap::value_type(t->get_path().str(), t));
+ new_tgts.push_back(t);
+}
+
+void Builder::add_target(VirtualTarget *t)
{
targets.insert(TargetMap::value_type(t->get_name(), t));
new_tgts.push_back(t);
// Apply what-ifs
for(StringList::iterator i=what_if.begin(); i!=what_if.end(); ++i)
{
- Target *tgt = get_target((cwd/ *i).str());
+ FileTarget *tgt = dynamic_cast<FileTarget *>(get_target((cwd/ *i).str()));
if(!tgt)
{
IO::print(IO::cerr, "Unknown what-if target %s\n", *i);
if(tgt)
{
- Target *real_tgt = tgt;
- if(Install *inst = dynamic_cast<Install *>(tgt))
- real_tgt = &inst->get_source();
+ Target *real_tgt = tgt->get_real_target();
/* Ignore dynamic libraries from local packages unless library mode is
DYNAMIC */