diff options
Diffstat (limited to 'build/target-key')
-rw-r--r-- | build/target-key | 38 |
1 files changed, 6 insertions, 32 deletions
diff --git a/build/target-key b/build/target-key index 54813b0..37fa6ab 100644 --- a/build/target-key +++ b/build/target-key @@ -5,45 +5,19 @@ #ifndef BUILD_TARGET_KEY #define BUILD_TARGET_KEY +#include <map> #include <string> -#include <typeindex> #include <ostream> +#include <typeindex> +#include <functional> // reference_wrapper + +#include <butl/utility> // compare_c_string #include <build/types> +#include <build/target-type> namespace build { - class scope; - class target; - class target_key; - class prerequisite_key; - - // Target type. - // - struct target_type - { - std::type_index id; - const char* name; - const target_type* base; - target* (*const factory) (dir_path, std::string, const std::string*); - const std::string& (*const extension) (const target_key&, scope&); - target* (*const search) (const prerequisite_key&); - bool see_through; // A group with the default "see through" semantics. - - bool - is_a (const std::type_index&) const; // Defined in target.cxx - - template <typename T> - bool - is_a () const {return is_a (typeid (T));} - }; - - inline std::ostream& - operator<< (std::ostream& os, const target_type& tt) - { - return os << tt.name; - } - // Light-weight (by being shallow-pointing) target key. // class target_key |