Boost logo

Boost-Build :

Subject: [Boost-build] Make targets with specific install-type
From: Chambers, Matthew (matt.chambers42_at_[hidden])
Date: 2017-09-15 15:35:19


After updating Boost.Build to the latest master, I found that my install rules with explicit install-types were no longer installing make
targets. This was presumably a bug fix since make targets have type names equal to the target name, and install rules with explicit
install-types are not supposed to install any other types. So it's more consistent now. But now I need to be able to specify which make
targets to install and which not to, and it would be more sensible to be able to give them an explicit install-type for my install rule to
reference rather than change my install rule to have requirements like <install-type>MyTargetA <install-type>MyTargetB etc. Would this
change be acceptable upstream? Is this the place to make the change? make.jam (pseudocode):

rule construct ( name : source-targets * : property-set )
 Â Â Â  {
 Â Â Â Â Â Â Â  local action-name = [ $(property-set).get <action> ] ;
 Â Â Â Â Â Â Â  # 'm' will always be set -- we add '@' ourselves in the 'make' rule
 Â Â Â Â Â Â Â  # below.
 Â Â Â Â Â Â Â  local m = [ MATCH ^@(.*) : $(action-name) ] ;

 Â Â Â Â Â Â Â  # if <install-type> in $(property-set), then target-type = $(property-set).get <install-type>
 Â Â Â Â Â Â Â  # else <target-type = $(self.name)

 Â Â Â Â Â Â Â  local a = [ new action $(source-targets) : $(m[1]) : $(property-set) ] ;
 Â Â Â Â Â Â Â  local t = [ new file-target $(self.name) exact : [ type.type
 Â Â Â Â Â Â Â Â Â Â Â  $(target-type) ] : $(self.project) : $(a) ] ;
 Â Â Â Â Â Â Â  return [ property-set.empty ] [ virtual-target.register $(t) ] ;
 Â Â Â  }


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk