diff options
author | Steven Watanabe <steven@providere-consulting.com> | 2016-02-25 13:42:49 -0700 |
---|---|---|
committer | Steven Watanabe <steven@providere-consulting.com> | 2016-02-25 13:42:49 -0700 |
commit | 84fdd4d0252dabbba58a9c5140bacd3aa74c7c3d (patch) | |
tree | 07a0c413bfaa2c6ec5c72593bc3c85d7e1e3e551 /Jamroot | |
parent | 5970585cdabce3b2592cd6bf212ab3c8943a531b (diff) | |
download | boost-84fdd4d0252dabbba58a9c5140bacd3aa74c7c3d.tar.gz |
Avoid generating massive numbers of <implicit-dependency>s as this causes a significant performance cost.
Diffstat (limited to 'Jamroot')
-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 ; path-constant BOOST_ROOT : . ; constant BOOST_VERSION : 1.61.0 ; @@ -234,7 +238,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. |