]> git.tdb.fi Git - builder.git/commitdiff
Don't store component locally in object and source files
authorMikko Rasa <tdb@tdb.fi>
Sun, 8 Jul 2012 23:14:28 +0000 (02:14 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 8 Jul 2012 23:20:12 +0000 (02:20 +0300)
source/csourcefile.cpp
source/gnuarchiver.cpp
source/gnucompiler.cpp
source/gnulinker.cpp
source/objectfile.cpp
source/objectfile.h
source/sourcefile.cpp
source/sourcefile.h

index 0ff4286c5cb87bb6270a5978c304c8969c29bed0..7a26bb5ff4c503b0072eb9ed5bde9e3e25d15bdb 100644 (file)
@@ -19,15 +19,15 @@ CSourceFile::CSourceFile(Builder &b, const Component &c, const FS::Path &p):
 {
        string ext = FS::extpart(FS::basename(path));
        if(ext==".h" || ext==".H" || ext==".hpp")
-               install_location = "include/"+comp->get_name();
+               install_location = "include/"+component->get_name();
 }
 
 void CSourceFile::find_depends()
 {
-       if(!comp || !mtime)
+       if(!component || !mtime)
                return;
 
-       const SourcePackage &spkg = comp->get_package();
+       const SourcePackage &spkg = component->get_package();
        string relname = FS::relative(path, spkg.get_source()).str();
 
        DependencyCache &deps_cache = spkg.get_deps_cache();
@@ -49,7 +49,7 @@ void CSourceFile::find_depends()
                deps_cache.set_deps(relname, includes);
        }
 
-       const BuildInfo::PathList &incpath = comp->get_build_info().incpath;
+       const BuildInfo::PathList &incpath = component->get_build_info().incpath;
        BuildInfo::PathList local_incpath = incpath;
        local_incpath.push_front(FS::dirname(path).str());
 
index 3f96cbfd9a94135d6c7c6348b3f91b53e358b3a0..71edc42d57d26d09560c9ddc1b389e0febcedae9 100644 (file)
@@ -39,7 +39,7 @@ Target *GnuArchiver::create_target(const list<Target *> &sources, const string &
                        throw invalid_argument("GnuArchiver::create_target");
        }
 
-       const Component &comp = objs.front()->get_component();
+       const Component &comp = *objs.front()->get_component();
        StaticLibrary *lib = new StaticLibrary(builder, comp, objs);
        lib->set_tool(*this);
        return lib;
index 8df1a72a92debc7542df10f137f76d29f1f8e18a..747d96386de501e00b49ffcd3eb2a09c2035d1aa 100644 (file)
@@ -40,7 +40,7 @@ Target *GnuCompiler::create_target(const list<Target *> &sources, const string &
 Task *GnuCompiler::run(const Target &target) const
 {
        const ObjectFile &object = dynamic_cast<const ObjectFile &>(target);
-       const Component &comp = object.get_component();
+       const Component &comp = *object.get_component();
 
        ExternalTask::Arguments argv;
        argv.push_back(executable->get_path().str());
index 719780bb0441c0cc65e8c02f49ee300666cd1c20..13352870299778b8ba205092e3e742ed008be813 100644 (file)
@@ -63,7 +63,7 @@ Target *GnuLinker::create_target(const list<Target *> &sources, const string &ar
                        throw invalid_argument("GnuLinker::create_target");
        }
 
-       const Component &comp = objs.front()->get_component();
+       const Component &comp = *objs.front()->get_component();
        Binary *bin = 0;
        if(arg=="shared")
                bin = new SharedLibrary(builder, comp, objs);
index 7db1b2d647939ac6456d48a0b8f12954ba56718c..22f11faca352369bddce0804ae68da948e85d8b0 100644 (file)
@@ -11,9 +11,9 @@ using namespace Msp;
 
 ObjectFile::ObjectFile(Builder &b, const Component &c, SourceFile &s):
        FileTarget(b, &c.get_package(), generate_target_path(c, FS::relative(s.get_path(), c.get_package().get_source()).str())),
-       comp(c),
        source(s)       
 {
+       component = &c;
        add_depend(&source);
 }
 
index 975409580928ce7cf61501cf715cbba91bb83df8..2e9b6e1a4333074e71c18fe1502ab49661a68c13 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "filetarget.h"
 
-class Component;
 class SourceFile;
 
 /**
@@ -12,7 +11,6 @@ Object files are compiled from source files.
 class ObjectFile: public FileTarget
 {
 private:
-       const Component &comp;
        SourceFile &source;
        
 public:
@@ -22,7 +20,6 @@ private:
 
 public:
        virtual const char *get_type() const { return "ObjectFile"; }
-       const Component &get_component() const { return comp; }
        SourceFile &get_source() const { return source; }
 
        /** Processes as many new dependences as possible.  Some may be created on
index 13b337ecdf303733622f8b42f95f014080a955ef..220facd9cf20481eb964d228d11ce12eb264a0a8 100644 (file)
@@ -3,6 +3,7 @@
 #include "sourcepackage.h"
 
 SourceFile::SourceFile(Builder &b, const Component *c, const Msp::FS::Path &p):
-       FileTarget(b, (c ? &c->get_package() : 0), p),
-       comp(c)
-{ }
+       FileTarget(b, (c ? &c->get_package() : 0), p)
+{
+       component = c;
+}
index 9f126ac4d4781d19228f222075a204c9bf31027e..30a5080b8a0be51a14b42ddf55a61de32ca35393 100644 (file)
@@ -3,17 +3,10 @@
 
 #include "filetarget.h"
 
-class Component;
-
 class SourceFile: public FileTarget
 {
 protected:
-       const Component *comp;
-
        SourceFile(Builder &, const Component *, const Msp::FS::Path &);
-
-public:
-       const Component *get_component() const { return comp; }
 };
 
 #endif