diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-06-16 14:57:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-06-16 14:57:47 +0200 |
commit | f3e193b2651b2589daecaf181b96c5622acc51e9 (patch) | |
tree | 2391980d95895d25e71d70a3322b179b13d2867b /build2/diagnostics.hxx | |
parent | a2a9146e9cb905782de92e9ef04c1fd7745f1cff (diff) |
Clean up module-related diagnostics
Diffstat (limited to 'build2/diagnostics.hxx')
-rw-r--r-- | build2/diagnostics.hxx | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/build2/diagnostics.hxx b/build2/diagnostics.hxx index ce5f996..1e76099 100644 --- a/build2/diagnostics.hxx +++ b/build2/diagnostics.hxx @@ -224,7 +224,18 @@ namespace build2 const char* name, const location& l, uint16_t sverb) - : type_ (type), mod_ (mod), name_ (name), loc_ (l), sverb_ (sverb) {} + : type_ (type), mod_ (mod), name_ (name), + loc_ (l), + sverb_ (sverb) {} + + location_prologue_base (const char* type, + const char* mod, + const char* name, + path&& f, + uint16_t sverb) + : type_ (type), mod_ (mod), name_ (name), + file_ (move (f)), loc_ (&file_), + sverb_ (sverb) {} void operator() (const diag_record& r) const; @@ -233,6 +244,7 @@ namespace build2 const char* type_; const char* mod_; const char* name_; + const path file_; const location loc_; const uint16_t sverb_; }; @@ -265,6 +277,15 @@ namespace build2 return location_prologue (epilogue_, type_, mod_, name_, l, sverb_ ()); } + // fail (relative (src)) << ... + // + location_prologue + operator() (path&& f) const + { + return location_prologue ( + epilogue_, type_, mod_, name_, move (f), sverb_ ()); + } + template <typename L> location_prologue operator() (const L& l) const |