|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r80011 - trunk/tools/build/v2/tools
From: jurko.gospodnetic_at_[hidden]
Date: 2012-08-13 12:53:20
Author: jurko
Date: 2012-08-13 12:53:19 EDT (Mon, 13 Aug 2012)
New Revision: 80011
URL: http://svn.boost.org/trac/boost/changeset/80011
Log:
Boost Build tools/boostbook.jam module cleanup - boostbook targets no longer constructed using a generator for the fake BOOSTBOOK_MAIN type. A clean custom basic-target class is used now instead, corresponding to how similar work is done in the tools/doxygen.jam module.
Text files modified:
trunk/tools/build/v2/tools/boostbook.jam | 76 ++++++++++++++-------------------------
1 files changed, 28 insertions(+), 48 deletions(-)
Modified: trunk/tools/build/v2/tools/boostbook.jam
==============================================================================
--- trunk/tools/build/v2/tools/boostbook.jam (original)
+++ trunk/tools/build/v2/tools/boostbook.jam 2012-08-13 12:53:19 EDT (Mon, 13 Aug 2012)
@@ -71,9 +71,6 @@
type.register MANPAGES ;
type.register TESTS : tests ;
-# Artificial target type used to invoke the top-level BoostBook generator.
-type.register BOOSTBOOK_MAIN ;
-
# Initialize BoostBook support.
#
@@ -630,24 +627,17 @@
}
-class boostbook-generator : generator
+class boostbook-target-class : basic-target
{
- import boostbook ;
- import feature ;
import generators ;
+ import property-set ;
import virtual-target ;
- rule __init__ ( * : * )
- {
- generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8)
- : $(9) : $(10) : $(11) : $(12) : $(13) : $(14) : $(15) : $(16) :
- $(17) : $(18) : $(19) ;
- }
-
- rule run ( project name ? : property-set : sources * )
+ rule construct ( name : sources * : property-set )
{
# Generate the catalog, but only once.
- local global-catalog = [ boostbook.xml-catalog $(project) ] ;
+ IMPORT boostbook : xml-catalog : $(__name__) : boostbook.xml-catalog ;
+ local global-catalog = [ boostbook.xml-catalog [ project ] ] ;
local catalog = $(global-catalog[1]) ;
local catalog-file = $(global-catalog[2]) ;
local targets ;
@@ -672,61 +662,51 @@
case tests : type = TESTS ;
}
+ local target ;
if $(manifest)
{
- # Create DOCBOOK file from BOOSTBOOK sources.
- local base-target = [ generators.construct $(project) : DOCBOOK :
- $(property-set) : $(sources) ] ;
- base-target = $(base-target[2]) ;
- $(base-target).depends $(catalog) ;
-
- # Generate HTML/PDF/PS from DOCBOOK.
- local target = [ generators.construct $(project) $(name)_$(manifest)
- : $(type) : [ $(property-set).add-raw
- <xsl:param>manifest=$(name)_$(manifest) ] : $(base-target) ] ;
+ # Sources --> DOCBOOK.
+ local docbook-target = [ generators.construct [ project ] : DOCBOOK
+ : $(property-set) : $(sources) ] ;
+ docbook-target = $(docbook-target[2]) ;
+ $(docbook-target).depends $(catalog) ;
+
+ # DOCBOOK --> type.
+ target = [ generators.construct [ project ] $(name)_$(manifest) :
+ $(type) : [ $(property-set).add-raw
+ <xsl:param>manifest=$(name)_$(manifest) ] : $(docbook-target) ]
+ ;
+ target = $(target[2]) ;
local name = [ $(property-set).get <name> ] ;
name ?= $(format) ;
- $(target[2]).set-path $(name) ;
- $(target[2]).depends $(catalog) ;
-
- targets += $(target[2]) ;
+ $(target).set-path $(name) ;
}
else
{
- local target = [ generators.construct $(project) : $(type) :
+ # Sources --> type.
+ local target = [ generators.construct [ project ] : $(type) :
$(property-set) : $(sources) ] ;
-
+ target = $(target[2]) ;
if ! $(target)
{
import errors ;
- errors.error Cannot build documentation type '$(format)' ;
- }
- else
- {
- $(target[2]).depends $(catalog) ;
- targets += $(target[2]) ;
+ errors.error Cannot build documentation type '$(format)'. ;
}
}
+ $(target).depends $(catalog) ;
- return $(targets) ;
+ return [ property-set.empty ] $(target) ;
}
}
-generators.register [ new boostbook-generator boostbook.main : : BOOSTBOOK_MAIN
- ] ;
-
# Declare a boostbook target.
#
rule boostbook ( target-name : sources * : requirements * : default-build * )
{
- local project = [ project.current ] ;
- targets.main-target-alternative [ new typed-target $(target-name) :
- $(project) : BOOSTBOOK_MAIN
- : [ targets.main-target-sources $(sources) : $(target-name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ] ]
- ;
+ return [ targets.create-metatarget boostbook-target-class :
+ [ project.current ] : $(target-name) : $(sources) : $(requirements) :
+ $(default-build) ] ;
}
Boost-Commit 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