X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftool.h;h=2f8c25b4f56aedc10a45090215995c64f5ba7410;hb=4e2a160d94ca808cfb511cc2d38e115d989809f2;hp=ad89e47431b3b47eee53c8d7a747ef98cce2707c;hpb=c51411c4b3ed4e6a0d8343b848db3dc736bc7857;p=builder.git diff --git a/source/tool.h b/source/tool.h index ad89e47..2f8c25b 100644 --- a/source/tool.h +++ b/source/tool.h @@ -21,6 +21,13 @@ Examples include compilers and linkers. class Tool { public: + enum ProcessingUnit + { + ONE_FILE, + DIRECTORY, + COMPONENT + }; + typedef std::list SearchPath; typedef std::list SuffixList; @@ -32,6 +39,7 @@ protected: FileTarget *executable; SuffixList input_suffixes; SuffixList aux_suffixes; + ProcessingUnit processing_unit; SearchPath system_path; BuildInfo build_info; bool prepared; @@ -70,6 +78,9 @@ public: auxiliary suffixes are considered as well */ bool accepts_suffix(const std::string &, bool aux = false) const; + /** Returns the grouping unit this tool prefers to process. */ + 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; } @@ -125,4 +136,7 @@ protected: SubTool(Tool &); }; + +void operator>>(const Msp::LexicalConverter &, Tool::ProcessingUnit &); + #endif