diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-08 12:36:05 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-08 12:36:05 +0200 |
commit | b66d30af9fb5c50966183820f8ed7af6b8791a2e (patch) | |
tree | 510a691f6e393e91b3fe870c5ccf0465e72c76d5 /build/diagnostics.cxx | |
parent | 18af73df698e560b847e46d524d059d2921876d5 (diff) |
Move context-dependent functions from diagnostics to context
Diffstat (limited to 'build/diagnostics.cxx')
-rw-r--r-- | build/diagnostics.cxx | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/build/diagnostics.cxx b/build/diagnostics.cxx index 075dbab..70dfe07 100644 --- a/build/diagnostics.cxx +++ b/build/diagnostics.cxx @@ -4,173 +4,18 @@ #include <build/diagnostics> -#include <sstream> #include <iostream> -#include <build/scope> -#include <build/target> -#include <build/operation> -#include <build/context> #include <build/utility> using namespace std; namespace build { - string - diag_relative (const path& p) - { - const path& b (*relative_base); - - if (p.absolute ()) - { - if (p == b) - return "."; - -#ifndef _WIN32 - if (p == home) - return "~"; -#endif - - path rb (relative (p)); - -#ifndef _WIN32 - if (rb.relative ()) - { - // See if the original path with the ~/ shortcut is better - // that the relative to base. - // - if (p.sub (home)) - { - path rh (p.leaf (home)); - if (rb.string ().size () > rh.string ().size () + 2) // 2 for '~/' - return "~/" + rh.string (); - } - } - else if (rb.sub (home)) - return "~/" + rb.leaf (home).string (); -#endif - - return rb.string (); - } - - return p.string (); - } - - string - diag_relative (const dir_path& d, bool cur) - { - string r (diag_relative (static_cast<const path&> (d))); - - // Translate "." to empty. - // - if (!cur && d.absolute () && r == ".") - r.clear (); - - // Add trailing '/'. - // - if (!r.empty () && !dir_path::traits::is_separator (r.back ())) - r += '/'; - - return r; - } - // Relative stream. // const int relative_index = ostream::xalloc (); - // diag_do(), etc. - // - string - diag_do (const action&, const target& t) - { - const meta_operation_info& m (*current_mif); - const operation_info& io (*current_inner_oif); - const operation_info* oo (current_outer_oif); - - ostringstream os; - - // perform(update(x)) -> "update x" - // configure(update(x)) -> "configure updating x" - // - if (m.name_do.empty ()) - os << io.name_do << ' '; - else - { - os << m.name_do << ' '; - - if (!io.name_doing.empty ()) - os << io.name_doing << ' '; - } - - if (oo != nullptr) - os << "(for " << oo->name << ") "; - - os << t; - return os.str (); - } - - string - diag_doing (const action&, const target& t) - { - const meta_operation_info& m (*current_mif); - const operation_info& io (*current_inner_oif); - const operation_info* oo (current_outer_oif); - - ostringstream os; - - // perform(update(x)) -> "updating x" - // configure(update(x)) -> "configuring updating x" - // - if (!m.name_doing.empty ()) - os << m.name_doing << ' '; - - if (!io.name_doing.empty ()) - os << io.name_doing << ' '; - - if (oo != nullptr) - os << "(for " << oo->name << ") "; - - os << t; - return os.str (); - } - - string - diag_done (const action&, const target& t) - { - const meta_operation_info& m (*current_mif); - const operation_info& io (*current_inner_oif); - const operation_info* oo (current_outer_oif); - - ostringstream os; - - // perform(update(x)) -> "x is up to date" - // configure(update(x)) -> "updating x is configured" - // - if (m.name_done.empty ()) - { - os << t; - - if (!io.name_done.empty ()) - os << " " << io.name_done; - - if (oo != nullptr) - os << "(for " << oo->name << ") "; - } - else - { - if (!io.name_doing.empty ()) - os << io.name_doing << ' '; - - if (oo != nullptr) - os << "(for " << oo->name << ") "; - - os << t << " " << m.name_done; - } - - return os.str (); - } - void print_process (const char* const* args, size_t n) { |