aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc/common.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/cc/common.hxx')
-rw-r--r--libbuild2/cc/common.hxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/libbuild2/cc/common.hxx b/libbuild2/cc/common.hxx
index 176c30e..a62b91b 100644
--- a/libbuild2/cc/common.hxx
+++ b/libbuild2/cc/common.hxx
@@ -272,6 +272,16 @@ namespace build2
// Library handling.
//
public:
+ struct library_cache_entry
+ {
+ optional<lorder> lo;
+ string type; // name::type
+ string value; // name::value
+ reference_wrapper<const mtime_target> lib;
+ };
+
+ using library_cache = small_vector<library_cache_entry, 32>;
+
void
process_libraries (
action,
@@ -287,6 +297,7 @@ namespace build2
lflags, bool)>&,
const function<void (const target&, const string&, bool, bool)>&,
bool = false,
+ library_cache* = nullptr,
small_vector<const target*, 16>* = nullptr) const;
const target*
@@ -321,7 +332,8 @@ namespace build2
const dir_path&,
optional<linfo>,
const dir_paths&,
- optional<dir_paths>&) const;
+ optional<dir_paths>&,
+ library_cache* = nullptr) const;
template <typename T>
static ulock