]> git.tdb.fi Git - builder.git/blobdiff - source/binary.cpp
Make tools capable of reporting a system-wide path used to locate input files
[builder.git] / source / binary.cpp
index ff98644ec53a6711ed3e63910a0876bd6447dc40..81124b9465fef1102c5bddd4e66494139e4f47f6 100644 (file)
 using namespace std;
 using namespace Msp;
 
-Binary::Binary(Builder &b, const Component &c, const list<ObjectFile *> &objs):
-       FileTarget(b, &c.get_package(), generate_target_path(c))
+Binary::Binary(Builder &b, const FS::Path &p):
+       FileTarget(b, 0, p)
+{ }
+
+Binary::Binary(Builder &b, const Component &c, const std::string &p, const list<ObjectFile *> &objs):
+       FileTarget(b, &c.get_package(), c.get_package().get_out_dir()/p)
 {
        component = &c;
        for(list<ObjectFile *>::const_iterator i=objs.begin(); i!=objs.end(); ++i)
@@ -67,31 +71,4 @@ void Binary::find_depends()
                if(last)
                        add_depend(*i);
        }
-
-       deps_ready = true;
-}
-
-FS::Path Binary::generate_target_path(const Component &c)
-{
-       const SourcePackage &pkg = c.get_package();
-       string prefix, suffix;
-       const string &sys = pkg.get_builder().get_current_arch().get_system();
-
-       if(c.get_type()==Component::LIBRARY)
-       {
-               prefix = "lib";
-               if(sys=="windows")
-                       suffix = ".dll";
-               else
-                       suffix = ".so";
-       }
-       else if(c.get_type()==Component::MODULE)
-               suffix = ".m";
-       else if(c.get_type()==Component::PROGRAM)
-       {
-               if(sys=="windows")
-                       suffix = ".exe";
-       }
-
-       return pkg.get_out_dir()/(prefix+c.get_name()+suffix);
 }