summaryrefslogtreecommitdiff
path: root/doc/Jamfile.v2
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Jamfile.v2')
-rw-r--r--doc/Jamfile.v2232
1 files changed, 146 insertions, 86 deletions
diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2
index 354231ee70..a3fb293746 100644
--- a/doc/Jamfile.v2
+++ b/doc/Jamfile.v2
@@ -1,14 +1,77 @@
# 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 ;
+local BOOST_DOC_LIBS =
+ ../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
+ ;
if "--release-build" in [ modules.peek : ARGV ]
{
@@ -18,7 +81,12 @@ if "--release-build" in [ modules.peek : ARGV ]
: [ modules.peek project : JAMFILE ] ] ;
for local lib-doc in $(lib-docs:D)
{
- build-project [ path.relative-to $(BOOST_DOC) $(lib-doc) ] ;
+ local lib-doc-project = [ path.relative-to $(BOOST_DOC) $(lib-doc) ] ;
+ local boost-doc-lib = [ MATCH "^($(lib-doc-project))" : $(BOOST_DOC_LIBS) ] ;
+ if ! $(boost-doc-lib)
+ {
+ build-project $(lib-doc-project) ;
+ }
}
}
@@ -44,119 +112,111 @@ 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 :
+ $(BOOST_DOC_LIBS)
+ ;
+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 ;
-
-
-
-