X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.cpp;h=6794842c50d2c872e8ac36e560d2d2dc58fd624c;hb=4ba3ef9601166127d0782b3e6a3352b71db7ccc9;hp=f894de08fda7bfb55d0bade32d1f94055a7d26b9;hpb=f76c063eb9b792088e034ffb4c2f173b843e8c57;p=builder.git diff --git a/source/builder.cpp b/source/builder.cpp index f894de0..6794842 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -21,6 +21,7 @@ #include "gnucxxcompiler.h" #include "gnulinker.h" #include "installedfile.h" +#include "mingwdlltool.h" #include "package.h" #include "pkgconfiggenerator.h" #include "sharedlibrary.h" @@ -203,6 +204,8 @@ Builder::Builder(int argc, char **argv): toolchain.add_tool(new Copy(*this)); toolchain.add_tool(new Tar(*this)); toolchain.add_tool(new PkgConfigGenerator(*this)); + if(current_arch->get_system()=="windows") + toolchain.add_tool(new MingwDllTool(*this, *current_arch)); } Builder::~Builder() @@ -259,7 +262,7 @@ int Builder::main() list package_details; for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) { - if(!i->second || !i->second->is_prepared()) + if(!i->second->is_prepared()) continue; string line = i->second->get_name(); @@ -339,6 +342,16 @@ void Builder::add_primary_target(Target &t) get_target("default")->add_dependency(t); } +void Builder::add_installed_target(Target &t) +{ + Target *inst_tgt = 0; + if(const Tool *tool = t.get_tool()) + inst_tgt = tool->create_install(t); + if(!inst_tgt) + inst_tgt = toolchain.get_tool("CP").create_target(t); + get_target("install")->add_dependency(*inst_tgt); +} + void Builder::usage(const char *reason, const char *argv0, bool brief) { if(reason)