MingwDllTool::MingwDllTool(Builder &b, const Architecture &a):
Tool(b, a, "DLL")
-{ }
+{
+ set_command("dlltool", true);
+}
Target *MingwDllTool::create_target(const list<Target *> &sources, const string &)
{
SharedLibrary &shlib = dynamic_cast<SharedLibrary &>(*sources.front());
list<ObjectFile *> objs;
- const Target::Dependencies &depends = shlib.get_dependencies();
- for(Target::Dependencies::const_iterator i=depends.begin(); i!=depends.end(); ++i)
- if(ObjectFile *obj = dynamic_cast<ObjectFile *>(*i))
+ for(Target *d: shlib.get_dependencies())
+ if(ObjectFile *obj = dynamic_cast<ObjectFile *>(d))
objs.push_back(obj);
ExportDefinitions *exp = new ExportDefinitions(builder, *shlib.get_component(), objs);
return 0;
}
-void MingwDllTool::do_prepare()
-{
- set_executable("dlltool", true);
-}
-
Task *MingwDllTool::run(const Target &target) const
{
const ImportLibrary *imp = dynamic_cast<const ImportLibrary *>(&target);
}
else
{
- const Target::Dependencies &depends = exp->get_dependencies();
- for(Target::Dependencies::const_iterator i=depends.begin(); i!=depends.end(); ++i)
- {
- if(ObjectFile *obj = dynamic_cast<ObjectFile *>(*i))
+ for(Target *d: exp->get_dependencies())
+ if(ObjectFile *obj = dynamic_cast<ObjectFile *>(d))
argv.push_back(relative(obj->get_path(), work_dir).str());
- }
// XXX Should use dllexport, but that has some other problems to solve
argv.push_back("--export-all-symbols");