]> git.tdb.fi Git - builder.git/blobdiff - source/builder.cpp
Let tools have a say in installing their targets
[builder.git] / source / builder.cpp
index c61d4a77c71c8f98e53790cd4d95028ebb0cc378..3344429c433728f01a54ca6c2ea3ae98e166426f 100644 (file)
@@ -341,9 +341,12 @@ void Builder::add_primary_target(Target &t)
 
 void Builder::add_installed_target(Target &t)
 {
-       Target *install = get_target("install");
-       const Tool &copy = toolchain.get_tool("CP");
-       install->add_dependency(*copy.create_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)