]> git.tdb.fi Git - builder.git/blobdiff - source/tool.h
Convert all list containers to vectors
[builder.git] / source / tool.h
index 41b8c5f24dd92387ae4bf454653c3984d34694b5..ce08a00af62aedc0aae64b8d901d579881103797 100644 (file)
@@ -1,10 +1,11 @@
 #ifndef TOOL_H_
 #define TOOL_H_
 
-#include <list>
 #include <string>
+#include <vector>
 #include <msp/fs/path.h>
 #include "buildinfo.h"
+#include "virtualfilesystem.h"
 
 class Architecture;
 class Builder;
@@ -28,22 +29,19 @@ public:
                COMPONENT
        };
 
-       typedef std::list<Msp::FS::Path> SearchPath;
-       typedef std::list<std::string> SuffixList;
-
 protected:
        Builder &builder;
        const Architecture *architecture;
        std::string tag;
        std::string command;
        FileTarget *executable;
-       SuffixList input_suffixes;
-       SuffixList aux_suffixes;
+       std::vector<std::string> input_suffixes;
+       std::vector<std::string> aux_suffixes;
        ProcessingUnit processing_unit;
-       SearchPath system_path;
+       VirtualFileSystem::SearchPath system_path;
        BuildInfo build_info;
        bool prepared;
-       std::list<std::string> problems;
+       std::vector<std::string> problems;
 
        Tool(Builder &, const std::string &);
        Tool(Builder &, const Architecture &, const std::string &);
@@ -68,11 +66,11 @@ public:
        FileTarget *get_executable() const { return executable; }
 
        /// Returns a list of suffixes that can be processed with this tool.
-       const SuffixList &get_input_suffixes() const { return input_suffixes; }
+       const std::vector<std::string> &get_input_suffixes() const { return input_suffixes; }
 
        /** Returns a list of suffixes that are associated with this tool, but can't
        be processed directly.  For example C and C++ headers. */
-       const SuffixList &get_auxiliary_suffixes() const { return aux_suffixes; }
+       const std::vector<std::string> &get_auxiliary_suffixes() const { return aux_suffixes; }
 
        /** Indicates whether the tool can accept a suffix.  If aux is true,
        auxiliary suffixes are considered as well */
@@ -82,7 +80,7 @@ public:
        ProcessingUnit get_processing_unit() const { return processing_unit; }
 
        /// Returns the systemwide search path for source files.
-       const SearchPath &get_system_path() const { return system_path; }
+       const VirtualFileSystem::SearchPath &get_system_path() const { return system_path; }
 
        /** Returns tool-specific build info.  This can be used by other tools down
        the chain. */
@@ -102,13 +100,13 @@ public:
        /** Creates a target from sources.  The exact types of accepted sources
        depends on the tool.  The optional second argument can be used to select an
        alternative target type for tools that can create multiple kinds of targets. */ 
-       virtual Target *create_target(const std::list<Target *> &, const std::string & = std::string()) = 0;
+       virtual Target *create_target(const std::vector<Target *> &, const std::string & = std::string()) = 0;
 
        /** Creates an install target for a target created by this tool.  Can return
        null if the tool does not want to handle installing in a special way. */
        virtual Target *create_install(Target &) const { return 0; }
 
-       virtual std::string create_build_signature(const BuildInfo &) const { return std::string(); }
+       virtual std::string create_build_signature(const BuildInfo &) const;
 
        void prepare();
 
@@ -116,7 +114,7 @@ protected:
        virtual void do_prepare() { }
 
 public:
-       const std::list<std::string> &get_problems() const { return problems; }
+       const std::vector<std::string> &get_problems() const { return problems; }
 
        /** Invokes the tool to build a target.  This should not be called directly;
        use Target::build() instead. */
@@ -136,11 +134,11 @@ protected:
        SubTool(Tool &);
 
 public:
-       virtual Target *create_source(const Component &, const Msp::FS::Path &) const;
-       virtual Target *create_source(const Msp::FS::Path &) const;
-       virtual Target *create_target(const std::list<Target *> &, const std::string & = std::string());
-       virtual Target *create_install(Target &) const;
-       virtual std::string create_build_signature(const BuildInfo &) const;
+       Target *create_source(const Component &, const Msp::FS::Path &) const override;
+       Target *create_source(const Msp::FS::Path &) const override;
+       Target *create_target(const std::vector<Target *> &, const std::string & = std::string()) override;
+       Target *create_install(Target &) const override;
+       std::string create_build_signature(const BuildInfo &) const override;
 };