diff options
Diffstat (limited to 'doc/Jamfile.v2')
-rw-r--r-- | doc/Jamfile.v2 | 232 |
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 ; - - - - |