diff options
author | Rene Rivera <grafikrobot@gmail.com> | 2016-07-21 20:14:48 -0500 |
---|---|---|
committer | Rene Rivera <grafikrobot@gmail.com> | 2016-07-21 20:14:48 -0500 |
commit | 1e1036eafbe542b41f00ad3ac04a4d1e3cfa1f24 (patch) | |
tree | c39cfe16bb9ab4885058144c2e591674c96e4142 /doc | |
parent | f8b27424ad61f8c0d98e595066000c099331ac4c (diff) | |
download | boost-1e1036eafbe542b41f00ad3ac04a4d1e3cfa1f24.tar.gz |
Restructure how library & tools docs are included.
This is the first step in redesigning the doc building into something
that is automatic and doesn't require constant editing to add new
libraries and possibly other features (like building a smaller doc
subset).
This change adds generated xml documents that contain the include
references to the library documentation.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Jamfile.v2 | 223 | ||||
-rw-r--r-- | doc/src/boost.xml | 53 |
2 files changed, 139 insertions, 137 deletions
diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index 354231ee70..cca6d6cd2d 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -1,15 +1,28 @@ # Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com> +# Copyright (c) 2016 Rene Rivera # # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -project boost/doc ; + +project boost/doc + : requirements + <xsl:param>boost.libraries=../../libs/libraries.htm + <format>html:<xsl:param>chunker.output.doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" + <format>html:<xsl:param>chunker.output.doctype-system="http://www.w3.org/TR/html4/loose.dtd" + ; + import boostbook : boostbook ; +import project ; +import targets ; +import print ; +import type ; +import generators ; +import sequence ; +import path ; path-constant BOOST_DOC : . ; -alias asio : ../libs/asio/doc//asio/<xsl:param>boost.libraries=../../libs/libraries.htm ; - if "--release-build" in [ modules.peek : ARGV ] { import project ; @@ -44,119 +57,157 @@ if "--release-build" in [ modules.peek : ARGV ] # post-index generation docbook, rather than interprocess.xml which is the pre-indexed boostbook. # +local rule component-order ( x y ) +{ + local a = [ MATCH "(/libs/[^/]+)" "(/tools/[^/]+)" : $(x:G) $(x:G=) ] ; + local b = [ MATCH "(/libs/[^/]+)" "(/tools/[^/]+)" : $(y:G) $(y:G=) ] ; + if $(a[1]) < $(b[1]) + { + return true ; + } + else if $(a[1]) = $(b[1]) && $(x) < $(y) + { + return true ; + } +} + +rule xinclude-generator ( target : sources * : properties * ) +{ + print.output $(target) ; + local includes ; + sources = [ sequence.insertion-sort $(sources) : component-order ] ; + locate = [ path.root [ on $(target) return $(LOCATE) ] [ path.pwd ] ] ; + for local xml in $(sources) + { + local dir ; + dir ?= [ on $(xml) return $(LOCATE) ] ; + dir ?= [ on $(xml) return $(SEARCH) ] ; + dir ?= "" ; + dir = [ path.root $(dir[1]) [ path.pwd ] ] ; + dir = [ path.relative-to $(locate) $(dir) ] ; + includes += "<xi:include href=\"$(dir[1])/$(xml:G=)\"/>" ; + } + print.text + "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<xml xmlns:xi=\"http://www.w3.org/2003/XInclude\">" + $(includes) + "</xml>" + ; +} +type.register XINCLUDE_XML : xinclude : XML ; +generators.register-composing $(__name__).xinclude-generator : XML : XINCLUDE_XML ; + +rule xinclude ( name : sources * : requirements * : default-build * : usage-requirements * ) +{ + targets.create-typed-target XINCLUDE_XML + : [ project.current ] + : $(name) + : $(sources) + : $(requirements) + : $(default-build) + : $(usage-requirements) + ; +} + +xinclude libraries : + ../libs/accumulators/doc//accumulators + ../libs/algorithm/string/doc/string_algo.xml + ../libs/align/doc//align + ../libs/any/doc/any.xml + ../libs/array/doc/array.xml + ../libs/atomic/doc//atomic + ../libs/chrono/doc//chrono + ../libs/circular_buffer/doc//standalone/<format>docbook + ../libs/container/doc//standalone/<format>docbook + #../libs/crc/doc//crc + ../libs/date_time/xmldoc/date_time.xml + ../libs/dll/doc//dll-doc/<format>docbook + ../libs/foreach/doc//foreach + ../libs/function/doc/function.xml + ../libs/functional/hash/doc//hash + ../libs/heap/doc//heap + ../libs/interprocess/doc//standalone/<format>docbook + ../libs/intrusive/doc//standalone/<format>docbook + ../libs/lambda/doc/lambda.xml + ../libs/lexical_cast/doc//lexical_cast + ../libs/lockfree/doc//lockfree + ../libs/logic/doc//tribool/<format>docbook + ../libs/metaparse/doc//metaparse + ../libs/move/doc//move + ../libs/multi_array/doc/xml/bbref.xml + ../libs/mpi/doc//mpi + ../libs/predef/doc//boostdoc + ../libs/program_options/doc/program_options.xml + ../libs/property_tree/doc//property_tree + ../libs/proto/doc//proto + #../libs/proto/doc//protodoc.xml + ../libs/random/doc//random + ../libs/ratio/doc//ratio + ../libs/signals/doc/signals.xml + ../libs/signals2/doc/signals.xml + #../libs/spirit/doc//spirit + ../libs/static_assert/doc//static_assert + ../libs/thread/doc//thread + ../libs/tr1/doc//tr1 + ../libs/type_erasure/doc//type_erasure + ../libs/type_index/doc//type_index + #../libs/type_traits/doc//type_traits + ../libs/typeof/doc//typeof + ../libs/units/doc//units + ../libs/variant/doc/variant.xml + ../libs/unordered/doc//unordered + ../libs/xpressive/doc//xpressive + ; +explicit libraries ; + +xinclude tools : + ../tools/build/doc//jam_docs + ../tools/quickbook/doc//quickbook + ../tools/boostbook/doc/boostbook.xml + ../tools/build/doc/src/userman.xml + ; +explicit tools ; + boostbook doc : src/boost.xml : + <dependency>libraries + <implicit-dependency>libraries + <dependency>tools + <implicit-dependency>tools + ## Build the various generated docs (Doxygen and QuickBook)... + ## TODO: These should all eventually be moved to the respective library doc targets. <dependency>../libs/accumulators/doc//accdoc.xml <dependency>../libs/accumulators/doc//statsdoc.xml <dependency>../libs/accumulators/doc//opdoc.xml - <dependency>../libs/accumulators/doc//accumulators - <dependency>../libs/circular_buffer/doc//standalone/<format>docbook - <dependency>../libs/lexical_cast/doc//lexical_cast - #<dependency>../libs/crc/doc//crc #<dependency>../libs/crc/doc//autodoc.xml - <dependency>../libs/chrono/doc//chrono - <dependency>../libs/dll/doc//dll-doc <dependency>../libs/program_options/doc//autodoc.xml <dependency>../libs/algorithm/string/doc//autodoc.xml - <dependency>../libs/logic/doc//reference.xml - <dependency>../libs/functional/hash/doc//hash - #<dependency>../libs/type_traits/doc//type_traits - <dependency>../libs/static_assert/doc//static_assert - <dependency>../libs/tr1/doc//tr1 - <dependency>../libs/foreach/doc//foreach - <dependency>../libs/mpi/doc//mpi <dependency>../libs/mpi/doc//mpi_autodoc.xml <dependency>../libs/property_tree/doc//autodoc.xml - <dependency>../libs/property_tree/doc//property_tree - #<dependency>../libs/proto/doc//protodoc.xml - <dependency>../libs/proto/doc//proto - <dependency>../libs/ratio/doc//ratio - <dependency>../libs/typeof/doc//typeof <dependency>../libs/xpressive/doc//autodoc.xml - <dependency>../libs/xpressive/doc//xpressive <dependency>../libs/date_time/xmldoc//date_time_autodoc.xml <dependency>../libs/date_time/xmldoc//gregorian_autodoc.xml <dependency>../libs/date_time/xmldoc//posix_time_autodoc.xml <dependency>../libs/date_time/xmldoc//local_time_autodoc.xml - <dependency>../tools/build/doc//jam_docs - <dependency>../tools/quickbook/doc//quickbook - <dependency>../libs/interprocess/doc//standalone/<format>docbook - <dependency>../libs/intrusive/doc//standalone/<format>docbook <dependency>../libs/move/doc//autodoc.xml - <dependency>../libs/move/doc//move - <dependency>../libs/container/doc//standalone/<format>docbook - <dependency>../libs/units/doc//units - <dependency>../libs/unordered/doc//unordered - <dependency>../libs/thread/doc//thread <dependency>../libs/signals2/doc//hello_world_def_code_snippet.xml - <dependency>../libs/random/doc//random - #<dependency>../libs/spirit/doc//spirit <dependency>../libs/heap/doc//autodoc.xml - <dependency>../libs/heap/doc//heap <dependency>../libs/lockfree/doc//autodoc.xml - <dependency>../libs/lockfree/doc//lockfree - <dependency>../libs/atomic/doc//atomic - <dependency>../libs/type_erasure/doc//type_erasure - <dependency>../libs/align/doc//align - <dependency>../libs/type_index/doc//type_index - <dependency>../libs/metaparse/doc//metaparse - - ## Add path references to the QuickBook generated docs... - - <implicit-dependency>../libs/accumulators/doc//accumulators - <implicit-dependency>../libs/chrono/doc//chrono - <implicit-dependency>../libs/lexical_cast/doc//lexical_cast - #<implicit-dependency>../libs/crc/doc//crc - <implicit-dependency>../libs/dll/doc//dll-doc - <implicit-dependency>../libs/functional/hash/doc//hash - #<implicit-dependency>../libs/type_traits/doc//type_traits - <implicit-dependency>../libs/static_assert/doc//static_assert - <implicit-dependency>../libs/tr1/doc//tr1 - <implicit-dependency>../libs/foreach/doc//foreach - <implicit-dependency>../libs/property_tree/doc//property_tree - <implicit-dependency>../libs/proto/doc//proto - <implicit-dependency>../libs/ratio/doc//ratio - <implicit-dependency>../libs/typeof/doc//typeof - <implicit-dependency>../libs/xpressive/doc//xpressive - <implicit-dependency>../tools/build/doc//jam_docs - <implicit-dependency>../tools/quickbook/doc//quickbook - <implicit-dependency>../libs/mpi/doc//mpi - <implicit-dependency>../libs/circular_buffer/doc//standalone/<format>docbook - <implicit-dependency>../libs/container/doc//standalone/<format>docbook - <implicit-dependency>../libs/interprocess/doc//standalone/<format>docbook - <implicit-dependency>../libs/intrusive/doc//standalone/<format>docbook - <implicit-dependency>../libs/move/doc//move - <implicit-dependency>../libs/units/doc//units - <implicit-dependency>../libs/unordered/doc//unordered - <implicit-dependency>../libs/thread/doc//thread - <implicit-dependency>../libs/signals2/doc//hello_world_def_code_snippet.xml - <implicit-dependency>../libs/random/doc//random - #<implicit-dependency>../libs/spirit/doc//spirit - <implicit-dependency>../libs/heap/doc//heap - <implicit-dependency>../libs/lockfree/doc//lockfree - <implicit-dependency>../libs/atomic/doc//atomic - <implicit-dependency>../libs/type_erasure/doc//type_erasure - <implicit-dependency>../libs/align/doc//align - <implicit-dependency>../libs/type_index/doc//type_index - <implicit-dependency>../libs/metaparse/doc//metaparse - <xsl:param>boost.libraries=../../libs/libraries.htm - <format>html:<xsl:param>chunker.output.doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" - <format>html:<xsl:param>chunker.output.doctype-system="http://www.w3.org/TR/html4/loose.dtd" + ## Add path references to generated docs... + + <implicit-dependency>../libs/signals2/doc//hello_world_def_code_snippet.xml <dependency>images <dependency>callouts + <xsl:path>$(BOOST_DOC) ; install images : [ glob src/images/*.png ] : <location>html/images ; explicit images ; install callouts : [ glob src/images/callouts/*.png ] : <location>html/images/callouts ; explicit callouts ; - - - - diff --git a/doc/src/boost.xml b/doc/src/boost.xml index 736665f71c..3f6229e6f0 100644 --- a/doc/src/boost.xml +++ b/doc/src/boost.xml @@ -37,48 +37,7 @@ <part id="libraries"> <title>The Boost C++ Libraries (BoostBook Subset)</title> - <xi:include href="accumulators.xml"/> - <xi:include href="align.xml"/> - <xi:include href="../../libs/any/doc/any.xml"/> - <xi:include href="../../libs/array/doc/array.xml"/> - <xi:include href="atomic.xml"/> - <xi:include href="chrono.xml"/> - <xi:include href="circular_buffer.auto_index.docbook"/> - <xi:include href="container.auto_index.docbook"/> - <xi:include href="../../libs/date_time/xmldoc/date_time.xml"/> - <xi:include href="dll.xml"/> - <xi:include href="foreach.xml"/> - <xi:include href="../../libs/function/doc/function.xml"/> - <xi:include href="hash.xml"/> - <xi:include href="heap.xml"/> - <xi:include href="interprocess.auto_index.docbook"/> - <xi:include href="intrusive.auto_index.docbook"/> - <xi:include href="../../libs/lambda/doc/lambda.xml"/> - <xi:include href="lexical_cast.xml"/> - <xi:include href="lockfree.xml"/> - <xi:include href="metaparse.xml"/> - <xi:include href="move.xml"/> - <xi:include href="../../libs/multi_array/doc/xml/bbref.xml"/> - <xi:include href="mpi.xml"/> - <xi:include href="../../libs/program_options/doc/program_options.xml"/> - <xi:include href="property_tree.xml"/> - <xi:include href="proto.xml"/> - <xi:include href="random.xml"/> - <xi:include href="ratio.xml"/> - <xi:include href="../../libs/signals/doc/signals.xml"/> - <xi:include href="../../libs/signals2/doc/signals.xml"/> - <xi:include href="static_assert.xml"/> - <xi:include href="../../libs/algorithm/string/doc/string_algo.xml"/> - <xi:include href="thread.xml"/> - <xi:include href="tr1.xml"/> - <xi:include href="../../libs/logic/doc/tribool.boostbook"/> - <xi:include href="type_erasure.xml"/> - <xi:include href="type_index.xml"/> - <xi:include href="typeof.xml"/> - <xi:include href="units.xml"/> - <xi:include href="unordered.xml"/> - <xi:include href="../../libs/variant/doc/variant.xml"/> - <xi:include href="xpressive.xml"/> + <xi:include href="libraries.xinclude" xpointer="xpointer(/*/node())"/> </part> <part id="tools"> @@ -95,14 +54,6 @@ or for use with their own applications. </para> </partintro> - <xi:include href="../../tools/boostbook/doc/boostbook.xml"/> - <xi:include href="quickbook.xml"/> - <xi:include href="jam_docs.xml"/> - <xi:include href="../../tools/build/doc/src/userman.xml"/> + <xi:include href="tools.xinclude" xpointer="xpointer(/*/node())"/> </part> </boostbook> - - - - - |