From e347540d400c552917ca7067c4571f1028f6e1af Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 25 Aug 2016 09:45:42 +0200 Subject: Handle *.export.loptions --- build2/cc/link.cxx | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'build2') diff --git a/build2/cc/link.cxx b/build2/cc/link.cxx index b608817..7e639ed 100644 --- a/build2/cc/link.cxx +++ b/build2/cc/link.cxx @@ -1059,8 +1059,17 @@ namespace build2 // if (const string* t = cast_null (l.vars[c_type])) { + // @@ Shouldn't, ideally, we filter loptions to only include -L? + // + append_options (args, l, c_loptions); append_options (args, l, c_libs); - append_options (args, l, *t == x ? x_libs : var_pool[*t + ".libs"]); + + append_options (args, + l, + *t == x ? x_loptions : var_pool[*t + ".loptions"]); + append_options (args, + l, + *t == x ? x_libs : var_pool[*t + ".libs"]); } } else @@ -1109,7 +1118,10 @@ namespace build2 // @@ Should we also pick one based on cc.type? And also *.poptions in // compile? Feels right. // + append_options (args, l, c_export_loptions); append (c_export_libs); + + append_options (args, l, x_export_loptions); append (x_export_libs); } } @@ -1140,8 +1152,17 @@ namespace build2 // if (const string* t = cast_null (l.vars[c_type])) { + // @@ Shouldn't, ideally, we filter loptions to only include -L? + // + hash_options (cs, l, c_loptions); hash_options (cs, l, c_libs); - hash_options (cs, l, *t == x ? x_libs : var_pool[*t + ".libs"]); + + hash_options (cs, + l, + *t == x ? x_loptions : var_pool[*t + ".loptions"]); + hash_options (cs, + l, + *t == x ? x_libs : var_pool[*t + ".libs"]); } } else @@ -1185,7 +1206,10 @@ namespace build2 } }; + hash_options (cs, l, c_export_loptions); hash (c_export_libs); + + hash_options (cs, l, x_export_loptions); hash (x_export_libs); } } -- cgit v1.1