]> git.tdb.fi Git - builder.git/blobdiff - source/objectfile.cpp
Adjust to library changes
[builder.git] / source / objectfile.cpp
index f3d6183afa6b01161b1039af0bb6f838d571e5d8..cd870592530f74b0220b6e5ed9692c090db16e8b 100644 (file)
@@ -19,7 +19,7 @@ using namespace std;
 using namespace Msp;
 
 ObjectFile::ObjectFile(Builder &b, const Component &c, SourceFile &s):
-       FileTarget(b, &c.get_package(), generate_target_path(c, FS::basename(s.get_path()))),
+       FileTarget(b, &c.get_package(), generate_target_path(c, FS::relative(s.get_path(), c.get_package().get_source()).str())),
        comp(c),
        source(s)       
 {
@@ -78,5 +78,11 @@ Action *ObjectFile::create_action()
 FS::Path ObjectFile::generate_target_path(const Component &comp, const string &src)
 {
        const SourcePackage &pkg = comp.get_package();
-       return pkg.get_temp_dir()/comp.get_name()/(FS::basepart(src)+".o");
+       string fn = FS::basepart(src)+".o";
+       if(!fn.compare(0, 2, "./"))
+               fn.erase(0, 2);
+       for(string::iterator i=fn.begin(); i!=fn.end(); ++i)
+               if(*i=='/')
+                       *i = '_';
+       return pkg.get_temp_dir()/comp.get_name()/fn;
 }