diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2021-08-12 13:05:54 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2021-08-12 13:05:54 +0200 |
commit | b01aaa16e5adaa0cc064490535f8756b2ef8d421 (patch) | |
tree | 1afe1a335610def3fa20ba93372bbdb6bf90d025 /libbuild2/cc/common.cxx | |
parent | 7382e4bf15d11b9200d6220b2a89e1f82b220c5e (diff) |
Add ${c,cxx}.deduplicate_export_libs() function
This function deduplicates interface library dependencies by removing
libraries that are also interface dependencies of the specified
libraries. This can result in significantly better build performance for
heavily interface-interdependent library families (for example, like Boost).
Typical usage:
import intf_libs = ...
import intf_libs += ...
...
import intf_libs += ...
intf_libs = $cxx.deduplicate_export_libs($intf_libs)
Diffstat (limited to 'libbuild2/cc/common.cxx')
-rw-r--r-- | libbuild2/cc/common.cxx | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libbuild2/cc/common.cxx b/libbuild2/cc/common.cxx index 934ea38..b3a5724 100644 --- a/libbuild2/cc/common.cxx +++ b/libbuild2/cc/common.cxx @@ -165,6 +165,8 @@ namespace build2 // these variables are not overridable) and pass the base scope we // have already resolved. // + // See also deduplicate_export_libs() if changing anything here. + // // @@ PERF: do target_only (helps a bit in non-installed case)? // { |