aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/compile.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-06-29 11:38:27 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-06-29 11:38:27 +0200
commitbe14f6c87cb3eeb9e3a2ac93802c9c236c191aa5 (patch)
tree1d19f375e60f05ddeb9ec8fa2672beecdc8d810e /build2/cc/compile.hxx
parentb752b85660d2fff149b0822ebe21e9f2d4ee4e1d (diff)
Pass entire BMI graph, not only direct imports and re-exports
All current implementations require access to the entire graph (though Clang embeds the file references so we don't need to pass the options).
Diffstat (limited to 'build2/cc/compile.hxx')
-rw-r--r--build2/cc/compile.hxx12
1 files changed, 7 insertions, 5 deletions
diff --git a/build2/cc/compile.hxx b/build2/cc/compile.hxx
index ed9c18d..778a637 100644
--- a/build2/cc/compile.hxx
+++ b/build2/cc/compile.hxx
@@ -30,10 +30,11 @@ namespace build2
// Positions of the re-exported bmi{}s. See search_modules() for
// details.
//
- struct modules_positions
+ struct module_positions
{
- size_t ex_start;
- size_t ex_tail;
+ size_t start; // First imported bmi*{}, 0 if none.
+ size_t exported; // First re-exported bmi*{}, 0 if none.
+ size_t copied; // First copied-over bmi*{}, 0 if none.
};
class compile: public rule, virtual common
@@ -111,12 +112,13 @@ namespace build2
const file&, match_data&,
module_info&&, depdb&, bool&) const;
- modules_positions
+ module_positions
search_modules (action, file&, lorder, const target_type&,
const file&, module_imports&&, sha256&) const;
void
- append_modules (cstrings&, strings&, const file&) const;
+ append_modules (cstrings&, strings&,
+ const file&, const module_positions&) const;
// Language selection option (for VC) or the value for the -x option.
//