Skip to content

Commit

Permalink
Fix doc build
Browse files Browse the repository at this point in the history
  • Loading branch information
sdkrystian committed Feb 29, 2020
1 parent c47cdb5 commit 5dafb09
Show file tree
Hide file tree
Showing 5 changed files with 285 additions and 144 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ bin64/
# Because of CMake and VS2017
Win32/
x64/

.vs/
out/
184 changes: 149 additions & 35 deletions doc/Jamfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#
# Copyright (c) 2013-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2020 Krystian Stasiowski (sdkrystian at gmail dot com)
#
# 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)
Expand All @@ -15,6 +16,7 @@ import xsltproc ;
import doxygen ;
import modules ;
import saxonhe ;
import common ;

#-------------------------------------------------------------------------------
#
Expand All @@ -30,36 +32,12 @@ local sources = [ path.glob-tree ../include/boost/static_string : *.hpp *.ipp :
.doxygen = [ doxygen.name ] ;
.doxygen ?= doxygen ;

#ECHO Using doxygen from "$(.doxygen)" ;

.xsltproc = [ xsltproc.name ] ;
.xsltproc ?= xsltproc ;

#-------------------------------------------------------------------------------
#
# Generate transform.xsl. This xsl transfomration takes as input
# the Doxygen-generated XML and produces QuickBook output.
#
make transform.xsl
:
docca/include/docca/doxygen.xsl
xsl/config.xsl
xsl/class_detail.xsl
xsl/includes.xsl
xsl/includes_foot.xsl
:
@make_transform
;

# Make a copy of the docca transform. Then, insert our
# customizations into the specially marked locations using sed.
#
actions make_transform
{
cp $(2[1]) $(1)
sed -i -e "/<!-- CONFIG_TEMPLATE -->/{r $(2[2])" -e "d}" $(1)
sed -i -e "/<!-- CLASS_DETAIL_TEMPLATE -->/{r $(2[3])" -e "d}" $(1)
sed -i -e "/<!-- INCLUDES_TEMPLATE -->/{r $(2[4])" -e "d}" $(1)
sed -i -e "/<!-- INCLUDES_FOOT_TEMPLATE -->/{r $(2[5])" -e "d}" $(1)
}
#ECHO Using xsltproc from "$(.xsltproc)" ;

#-------------------------------------------------------------------------------
#
Expand Down Expand Up @@ -102,8 +80,144 @@ else
}
}

#-------------------------------------------------------------------------------
#
# Copy all the XSLT modules to the target directory.
#
# FIXME: Change this so we can just specify a directory,
# rather than every file individually.
#
# Also, somehow force dependencies in a general way
# such that the XSLT has to be executed again
# if any of the modules change. For example,
# if base-extract-xml-pages.xml changes, then
# an invocation of extract-xml-pages.xsl (which
# imports the former) must be run again.
#
path-constant docca : ../../../tools/docca ;
make extract-xml-pages.xsl : $(docca)/include/docca/extract-xml-pages.xsl : @copy_script ;
make base-extract-xml-pages.xsl : $(docca)/include/docca/base-extract-xml-pages.xsl : @copy_script ;
make common.xsl : $(docca)/include/docca/common.xsl : @copy_script ;
make stage1.xsl : $(docca)/include/docca/stage1.xsl : @copy_script ;
make base-stage1.xsl : $(docca)/include/docca/base-stage1.xsl : @copy_script ;
make stage2.xsl : $(docca)/include/docca/stage2.xsl : @copy_script ;
make assemble-quickbook.xsl : $(docca)/include/docca/assemble-quickbook.xsl : @copy_script ;
make emphasized-types.xsl : $(docca)/include/docca/emphasized-types.xsl : @copy_script ;

make config.xsl
:
$(docca)/include/docca/config.xsl
xsl/config.xsl
xsl/class_detail.xsl
xsl/includes.xsl
:
@make_config
;

actions make_config
{
cp $(2[1]) $(1)
sed -i -e "/<!-- CONFIG_TEMPLATE -->/{r $(2[2])" -e "d}" $(1)
sed -i -e "/<!-- CLASS_DETAIL_TEMPLATE -->/{r $(2[3])" -e "d}" $(1)
sed -i -e "/<!-- INCLUDES_TEMPLATE -->/{r $(2[4])" -e "d}" $(1)
}

# Make a copy of the given file.
#
actions copy_script
{
cp $(2[1]) $(1)
}


# This is to initially create the directory as a side effect; I'm sure there's a better way...
make xml-pages/directory/placeholder : index.xml : @null_action ;

#-------------------------------------------------------------------------------
#
# Run index.xml through the first transformation stage
# (assembling and splitting the XML into page-specific files).
#
make xml-pages.xml
:
index.xml
extract-xml-pages.xsl

# Make bjam aware of additional dependencies
base-extract-xml-pages.xsl
config.xsl
common.xsl
:
saxonhe.saxonhe
;

# This is just to make the directory eligible as a source
make xml-pages : index.xml : @null_action ;

# Not ready for prime time until I figure out how to get the xslt-visualizer code in place
#make stage1/code-trace-enabled/stage1.xsl
# :
# stage1.xsl
# xslt-visualizer/xsl/trace-enable.xsl
# :
# saxonhe.saxonhe
# ;

# This is to initially create the directory as a side effect; I'm sure there's a better way...
make stage1/results/directory/placeholder : xml-pages.xml : @null_action ;
make stage2/results/directory/placeholder : xml-pages.xml : @null_action ;

# TODO: figure out why this (and the following stage) get built every time
make stage1/results
:
xml-pages
stage1.xsl

# additional dependencies
xml-pages.xml
base-stage1.xsl
config.xsl
common.xsl
:
saxonhe.saxonhe_dir
;

make stage2/results
:
stage1/results
stage2.xsl

# additional dependencies
emphasized-types.xsl
:
saxonhe.saxonhe_dir
;

make reference.qbk
:
xml-pages.xml
assemble-quickbook.xsl

# TODO: make this input to the XSLT somehow
# rather than relying on it being hard-coded
# in the XSLT (which it is!)
stage2/results
:
saxonhe.saxonhe
;

actions make_dir
{
mkdir $(1)
}

make combine.xslt : index.xml : @null_action ;

actions touch_file
{
touch $(1) ;
}

actions null_action
{
touch -c $(1) ;
Expand All @@ -127,13 +241,13 @@ actions call-xsltproc
# Produce the reference.qbk file by running
# the reference xml through the transform.
#
make reference.qbk
:
reference.xml
transform.xsl
:
saxonhe.saxonhe
;
#make reference.qbk
# :
# reference.xml
# transform.xsl
# :
# saxonhe.saxonhe
# ;

# We have to make a copy of reference.qbk and put it
# in a place where the static .qbk files can find it
Expand Down
7 changes: 6 additions & 1 deletion doc/source.dox
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,12 @@ INCLUDE_PATH = ../
INCLUDE_FILE_PATTERNS =

PREDEFINED = \
BOOST_STATIC_STRING_DOCS
BOOST_STATIC_STRING_DOCS \
"BOOST_STATIC_STRING_CPP11_CONSTEXPR=constexpr" \
"BOOST_STATIC_STRING_CPP14_CONSTEXPR=constexpr" \
"BOOST_STATIC_STRING_CPP17_CONSTEXPR=constexpr" \
"BOOST_STATIC_STRING_CPP20_CONSTEXPR=constexpr"

EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES

Expand Down
2 changes: 1 addition & 1 deletion doc/xsl/config.xsl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- Variables (Edit for your project) -->
<xsl:variable name="doc-ref" select="'static_string.ref.'"/>
<xsl:variable name="doc-ref" select="'static_string.ref'"/>
<xsl:variable name="doc-ns" select="'boost::static_strings'"/>
<xsl:variable name="debug" select="0"/>
<xsl:variable name="private" select="0"/>
Expand Down
Loading

0 comments on commit 5dafb09

Please sign in to comment.