aboutsummaryrefslogtreecommitdiff
path: root/build2/target.txx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-06-26 16:06:54 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-06-26 16:06:54 +0200
commit4d1c02b736f4c1e827b11085cdc83ce4b46c03d1 (patch)
tree8d6a8318c23b1e9085d73c36843c90e875a52095 /build2/target.txx
parent70d00b9f7f3266c1962f6d5a6fc8de1866c67949 (diff)
Add notion of ad hoc group, use to handle DLL/import library
Diffstat (limited to 'build2/target.txx')
-rw-r--r--build2/target.txx24
1 files changed, 24 insertions, 0 deletions
diff --git a/build2/target.txx b/build2/target.txx
index fe21016..dc627a6 100644
--- a/build2/target.txx
+++ b/build2/target.txx
@@ -9,6 +9,30 @@
namespace build2
{
+ // prerequisite_members_range
+ //
+ template <typename T>
+ void prerequisite_members_range<T>::iterator::
+ switch_mode ()
+ {
+ // A group could be empty, so we may have to iterate.
+ //
+ do
+ {
+ g_ = resolve_group_members (r_->a_, search (*i_));
+ assert (g_.members == nullptr); // Group could not be resolved.
+
+ if (g_.count != 0) // Skip empty see through groups.
+ {
+ j_ = 1; // Start from the first group member.
+ break;
+ }
+ }
+ while (++i_ != r_->e_ && i_->get ().type.see_through);
+ }
+
+ //
+ //
template <const char* ext>
const string*
target_extension_fix (const target_key&, scope&)