]> git.tdb.fi Git - builder.git/commitdiff
Put constructor helper functions next to the constructors
authorMikko Rasa <tdb@tdb.fi>
Sun, 8 Jul 2012 22:58:36 +0000 (01:58 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 8 Jul 2012 22:58:36 +0000 (01:58 +0300)
source/datafile.h
source/executable.h
source/filetarget.cpp
source/filetarget.h
source/installedfile.cpp
source/installedfile.h
source/objectfile.cpp
source/objectfile.h
source/sharedlibrary.h
source/staticlibrary.h

index 071a82b887d60d23d0fa2ef2e290f1a7c942aa79..0ba501ca50ec2f70f12d9bae0b510d9bf52af441 100644 (file)
@@ -14,13 +14,13 @@ private:
 
 public:
        DataFile(Builder &, const Component &, File &);
+private:
+       static Msp::FS::Path generate_target_path(const Component &);
 
+public:
        virtual const char *get_type() const { return "DataFile"; }
        const Component &get_component() const { return component; }
        File &get_source() const { return source; }
-
-private:
-       static Msp::FS::Path generate_target_path(const Component &);
 };
 
 #endif
index d235e293617dee49c71541b7d20f53fcacf0b108..967aaf97c7ec0c8044eaf0c48965122029732eb5 100644 (file)
@@ -8,10 +8,11 @@ class Executable: public Binary
 public:
        Executable(Builder &, const Msp::FS::Path &);
        Executable(Builder &, const Component &, const std::list<ObjectFile *> &);
-
-       virtual const char *get_type() const { return "Executable"; }
 private:
        static std::string generate_filename(const Component &);
+
+public:
+       virtual const char *get_type() const { return "Executable"; }
 };
 
 #endif
index 1c61810498937199f3ba35c6d5374febff18d151..634b297b996070e45ed9a98ee736c6e9f4826718 100644 (file)
@@ -25,6 +25,25 @@ FileTarget::FileTarget(Builder &b, const SourcePackage *p, const FS::Path &a):
        }
 }
 
+string FileTarget::generate_name(const SourcePackage *pkg, const FS::Path &pth)
+{
+       if(pkg)
+       {
+               if(FS::descendant_depth(pth, pkg->get_source())>=0)
+               {
+                       FS::Path relpath = FS::relative(pth, pkg->get_source());
+                       return format("<%s>%s", pkg->get_name(), relpath.str().substr(1));
+               }
+               else if(FS::descendant_depth(pth, pkg->get_builder().get_prefix())>=0)
+               {
+                       FS::Path relpath = FS::relative(pth, pkg->get_builder().get_prefix());
+                       return "<prefix>"+relpath.str().substr(1);
+               }
+       }
+
+       return pth.str();
+}
+
 void FileTarget::touch()
 {
        mtime = Time::now();
@@ -53,22 +72,3 @@ void FileTarget::check_rebuild()
        if(!needs_rebuild() && package && package->get_config().get_mtime()>mtime)
                mark_rebuild("Package options changed");
 }
-
-string FileTarget::generate_name(const SourcePackage *pkg, const FS::Path &pth)
-{
-       if(pkg)
-       {
-               if(FS::descendant_depth(pth, pkg->get_source())>=0)
-               {
-                       FS::Path relpath = FS::relative(pth, pkg->get_source());
-                       return format("<%s>%s", pkg->get_name(), relpath.str().substr(1));
-               }
-               else if(FS::descendant_depth(pth, pkg->get_builder().get_prefix())>=0)
-               {
-                       FS::Path relpath = FS::relative(pth, pkg->get_builder().get_prefix());
-                       return "<prefix>"+relpath.str().substr(1);
-               }
-       }
-
-       return pth.str();
-}
index 7d42c91c06e67b7fbe2a97e4bf9b3542f5be810d..22df5206fa6ada3b71af375e3e8f8807904338fc 100644 (file)
@@ -16,6 +16,9 @@ protected:
        unsigned size;
 
        FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &);
+private:
+       static std::string generate_name(const SourcePackage *, const Msp::FS::Path &);
+
 public:
        const Msp::FS::Path &get_path() const { return path; }
        const Msp::Time::TimeStamp &get_mtime() const { return mtime; }
@@ -28,8 +31,6 @@ public:
 
 protected:
        virtual void check_rebuild();
-private:
-       static std::string generate_name(const SourcePackage *, const Msp::FS::Path &);
 };
 
 #endif
index 4ee821fab1ab55bc74a5075a378f2b926e89b990..3ca490602055d18ef83cef933ea4605718e2c6c8 100644 (file)
@@ -20,6 +20,20 @@ InstalledFile::InstalledFile(Builder &b, const SourcePackage &p, FileTarget &s,
                builder.get_vfs().register_path(link, this);
 }
 
+FS::Path InstalledFile::generate_target_path(const FS::Path &prefix, const FileTarget &tgt, const string &loc)
+{
+       if(!tgt.is_installable() && loc.empty())
+               throw invalid_argument(tgt.get_name()+" is not installable");
+
+       string mid;
+       if(!loc.empty())
+               mid = loc;
+       else
+               mid = tgt.get_install_location();
+
+       return prefix/mid/FS::basename(tgt.get_path());
+}
+
 Target *InstalledFile::get_real_target()
 {
        return source.get_real_target();
@@ -34,17 +48,3 @@ void InstalledFile::check_rebuild()
        else if(source.needs_rebuild())
                mark_rebuild(source.get_name()+" needs rebuilding");
 }
-
-FS::Path InstalledFile::generate_target_path(const FS::Path &prefix, const FileTarget &tgt, const string &loc)
-{
-       if(!tgt.is_installable() && loc.empty())
-               throw invalid_argument(tgt.get_name()+" is not installable");
-
-       string mid;
-       if(!loc.empty())
-               mid = loc;
-       else
-               mid = tgt.get_install_location();
-
-       return prefix/mid/FS::basename(tgt.get_path());
-}
index ef76ae7f60e8ca79b204c7e10122a4c46ec09bb5..0b9a4557ab35313a064997739df1b557322948cd 100644 (file)
@@ -15,14 +15,16 @@ private:
 
 public:
        InstalledFile(Builder &, const SourcePackage &, FileTarget &, const std::string & =std::string());
+private:
+       static Msp::FS::Path generate_target_path(const Msp::FS::Path &, const FileTarget &i, const std::string &);
+
+public:
        virtual const char *get_type() const { return "InstalledFile"; }
        FileTarget &get_source() const { return source; }
        const Msp::FS::Path &get_symlink() const { return link; }
        virtual Target *get_real_target();
 private:
        virtual void check_rebuild();
-
-       static Msp::FS::Path generate_target_path(const Msp::FS::Path &, const FileTarget &i, const std::string &);
 };
 
 #endif
index a27c067b6a881f8735124ccc7aae71a7b63f41d7..7db1b2d647939ac6456d48a0b8f12954ba56718c 100644 (file)
@@ -17,6 +17,18 @@ ObjectFile::ObjectFile(Builder &b, const Component &c, SourceFile &s):
        add_depend(&source);
 }
 
+FS::Path ObjectFile::generate_target_path(const Component &comp, const string &src)
+{
+       const SourcePackage &pkg = comp.get_package();
+       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;
+}
+
 void ObjectFile::find_depends()
 {
        for(Dependencies::iterator i=depends.begin(); i!=depends.end(); ++i)
@@ -26,7 +38,6 @@ void ObjectFile::find_depends()
        }
 }
 
-
 void ObjectFile::find_depends(FileTarget *tgt)
 {
        FileTarget *rtgt = dynamic_cast<FileTarget *>(tgt->get_real_target());
@@ -61,15 +72,3 @@ void ObjectFile::find_depends(FileTarget *tgt)
                if(find(depends.begin(), depends.end(), *i)==depends.end())
                        add_depend(*i);
 }
-
-FS::Path ObjectFile::generate_target_path(const Component &comp, const string &src)
-{
-       const SourcePackage &pkg = comp.get_package();
-       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;
-}
index af47c66863088ae2448f718e932338d42957ca99..975409580928ce7cf61501cf715cbba91bb83df8 100644 (file)
@@ -17,6 +17,10 @@ private:
        
 public:
        ObjectFile(Builder &, const Component &, SourceFile &);
+private:
+       static Msp::FS::Path generate_target_path(const Component &, const std::string &);
+
+public:
        virtual const char *get_type() const { return "ObjectFile"; }
        const Component &get_component() const { return comp; }
        SourceFile &get_source() const { return source; }
@@ -29,8 +33,6 @@ public:
 private:
        /** Recursively looks for header targets and adds them as dependencies. */
        void find_depends(FileTarget *);
-
-       static Msp::FS::Path generate_target_path(const Component &, const std::string &);
 };
 
 #endif
index 076cfdb71ab89bb82493b90608c0280dd28b7c98..5331ef58290d8995b7cabdc5b5fadd0849cc7e9e 100644 (file)
@@ -18,13 +18,13 @@ private:
 public:
        SharedLibrary(Builder &, const Msp::FS::Path &);
        SharedLibrary(Builder &, const Component &, const std::list<ObjectFile *> &);
+private:
+       static std::string generate_filename(const Component &);
 
+public:
        virtual const char *get_type() const { return "SharedLibrary"; }
        const std::string &get_libname() const { return libname; }
        const std::string &get_soname() const { return soname; }
-
-private:
-       static std::string generate_filename(const Component &);
 };
 
 #endif
index 451e9f8aedc5b23a35d6308738aa6d9c9fd8aadc..033e98a0e2cc889fe061967e7cfe071cc9e3d6de 100644 (file)
@@ -14,10 +14,11 @@ class StaticLibrary: public FileTarget
 public:
        StaticLibrary(Builder &, const Msp::FS::Path &);
        StaticLibrary(Builder &, const Component &, const std::list<ObjectFile *> &);
-
-       virtual const char *get_type() const { return "StaticLibrary"; }
 private:
        static std::string generate_filename(const Component &);
+
+public:
+       virtual const char *get_type() const { return "StaticLibrary"; }
 };
 
 #endif