]> git.tdb.fi Git - builder.git/blobdiff - source/binary.cpp
Split Binary filename generation to Executable and SharedLibrary
[builder.git] / source / binary.cpp
index a809e64b0745341d21c4734cb60513cf8f0b6d2a..17ec7353998f7fc7078c70d56bbb99762dfb7fa2 100644 (file)
@@ -16,8 +16,8 @@ Binary::Binary(Builder &b, const FS::Path &p):
        FileTarget(b, 0, p)
 { }
 
-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 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)
@@ -77,28 +77,3 @@ void Binary::find_depends()
 
        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);
-}