diff options
author | Steven Watanabe <steven@providere-consulting.com> | 2016-02-25 13:42:49 -0700 |
---|---|---|
committer | Peter Dimov <pdimov@pdimov.com> | 2017-12-21 01:55:53 +0200 |
commit | 000f1c3a0ded2958fb0a69231a4d7e810998b987 (patch) | |
tree | 9e8605a614ef0abaf64acb98a9e5666400882627 | |
parent | a233bccaef9960f599ed61e7c3532ad5880f1f42 (diff) | |
download | boost-000f1c3a0ded2958fb0a69231a4d7e810998b987.tar.gz |
Avoid generating massive numbers of <implicit-dependency>s as this causes a significant performance cost.
-rw-r--r-- | Jamroot | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -129,6 +129,10 @@ import xsltproc ; import set ; import path ; import link ; +import notfile ; +import virtual-target ; +import "class" : new ; +import property-set ; import threadapi-feature ; path-constant BOOST_ROOT : . ; @@ -246,7 +250,21 @@ for local l in $(all-libraries) # Log has an additional target explicit-alias log_setup : libs/log/build//boost_log_setup ; -alias headers : $(all-headers)-headers : : : <include>. ; +rule do-nothing { } + +rule generate-alias ( project name : property-set : sources * ) +{ + local action-name = [ $(property-set).get <action> ] ; + local m = [ MATCH ^@(.*) : $(action-name) ] ; + property-set = [ property-set.empty ] ; + local action = [ new action $(sources) : $(m[1]) : $(property-set) ] ; + local t = [ new notfile-target $(name) : $(project) : $(action) ] ; + return [ virtual-target.register $(t) ] ; +} + +generate headers : $(all-headers)-headers : <generating-rule>@generate-alias <action>@do-nothing : : <include>. ; + +#alias headers : $(all-headers)-headers : : : <include>. ; explicit headers ; # Make project ids of all libraries known. |