]> git.tdb.fi Git - builder.git/commitdiff
Use the tool to create headers
authorMikko Rasa <tdb@tdb.fi>
Fri, 8 Jun 2012 22:56:34 +0000 (01:56 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 8 Jul 2012 21:08:53 +0000 (00:08 +0300)
source/virtualfilesystem.cpp
source/virtualfilesystem.h

index bff2886219ce7c4eb745083c749a896e2ad41674..0ada219aabdae0b4b55d443a558fd4187327836b 100644 (file)
@@ -64,9 +64,9 @@ FileTarget *VirtualFileSystem::find_header(const string &name, const SearchPath
 
        FileTarget *tgt = 0;
        for(SearchPath::const_iterator j=path.begin(); (!tgt && j!=path.end()); ++j)
-               tgt = get_header(FS::Path(*j)/name);
+               tgt = get_header(FS::Path(*j)/name, *tool);
        for(Tool::SearchPath::const_iterator j=syspath.begin(); (!tgt && j!=syspath.end()); ++j)
-               tgt = get_header(FS::Path(*j)/name);
+               tgt = get_header(FS::Path(*j)/name, *tool);
 
        include_cache.insert(TargetMap::value_type(id, tgt));
 
@@ -101,17 +101,14 @@ FileTarget *VirtualFileSystem::find_library(const string &lib, const SearchPath
        return tgt;
 }
 
-FileTarget *VirtualFileSystem::get_header(const FS::Path &fn)
+FileTarget *VirtualFileSystem::get_header(const FS::Path &fn, const Tool &tool)
 {
-       FileTarget *tgt = get_target(fn);
-       if(tgt)
+       if(FileTarget *tgt = get_target(fn))
                return tgt;
 
        if(FS::is_reg(fn))
-       {
-               tgt = new CSourceFile(builder, fn);
-               return tgt;
-       }
+               return dynamic_cast<FileTarget *>(tool.create_source(fn));
+
        return 0;
 }
 
index 592f6bfdf0603098b9612466d0fc25165a0d0989..72465857480e47e465a0aae5f7ba39dc3492fe32 100644 (file)
@@ -48,7 +48,7 @@ private:
        target of one was found, or a new SystemHeader target if there was no known
        target but the file exists.
        */
-       FileTarget *get_header(const Msp::FS::Path &);
+       FileTarget *get_header(const Msp::FS::Path &, const Tool &);
 
        FileTarget *get_library(const std::string &, const Msp::FS::Path &, LibMode);