diff options
Diffstat (limited to 'build/target-key')
-rw-r--r-- | build/target-key | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/build/target-key b/build/target-key deleted file mode 100644 index 526a33a..0000000 --- a/build/target-key +++ /dev/null @@ -1,55 +0,0 @@ -// file : build/target-key -*- C++ -*- -// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef BUILD_TARGET_KEY -#define BUILD_TARGET_KEY - -#include <map> -#include <string> -#include <ostream> -#include <functional> // reference_wrapper - -#include <butl/utility> // compare_c_string - -#include <build/types> -#include <build/target-type> - -namespace build -{ - // Light-weight (by being shallow-pointing) target key. - // - class target_key - { - public: - mutable const target_type* type; - mutable const dir_path* dir; - mutable const std::string* name; - mutable const std::string* const* ext; // Note: only *ext can be NULL. - - friend bool - operator< (const target_key& x, const target_key& y) - { - const target_type* xt (x.type); - const target_type* yt (y.type); - - //@@ TODO: use compare() to compare once. - - // Unspecified and specified extension are assumed equal. The - // extension strings are from the pool, so we can just compare - // pointers. - // - return - (xt < yt) || - (xt == yt && *x.name < *y.name) || - (xt == yt && *x.name == *y.name && *x.dir < *y.dir) || - (xt == yt && *x.name == *y.name && *x.dir == *y.dir && - *x.ext != nullptr && *y.ext != nullptr && **x.ext < **y.ext); - } - }; - - std::ostream& - operator<< (std::ostream&, const target_key&); // Defined in target.cxx -} - -#endif // BUILD_TARGET_KEY |