summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRene Rivera <grafikrobot@gmail.com>2016-07-21 20:14:48 -0500
committerRene Rivera <grafikrobot@gmail.com>2016-07-21 20:14:48 -0500
commit1e1036eafbe542b41f00ad3ac04a4d1e3cfa1f24 (patch)
treec39cfe16bb9ab4885058144c2e591674c96e4142 /doc
parentf8b27424ad61f8c0d98e595066000c099331ac4c (diff)
downloadboost-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.v2223
-rw-r--r--doc/src/boost.xml53
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>
-
-
-
-
-