// file : build/cxx/rule -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file #ifndef BUILD_CXX_RULE #define BUILD_CXX_RULE #include #include #include namespace build { class scope; namespace cxx { // @@ Can't we do match(obj&) and then registration code extracts // that. And no virtuals. // class compile: public rule { public: virtual void* match (target&, const std::string& hint) const; virtual recipe select (target&, void*) const; static target_state update (target&); private: void inject_prerequisites (obj&, const cxx&, scope&) const; }; class link: public rule { public: virtual void* match (target&, const std::string& hint) const; virtual recipe select (target&, void*) const; static target_state update (target&); }; } } #endif // BUILD_CXX_RULE