Boost logo

Boost-Commit :

From: srajko_at_[hidden]
Date: 2007-05-25 14:02:53


Author: srajko
Date: 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
New Revision: 4250
URL: http://svn.boost.org/trac/boost/changeset/4250

Log:
FileTemplate version 0.9

Added:
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk.py
      - copied, changed from r4247, /sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2.py
      - copied, changed from r4225, /sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/html/options.py
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/options.py
   sandbox/template_under_construction/$template_library$/options.py
   sandbox/template_under_construction/file_template/
   sandbox/template_under_construction/file_template/Jamfile.v2
   sandbox/template_under_construction/file_template/LICENSE_1_0.txt
   sandbox/template_under_construction/file_template/boost-build.jam
   sandbox/template_under_construction/file_template/libs/
   sandbox/template_under_construction/file_template/libs/file_template/
   sandbox/template_under_construction/file_template/libs/file_template/build/
   sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/
   sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/build.vcproj
   sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/doc.vcproj
   sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/example.vcproj
   sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/file_template.sln
   sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/test.vcproj
   sandbox/template_under_construction/file_template/libs/file_template/doc/
   sandbox/template_under_construction/file_template/libs/file_template/doc/Jamfile.v2
   sandbox/template_under_construction/file_template/libs/file_template/doc/file_template.qbk
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/boostbook.css
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/Thumbs.db (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/blank.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/caution.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/draft.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/home.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/important.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/next.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/note.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/prev.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/tip.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/toc-blank.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/toc-minus.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/toc-plus.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/up.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/warning.png (contents, props changed)
   sandbox/template_under_construction/file_template/libs/file_template/doc/html/reference.css
   sandbox/template_under_construction/file_template/libs/file_template/doc/sandbox.qbk
   sandbox/template_under_construction/file_template/libs/file_template/doc/templates.qbk
   sandbox/template_under_construction/file_template/project-root.jam
Removed:
   sandbox/template_under_construction/$template_library$/libs/$template_library$/build/$template_library$.sln
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2
Text files modified:
   sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide.py | 13 ++
   sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide/doc.vcproj | 2
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk.py | 170 +++++++++------------------------------
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2.py | 47 ++++++++--
   sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/dox/$template_library$.hpp | 3
   sandbox/template_under_construction/make_template.py | 76 ++++++++++++-----
   sandbox/template_under_construction/sandbox.py | 18 +++
   7 files changed, 163 insertions(+), 166 deletions(-)

Deleted: sandbox/template_under_construction/$template_library$/libs/$template_library$/build/$template_library$.sln
==============================================================================
--- sandbox/template_under_construction/$template_library$/libs/$template_library$/build/$template_library$.sln 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
+++ (empty file)
@@ -1,37 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "build", "build.vcproj", "{$template_msvc_build_uuid$}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc", "doc.vcproj", "{$template_msvc_doc_uuid_}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "example.vcproj", "{$template_msvc_example_uuid_}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcproj", "{$template_msvc_test_uuid_}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- debug|Win32 = debug|Win32
- release|Win32 = release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {$template_msvc_build_uuid$}.debug|Win32.ActiveCfg = debug|Win32
- {$template_msvc_build_uuid$}.debug|Win32.Build.0 = debug|Win32
- {$template_msvc_build_uuid$}.release|Win32.ActiveCfg = release|Win32
- {$template_msvc_build_uuid$}.release|Win32.Build.0 = release|Win32
- {$template_msvc_doc_uuid$}.debug|Win32.ActiveCfg = release|Win32
- {$template_msvc_doc_uuid$}.debug|Win32.Build.0 = release|Win32
- {$template_msvc_doc_uuid$}.release|Win32.ActiveCfg = release|Win32
- {$template_msvc_doc_uuid$}.release|Win32.Build.0 = release|Win32
- {$template_msvc_example_uuid$}.debug|Win32.ActiveCfg = debug|Win32
- {$template_msvc_example_uuid$}.debug|Win32.Build.0 = debug|Win32
- {$template_msvc_example_uuid$}.release|Win32.ActiveCfg = release|Win32
- {$template_msvc_example_uuid$}.release|Win32.Build.0 = release|Win32
- {$template_msvc_test_uuid$}.debug|Win32.ActiveCfg = debug|Win32
- {$template_msvc_test_uuid$}.debug|Win32.Build.0 = debug|Win32
- {$template_msvc_test_uuid$}.release|Win32.ActiveCfg = release|Win32
- {$template_msvc_test_uuid$}.release|Win32.Build.0 = release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal

Modified: sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide.py
==============================================================================
--- sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide.py (original)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -1,5 +1,10 @@
 # template script
 
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
 if template.options.get_boolean('vc8ide', False):
 
     template.log_message('Processing MSVC 8.0 IDE template.')
@@ -9,11 +14,17 @@
 \t\t\t\tCleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
 """
 
+ _msvc_doc_build_command = """\t\t\t\tBuildCommandLine="cd ../../doc
bjam --v2 $(ConfigurationName)"
+\t\t\t\tReBuildCommandLine="cd ../../doc
bjam --v2 -a $(ConfigurationName)"
+\t\t\t\tCleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+"""
+
     template.content_replacement(['.vcproj', '.sln'], '$template_msvc_build_uuid$', str(uuid.uuid4()))
     template.content_replacement(['.vcproj', '.sln'], '$template_msvc_doc_uuid$', str(uuid.uuid4()))
     template.content_replacement(['.vcproj', '.sln'], '$template_msvc_example_uuid$', str(uuid.uuid4()))
     template.content_replacement(['.vcproj', '.sln'], '$template_msvc_test_uuid$', str(uuid.uuid4()))
- template.content_replacement(['.vcproj', '.sln'], '$template_msvc_build_command$', _msvc_build_command)
+ template.content_replacement(['.vcproj'], '$template_msvc_build_command$', _msvc_build_command)
+ template.content_replacement(['.vcproj'], '$template_msvc_doc_build_command$', _msvc_doc_build_command)
 
 else:
 

Modified: sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide/doc.vcproj
==============================================================================
--- sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide/doc.vcproj (original)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/build/vc8ide/doc.vcproj 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -23,7 +23,7 @@
>
                         <Tool
                                 Name="VCNMakeTool"
-$template_msvc_build_command$
+$template_msvc_doc_build_command$
                                 Output=""
                                 PreprocessorDefinitions="WIN32;NDEBUG"
                                 IncludeSearchPath=""

Deleted: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk
==============================================================================
--- sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
+++ (empty file)
@@ -1,159 +0,0 @@
-[/ Copyright 2007 Stjepan Rajko. ]
-[/ 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) ]
-
-$template_start$
-[library $template_library$
- [quickbook 1.4]
- [version 0.1]
- [authors $template_author_reversed$]
- [copyright $template_year$ $template_author$]
- [purpose Boost Sandbox Template]
- [license
- 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])
- ]
-]
-
-[section:overview Overview]
-
-[warning $template_Library$ is in very early stages of development. At this point, it is likely
-[*not] a good starting point for a boost sandbox project. The templates it generates have
-not been verified for adherence to Boost guidelines, and do some things that are
-inconsistent with current practices.]
-
-[section:introduction Introduction]
-
-$template_Library$ is template for Boost sandbox projects. Given some information about the project
-(e.g., library name and author), it will generate the following:
-* a directory tree for the library
-* commonly used source, documentation and build files
-* projects for several IDEs (currently MSVC, with Xcode in the works)
-
-The content in the generated project contains this documentation, which describes how
-to use the template, and an implementation of a [classref boost::$template_library$::$template_library$
-class which does nothing].
-
-[endsect]
-
-[section:start Getting Started]
-To use the project created by $template_library$ fully, you will need a few things.
-
-[important Some parts of $template_library$ will not work with versions of Boost other than CVS HEAD]
-First of all, you should familiarize yourself with Boost. A good starting point for this
-is [@http://www.boost.org/more/getting_started/index.html the getting started page].
-In particular, make sure you have installed a recent version of Boost, and have a working
-bjam executable.
-
-Second, you will need to download some additional tools to build the documentation.
-Instructions for this part can be found in the [@http://www.boost.org/doc/html/boostbook.html
-Boostbook documentation]. The projects generated by $template_library$ rely on xsltproc,
-DocBook XSL and DTD distributions, and Doxygen. $template_library$ does not currently use
-Apache FOP.
-
-Finally, you will need access to the sandbox in the
-[@http://svn.boost.org/trac/boost/wiki/BoostSubversion Boost subversion]. Follow
-the directions in the [@http://svn.boost.org/trac/boost/wiki/BoostSubversion Boost subversion wiki].
-
-Once you have all this in place, go to the template-under-construction folder of the sandbox.
-Run the make_template.py script, and follow the instructions. For example,
-the project used to build this documentation was created as follows:
-
-[python]
-
- >>> import make_template
- library name: (e.g., something_new): sandbox_template
- library author[s]: (e.g., Yours Truly[,Yours D. NotTruly]): Stjepan Rajko
-
-Some other information that might come in handy as you start working on your project:
-
-* [@http://www.boost.org/more/lib_guide.htm#Directory_structure Boost library directory structure]
-* [@http://www.stack.nl/~dimitri/doxygen/commands.html Doxygen command reference]
-* [@http://www.boost-consulting.com/boost/tools/quickbook/doc/html/index.html Quickbook reference]
-
-[endsect]
-
-
-[section:bugs Known Bugs]
-
-[endsect]
-
-[section:license License]
-
-$template_qbk_copyright$
-
-[endsect]
-
-[endsect]
-
-[section:doxygen Doxygen Documentation]
-When Doxygen documentation is used with Boostbook, as far as I can tell
-only certain elements of the Doxygen documentation (such as class and function reference) can
-be included into the main documentation. Other documentation generated by Doxygen (main and
-related pages, todo and bug lists, modules...) does not seem to be available. The rationale
-for this, AFAICR from a list discussion e-mail I can't find any more, is to make the generated
-documentation close to a C++ standard proposal (but I might be way off here).
-
-However, it is possible to have Doxygen create its own HTML output and [@../doxygen/index.html link]
-to it from the main documentation. While this will include everything Doxygen is configured
-to generate, please note that this is inconsistent with the documentation layouts of
-most recent Boost libraries.
-
-In any case, it is probaby unwise to include both the
-[@../doxygen/index.html verbatim generated Doxygen documentation] and the
-[link $template_library$.reference reference], which is what happens how. $template_Library$
-should provide some options / alternatives.
-
-[endsect]
-
-[section:editing Editing the Templates]
-
-The template script is currently a very simple file relocator / processor. It copies
-a template directory tree into a new location, renaming files where applicable
-and substituting the contents where specified.
-
-The following substitutions are defined on files of extensions '.hpp', '.cpp', '.v2', '.jam', '.qbk', '.vcproj', '.sln':
-[table Substitutions used by $template_library$
- [[substitution template][substituted text]]
- [[$template\_boost\_library$][The full Boost.Library name of the library]]
- [[$template\_library$][The library name specified by the user]]
- [[$template\_Library$][Capitalized library name]]
- [[$template\_LIBRARY$][Uppercase library name]]
- [[$template\_python\_copyright$][Python-style commented copyright block]]
- [[$template\_cpp\_copyright$][C++-style commented copyright block]]
- [[$template\_qbk\_copyright$][Copyright block with quickbook-style link]]
- [[$template\_author\_reversed$][Bracketed list of authors, last name first]]
- [[$template\_author$][list of authors, as specified by the user]]
- [[$template\_year$][Current year]]
- [[$template\_msvc\_build\_uuid$][Randomly generated UUID for MSVC build project]]
- [[$template\_msvc\_doc\_uuid$][Randomly generated UUID for MSVC doc project]]
- [[$template\_msvc\_example\_uuid$][Randomly generated UUID for MSVC example project]]
- [[$template\_msvc\_test\_uuid$][Randomly generated UUID for MSVC test project]]
- [[$template\_msvc\_build\_command$][bjam build commands used in MSVC projects]]
-]
-
-[tip The substitutions are applied exactly in the order specified, so
-substituted text can include substitution templates occuring later in the table
-(e.g., $template\_cpp\_copyright$ expands into text which includes $template\_author$).]
-
-[endsect]
-
-[section:examples Documentation Examples]
-This section has some examples of what you can do with documentation. Refer to the source.
-
-[section:examples_inserting_code Inserting Code]
-
-Here is some code directly from an example:
-
-[c++]
-
-[import ../example/example.cpp]
-[$template_library$_example]
-
-[endsect]
-
-[endsect]
-
-[xinclude $template_library$_doxygen.xml]
\ No newline at end of file

Copied: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk.py (from r4247, /sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk)
==============================================================================
--- /sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk (original)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/$template_library$.qbk.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -1,15 +1,19 @@
-[/ Copyright 2007 Stjepan Rajko. ]
-[/ 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) ]
+# template file
 
-$template_start$
-[library $template_library$
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+docs = template.options.get('docs')
+
+content="""
+[library $template_Library$
     [quickbook 1.4]
- [version 0.1]
+ [version 0.01e-10]
     [authors $template_author_reversed$]
     [copyright $template_year$ $template_author$]
- [purpose Boost Sandbox Template]
+ [purpose Doing nothing.]
     [license
         Distributed under the Boost Software License, Version 1.0.
         (See accompanying file LICENSE_1_0.txt or copy at
@@ -17,143 +21,53 @@
     ]
 ]
 
-[section:overview Overview]
+Welcome to the $template_Library$! One day, it will perhaps be called
+$template_Boost_Library$. Until then, feel free to use it to do nothing.
 
-[warning $template_Library$ is in very early stages of development. At this point, it is likely
-[*not] a good starting point for a boost sandbox project. The templates it generates have
-not been verified for adherence to Boost guidelines, and do some things that are
-inconsistent with current practices.]
+[warning $template_Library$ is not an official Boost library.]
 
 [section:introduction Introduction]
 
-$template_Library$ is template for Boost sandbox projects. Given some information about the project
-(e.g., library name and author), it will generate the following:
-* a directory tree for the library
-* commonly used source, documentation and build files
-* projects for several IDEs (currently MSVC, with Xcode in the works)
-
-The content in the generated project contains this documentation, which describes how
-to use the template, and an implementation of a [classref boost::$template_library$::$template_library$
-class which does nothing].
-
-[endsect]
-
-[section:start Getting Started]
-To use the project created by $template_library$ fully, you will need a few things.
-
-[important Some parts of $template_library$ will not work with versions of Boost other than CVS HEAD]
-First of all, you should familiarize yourself with Boost. A good starting point for this
-is [@http://www.boost.org/more/getting_started/index.html the getting started page].
-In particular, make sure you have installed a recent version of Boost, and have a working
-bjam executable.
-
-Second, you will need to download some additional tools to build the documentation.
-Instructions for this part can be found in the [@http://www.boost.org/doc/html/boostbook.html
-Boostbook documentation]. The projects generated by $template_library$ rely on xsltproc,
-DocBook XSL and DTD distributions, and Doxygen. $template_library$ does not currently use
-Apache FOP.
-
-Finally, you will need access to the sandbox in the
-[@http://svn.boost.org/trac/boost/wiki/BoostSubversion Boost subversion]. Follow
-the directions in the [@http://svn.boost.org/trac/boost/wiki/BoostSubversion Boost subversion wiki].
-
-Once you have all this in place, go to the template-under-construction folder of the sandbox.
-Run the make_template.py script, and follow the instructions. For example,
-the project used to build this documentation was created as follows:
-
-[python]
-
- >>> import make_template
- library name: (e.g., something_new): sandbox_template
- library author[s]: (e.g., Yours Truly[,Yours D. NotTruly]): Stjepan Rajko
-
-Some other information that might come in handy as you start working on your project:
-
-* [@http://www.boost.org/more/lib_guide.htm#Directory_structure Boost library directory structure]
-* [@http://www.stack.nl/~dimitri/doxygen/commands.html Doxygen command reference]
-* [@http://www.boost-consulting.com/boost/tools/quickbook/doc/html/index.html Quickbook reference]
+User, this is $template_Library$. $template_Library$, this is the user. Be nice to each other.
 
-[endsect]
-
-
-[section:bugs Known Bugs]
-
-[endsect]
-
-[section:license License]
-
-$template_qbk_copyright$
+[section:start Getting Started]
 
-[endsect]
+The $template_Library$ is located in the $template_library$ directory of the boost sandbox.
 
-[endsect]
+"""
+if docs!='qb':
+ content+="""
+You might also want to look at the [link $template_library$.reference reference].
 
-[section:doxygen Doxygen Documentation]
-When Doxygen documentation is used with Boostbook, as far as I can tell
-only certain elements of the Doxygen documentation (such as class and function reference) can
-be included into the main documentation. Other documentation generated by Doxygen (main and
-related pages, todo and bug lists, modules...) does not seem to be available. The rationale
-for this, AFAICR from a list discussion e-mail I can't find any more, is to make the generated
-documentation close to a C++ standard proposal (but I might be way off here).
-
-However, it is possible to have Doxygen create its own HTML output and [@../doxygen/index.html link]
-to it from the main documentation. While this will include everything Doxygen is configured
-to generate, please note that this is inconsistent with the documentation layouts of
-most recent Boost libraries.
-
-In any case, it is probaby unwise to include both the
-[@../doxygen/index.html verbatim generated Doxygen documentation] and the
-[link $template_library$.reference reference], which is what happens how. $template_Library$
-should provide some options / alternatives.
+"""
 
+content+="""
 [endsect]
 
-[section:editing Editing the Templates]
-
-The template script is currently a very simple file relocator / processor. It copies
-a template directory tree into a new location, renaming files where applicable
-and substituting the contents where specified.
-
-The following substitutions are defined on files of extensions '.hpp', '.cpp', '.v2', '.jam', '.qbk', '.vcproj', '.sln':
-[table Substitutions used by $template_library$
- [[substitution template][substituted text]]
- [[$template\_boost\_library$][The full Boost.Library name of the library]]
- [[$template\_library$][The library name specified by the user]]
- [[$template\_Library$][Capitalized library name]]
- [[$template\_LIBRARY$][Uppercase library name]]
- [[$template\_python\_copyright$][Python-style commented copyright block]]
- [[$template\_cpp\_copyright$][C++-style commented copyright block]]
- [[$template\_qbk\_copyright$][Copyright block with quickbook-style link]]
- [[$template\_author\_reversed$][Bracketed list of authors, last name first]]
- [[$template\_author$][list of authors, as specified by the user]]
- [[$template\_year$][Current year]]
- [[$template\_msvc\_build\_uuid$][Randomly generated UUID for MSVC build project]]
- [[$template\_msvc\_doc\_uuid$][Randomly generated UUID for MSVC doc project]]
- [[$template\_msvc\_example\_uuid$][Randomly generated UUID for MSVC example project]]
- [[$template\_msvc\_test\_uuid$][Randomly generated UUID for MSVC test project]]
- [[$template\_msvc\_build\_command$][bjam build commands used in MSVC projects]]
-]
+[endsect]
+"""
+if docs=='qb+doxy':
+ content+="""
+[section:reference Reference]
 
-[tip The substitutions are applied exactly in the order specified, so
-substituted text can include substitution templates occuring later in the table
-(e.g., $template\_cpp\_copyright$ expands into text which includes $template\_author$).]
+The reference for this library is [@doxygen/index.html generated separately].
 
 [endsect]
 
-[section:examples Documentation Examples]
-This section has some examples of what you can do with documentation. Refer to the source.
+"""
 
-[section:examples_inserting_code Inserting Code]
-
-Here is some code directly from an example:
-
-[c++]
-
-[import ../example/example.cpp]
-[$template_library$_example]
+content+="""
+[section:license License]
 
-[endsect]
+$template_qbk_copyright$
 
 [endsect]
+"""
+
+if docs=='qb+doxyref':
+ content+="""
+[xinclude $template_library$_doxygen.xml]
+"""
+
+template.submit_content(content)
 
-[xinclude $template_library$_doxygen.xml]
\ No newline at end of file

Deleted: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2
==============================================================================
--- sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
+++ (empty file)
@@ -1,44 +0,0 @@
-# Copyright 2007 Stjepan Rajko.
-# 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)
-
-$template_start$
-$template_python_copyright$
-
-project boost/$template_library$/doc ;
-
-import boostbook : boostbook ;
-using quickbook ;
-
-local loc = [ path.native [ path.pwd ] ] ;
-local root = [ path.native [ path.join [ path.pwd ] ../../.. ] ] ;
-
-doxygen $template_library$_doxygen
- :
- [ glob ../../../boost/$template_library$/*.hpp dox/*.hpp ]
- :
- <doxygen:param>EXAMPLE_PATH=../example
- <doxygen:param>STRIP_FROM_PATH=$(root)
- <doxygen:param>STRIP_FROM_INC_PATH=$(root)
- <doxygen:param>EXTRACT_ALL=NO
- <doxygen:param>HIDE_UNDOC_MEMBERS=NO
- <doxygen:param>EXTRACT_PRIVATE=NO
- <doxygen:param>DETAILS_AT_TOP=YES
- <doxygen:param>GENERATE_HTML=YES
- <doxygen:param>HTML_OUTPUT=$(loc)/html/doxygen
- <doxygen:param>HTML_STYLESHEET=$(loc)/html/boostbook_doxygen.css
- <doxygen:param>ENABLE_PREPROCESSING=YES
- <doxygen:param>MACRO_EXPANSION=YES
- <doxygen:param>SEARCH_INCLUDES=YES
- <doxygen:param>INCLUDE_PATH=../../..
- <doxygen:param>PREDEFINED=DOXYGEN_DOCS_ONLY
- ;
-
-xml $template_library$_xml : $template_library$.qbk ;
-
-boostbook standalone
- :
- $template_library$_xml
- $template_library$_doxygen
- ;

Copied: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2.py (from r4225, /sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2)
==============================================================================
--- /sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2 (original)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/Jamfile.v2.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -1,9 +1,15 @@
+# template file
+
 # Copyright 2007 Stjepan Rajko.
 # 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)
 
-$template_start$
+docs = template.options.get('docs')
+doxygen = docs != 'qb'
+
+
+content = """$template_start$
 $template_python_copyright$
 
 project boost/$template_library$/doc ;
@@ -14,6 +20,10 @@
 local loc = [ path.native [ path.pwd ] ] ;
 local root = [ path.native [ path.join [ path.pwd ] ../../.. ] ] ;
 
+xml $template_library$_xml : $template_library$.qbk ;"""
+
+if doxygen:
+ content += """
 doxygen $template_library$_doxygen
    :
       [ glob ../../../boost/$template_library$/*.hpp dox/*.hpp ]
@@ -25,20 +35,37 @@
         <doxygen:param>HIDE_UNDOC_MEMBERS=NO
         <doxygen:param>EXTRACT_PRIVATE=NO
         <doxygen:param>DETAILS_AT_TOP=YES
- <doxygen:param>GENERATE_HTML=YES
- <doxygen:param>HTML_OUTPUT=$(loc)/html/doxygen
- <doxygen:param>HTML_STYLESHEET=$(loc)/html/boostbook_doxygen.css
         <doxygen:param>ENABLE_PREPROCESSING=YES
         <doxygen:param>MACRO_EXPANSION=YES
         <doxygen:param>SEARCH_INCLUDES=YES
         <doxygen:param>INCLUDE_PATH=../../..
- <doxygen:param>PREDEFINED=DOXYGEN_DOCS_ONLY
- ;
+ <doxygen:param>PREDEFINED=DOXYGEN_DOCS_ONLY"""
 
-xml $template_library$_xml : $template_library$.qbk ;
+ if docs=='qb+doxy':
+ content += """
+ <doxygen:param>GENERATE_HTML=YES
+ <doxygen:param>HTML_OUTPUT=$(loc)/html/doxygen
+ <doxygen:param>HTML_STYLESHEET=$(loc)/html/boostbook_doxygen.css"""
+ content +="""
+ ;
+"""
 
+content += """
 boostbook standalone
    :
- $template_library$_xml
- $template_library$_doxygen
- ;
+ $template_library$_xml"""
+if (doxygen):
+ content+="""
+ $template_library$_doxygen"""
+
+content +="""
+ :
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>chunk.section.depth=3
+ <xsl:param>toc.section.depth=3
+ <xsl:param>toc.max.depth=3
+ <xsl:param>generate.section.toc.level=3
+ ;
+"""
+
+template.submit_content(content)

Modified: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/dox/$template_library$.hpp
==============================================================================
--- sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/dox/$template_library$.hpp (original)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/dox/$template_library$.hpp 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -14,6 +14,9 @@
 
 It includes things such as a \ref page_related, modules/groups, automatically
 generated \ref todo and \ref bug.
+
+\include example.cpp
+
 */
 
 /** \page page_related Related Page

Added: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/html/options.py
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/html/options.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,11 @@
+# template script
+
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+docs = template.options.get('docs')
+
+if docs != 'qb+doxy':
+ template.ignore_subfile('boostbook_doxygen.css')

Added: sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/options.py
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/$template_library$/libs/$template_library$/doc/options.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,11 @@
+# template script
+
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+docs = template.options.get('docs')
+
+if docs != 'qb+doxy':
+ template.ignore_subdirectory('dox')

Added: sandbox/template_under_construction/$template_library$/options.py
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/$template_library$/options.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,8 @@
+# template script
+
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+template.options.get('docs', re.compile(r'(qb|qb\+doxyref|qb\+doxy)$'), 'qb+doxyref')

Added: sandbox/template_under_construction/file_template/Jamfile.v2
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/Jamfile.v2 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,13 @@
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+
+use-project boost
+ : $(BOOST_ROOT)
+ ;
+
+project boost/file_template
+ : build-dir bin.v2
+ ;
\ No newline at end of file

Added: sandbox/template_under_construction/file_template/LICENSE_1_0.txt
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/LICENSE_1_0.txt 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.

Added: sandbox/template_under_construction/file_template/boost-build.jam
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/boost-build.jam 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,11 @@
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+
+# Set the BOOST_ROOT environment variable on your command-line or in the
+# environment to point at the root of your regular Boost installation.
+
+JAMFILE = [Jj]amfile.v2 ;
+boost-build $(BOOST_ROOT)/tools/build/v2 ;
\ No newline at end of file

Added: sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/build.vcproj
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/build.vcproj 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="build"
+ ProjectGUID="{F9A76F13-0A39-439C-8EC2-28F72C1F3E7C}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="debug|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="bjam --v2 ../../$(ProjectName) $(ConfigurationName)"
+ ReBuildCommandLine="bjam --v2 -a ../../$(ProjectName) $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output=""
+ PreprocessorDefinitions=""
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="release|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="bjam --v2 ../../$(ProjectName) $(ConfigurationName)"
+ ReBuildCommandLine="bjam --v2 -a ../../$(ProjectName) $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output=""
+ PreprocessorDefinitions=""
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="boost"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\file_template.hpp"
+ >
+ </File>
+ <Filter
+ Name="file_template"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\file_template\file_template.hpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="solution build"
+ >
+ <File
+ RelativePath="..\..\..\..\boost-build.jam"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\Jamfile.v2"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\project-root.jam"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\build\Jamfile.v2"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/doc.vcproj
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/doc.vcproj 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="doc"
+ ProjectGUID="{F404C298-0B3D-4CED-A682-87C4220F1E8C}"
+ RootNamespace="doc"
+ Keyword="MakeFileProj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="release|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="cd ../../doc&#x0D;&#x0A;bjam --v2 $(ConfigurationName)"
+ ReBuildCommandLine="cd ../../doc&#x0D;&#x0A;bjam --v2 -a $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output=""
+ PreprocessorDefinitions="WIN32;NDEBUG"
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ >
+ <File
+ RelativePath="..\..\doc\file_template.qbk"
+ >
+ </File>
+ <File
+ RelativePath="..\..\doc\sandbox.qbk"
+ >
+ </File>
+ <File
+ RelativePath="..\..\doc\templates.qbk"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\doc\Jamfile.v2"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/example.vcproj
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/example.vcproj 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="example"
+ ProjectGUID="{E1BA4C74-4266-4E31-A3B6-0B47A678EF89}"
+ RootNamespace="example"
+ Keyword="MakeFileProj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="debug|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="bjam --v2 ../../$(ProjectName) $(ConfigurationName)"
+ ReBuildCommandLine="bjam --v2 -a ../../$(ProjectName) $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output="$(OutDir)\example.exe"
+ PreprocessorDefinitions=""
+ IncludeSearchPath="..\../example"
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="release|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="bjam --v2 ../../$(ProjectName) $(ConfigurationName)"
+ ReBuildCommandLine="bjam --v2 -a ../../$(ProjectName) $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output="$(OutDir)\example.exe"
+ PreprocessorDefinitions=""
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ >
+ <File
+ RelativePath="..\..\example\example.cpp"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\example\Jamfile.v2"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/file_template.sln
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/file_template.sln 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc", "doc.vcproj", "{F404C298-0B3D-4CED-A682-87C4220F1E8C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ debug|Win32 = debug|Win32
+ release|Win32 = release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F404C298-0B3D-4CED-A682-87C4220F1E8C}.debug|Win32.ActiveCfg = release|Win32
+ {F404C298-0B3D-4CED-A682-87C4220F1E8C}.debug|Win32.Build.0 = release|Win32
+ {F404C298-0B3D-4CED-A682-87C4220F1E8C}.release|Win32.ActiveCfg = release|Win32
+ {F404C298-0B3D-4CED-A682-87C4220F1E8C}.release|Win32.Build.0 = release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal

Added: sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/test.vcproj
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/build/vc8ide/test.vcproj 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="test"
+ ProjectGUID="{7EBE5B11-C955-4891-8371-C763E4381545}"
+ RootNamespace="test"
+ Keyword="MakeFileProj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="debug|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="bjam --v2 ../../$(ProjectName) $(ConfigurationName)"
+ ReBuildCommandLine="bjam --v2 -a ../../$(ProjectName) $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output=""
+ PreprocessorDefinitions=""
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="release|Win32"
+ OutputDirectory="..\..\..\..\bin.v2\libs\$(SolutionName)\$(ProjectName)\msvc-8.0\$(ConfigurationName)\threading-multi"
+ IntermediateDirectory="$(OutDir)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="bjam --v2 ../../$(ProjectName) $(ConfigurationName)"
+ ReBuildCommandLine="bjam --v2 -a ../../$(ProjectName) $(ConfigurationName)"
+ CleanCommandLine="bjam --v2 --clean ../../$(ProjectName) $(ConfigurationName)"
+ Output=""
+ PreprocessorDefinitions=""
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ >
+ <File
+ RelativePath="..\..\test\test.cpp"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\test\Jamfile.v2"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/Jamfile.v2
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/doc/Jamfile.v2 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,24 @@
+# Copyright 2007 Stjepan Rajko.
+# 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/file_template/doc ;
+
+using quickbook ;
+
+local loc = [ path.native [ path.pwd ] ] ;
+local root = [ path.native [ path.join [ path.pwd ] ../../.. ] ] ;
+
+xml file_template_xml : file_template.qbk ;
+boostbook standalone
+ :
+ file_template_xml
+ :
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>chunk.section.depth=3
+ <xsl:param>toc.section.depth=3
+ <xsl:param>toc.max.depth=3
+ <xsl:param>generate.section.toc.level=3
+ ;
\ No newline at end of file

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/file_template.qbk
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/doc/file_template.qbk 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,55 @@
+[library FileTemplate
+ [quickbook 1.4]
+ [version 0.9]
+ [authors [Rajko, Stjepan]]
+ [copyright 2007 Stjepan Rajko]
+ [purpose generates file and directory trees from templates]
+ [license
+ 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])
+ ]
+]
+
+
+FileTemplate is a template processor for files and directories. It provides a basic
+framework which makes producing templated dile/directory trees relatively easy.
+The philosophy of the framework is that simple things should be simple, and more
+complicated things should be doable relatively simply. By being implemented in
+Python, and allowing template-specific python scripts in the template, FileTemplate
+has a pretty good degree of flexibility.
+
+FileTemplate is being developed for construction of seed projects for the Boost Sandbox.
+The [link filetemplate.sandbox sandbox] template, which is used for this purpose,
+is currently the only template developed using FileTemplate.
+
+* [link filetemplate.sandbox Learn more about using the sandbox template].
+* [link filetemplate.templates
+ Learn more about the FileTemplate system, using and and developing templates].
+
+[section:sandbox Boost sandbox template]
+
+[include sandbox.qbk]
+
+[endsect]
+
+[section:templates FileTemplate templates]
+
+[include templates.qbk]
+
+[endsect]
+
+[section:acknowledgements Acknowledgements]
+
+Thanks for Rene Rivera for his suggestions on the development of FileTemplate.
+
+[endsect]
+
+[section:license License]
+
+Copyright 2007 Stjepan Rajko.
+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])
+
+[endsect]

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/boostbook.css
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/doc/html/boostbook.css 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,538 @@
+/*=============================================================================
+ Copyright (c) 2004 Joel de Guzman
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+
+/*=============================================================================
+ Body defaults
+=============================================================================*/
+
+ body
+ {
+ margin: 1em;
+ font-family: sans-serif;
+ }
+
+/*=============================================================================
+ Paragraphs
+=============================================================================*/
+
+ p
+ {
+ text-align: left;
+ font-size: 10pt;
+ line-height: 1.15;
+ }
+
+/*=============================================================================
+ Program listings
+=============================================================================*/
+
+ /* Code on paragraphs */
+ p tt.computeroutput
+ {
+ font-size: 10pt;
+ }
+
+ pre.synopsis
+ {
+ font-size: 10pt;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ .programlisting,
+ .screen
+ {
+ font-size: 10pt;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+/*=============================================================================
+ Headings
+=============================================================================*/
+
+ h1, h2, h3, h4, h5, h6
+ {
+ text-align: left;
+ margin: 1em 0em 0.5em 0em;
+ font-weight: bold;
+ }
+
+ h1 { font: 140% }
+ h2 { font: bold 140% }
+ h3 { font: bold 130% }
+ h4 { font: bold 120% }
+ h5 { font: italic 110% }
+ h6 { font: italic 100% }
+
+ /* Top page titles */
+ title,
+ h1.title,
+ h2.title
+ h3.title,
+ h4.title,
+ h5.title,
+ h6.title,
+ .refentrytitle
+ {
+ font-weight: bold;
+ margin-bottom: 1pc;
+ }
+
+ h1.title { font-size: 140% }
+ h2.title { font-size: 140% }
+ h3.title { font-size: 130% }
+ h4.title { font-size: 120% }
+ h5.title { font-size: 110% }
+ h6.title { font-size: 100% }
+
+ .section h1
+ {
+ margin: 0em 0em 0.5em 0em;
+ font-size: 140%;
+ }
+
+ .section h2 { font-size: 140% }
+ .section h3 { font-size: 130% }
+ .section h4 { font-size: 120% }
+ .section h5 { font-size: 110% }
+ .section h6 { font-size: 100% }
+
+ /* Code on titles */
+ h1 tt.computeroutput { font-size: 140% }
+ h2 tt.computeroutput { font-size: 140% }
+ h3 tt.computeroutput { font-size: 130% }
+ h4 tt.computeroutput { font-size: 120% }
+ h5 tt.computeroutput { font-size: 110% }
+ h6 tt.computeroutput { font-size: 100% }
+
+/*=============================================================================
+ Author
+=============================================================================*/
+
+ h3.author
+ {
+ font-size: 100%
+ }
+
+/*=============================================================================
+ Lists
+=============================================================================*/
+
+ li
+ {
+ font-size: 10pt;
+ line-height: 1.3;
+ }
+
+ /* Unordered lists */
+ ul
+ {
+ text-align: left;
+ }
+
+ /* Ordered lists */
+ ol
+ {
+ text-align: left;
+ }
+
+/*=============================================================================
+ Links
+=============================================================================*/
+
+ a
+ {
+ text-decoration: none; /* no underline */
+ }
+
+ a:hover
+ {
+ text-decoration: underline;
+ }
+
+/*=============================================================================
+ Spirit style navigation
+=============================================================================*/
+
+ .spirit-nav
+ {
+ text-align: right;
+ }
+
+ .spirit-nav a
+ {
+ color: white;
+ padding-left: 0.5em;
+ }
+
+ .spirit-nav img
+ {
+ border-width: 0px;
+ }
+
+/*=============================================================================
+ Table of contents
+=============================================================================*/
+
+ .toc
+ {
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.1pc 1pc 0.1pc 1pc;
+ font-size: 10pt;
+ line-height: 1.15;
+ }
+
+ .toc-main
+ {
+ width: 600;
+ text-align: center;
+ margin: 1pc 1pc 1pc 10%;
+ padding: 2pc 1pc 3pc 1pc;
+ line-height: 0.1;
+ }
+
+ .boost-toc
+ {
+ float: right;
+ padding: 0.5pc;
+ }
+
+/*=============================================================================
+ Tables
+=============================================================================*/
+
+ .table-title,
+ div.table p.title
+ {
+ margin-left: 4%;
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ width: 92%;
+ margin-left: 4%;
+ margin-right: 4%;
+ }
+
+ div.informaltable table,
+ div.table table
+ {
+ padding: 4px;
+ }
+
+ /* Table Cells */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ padding: 0.5em;
+ text-align: left;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ padding: 0.5em 0.5em 0.5em 0.5em;
+ border: 1pt solid white;
+ font-size: 120%;
+ }
+
+/*=============================================================================
+ Blurbs
+=============================================================================*/
+
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ font-size: 10pt;
+ line-height: 1.2;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ p.blurb img
+ {
+ padding: 1pt;
+ }
+
+/*=============================================================================
+ Variable Lists
+=============================================================================*/
+
+ span.term
+ {
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td
+ {
+ text-align: left;
+ vertical-align: top;
+ padding: 0em 2em 0em 0em;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td p
+ {
+ margin: 0em 0em 0.5em 0em;
+ }
+
+ /* Make the terms in definition lists bold */
+ div.variablelist dl dt
+ {
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ div.variablelist dl dd
+ {
+ margin: 1em 0em 1em 2em;
+ font-size: 10pt;
+ }
+
+/*=============================================================================
+ Misc
+=============================================================================*/
+
+ /* Title of books and articles in bibliographies */
+ span.title
+ {
+ font-style: italic;
+ }
+
+ span.underline
+ {
+ text-decoration: underline;
+ }
+
+ span.strikethrough
+ {
+ text-decoration: line-through;
+ }
+
+ /* Copyright, Legal Notice */
+ div div.legalnotice p
+ {
+ font-size: 8pt;
+ text-align: left
+ }
+
+/*=============================================================================
+ Colors
+=============================================================================*/
+
+ @media screen
+ {
+ /* Links */
+ a
+ {
+ color: #0C7445;
+ }
+
+ a:visited
+ {
+ color: #663974;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+ h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
+ {
+ text-decoration: none; /* no underline */
+ color: #000000;
+ }
+
+ /* Syntax Highlighting */
+ .keyword { color: #0000AA; }
+ .identifier { color: #000000; }
+ .special { color: #707070; }
+ .preprocessor { color: #402080; }
+ .char { color: teal; }
+ .comment { color: #800000; }
+ .string { color: teal; }
+ .number { color: teal; }
+ .white_bkd { background-color: #E8FBE9; }
+ .dk_grey_bkd { background-color: #A0DAAC; }
+
+ /* Copyright, Legal Notice */
+ .copyright
+ {
+ color: #666666;
+ font-size: small;
+ }
+
+ div div.legalnotice p
+ {
+ color: #666666;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+ /* Blurbs */
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+ /* Table of contents */
+ .toc-main
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid #DCDCDC;
+ background-color: #FAFFFB;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ background-color: #E3F9E4;
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ color: #00A000;
+ }
+ }
+
+ @media print
+ {
+ /* Links */
+ a
+ {
+ color: black;
+ }
+
+ a:visited
+ {
+ color: black;
+ }
+
+ .spirit-nav
+ {
+ display: none;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid gray;
+ background-color: #FAFFFB;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid gray;
+ background-color: #FAFFFB;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+ /* Table of contents */
+ .toc-main
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ background-color: #FAFFFB;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ border: 1px solid #DCDCDC;
+ border-bottom: 3px solid #9D9D9D;
+ border-right: 3px solid #9D9D9D;
+ border-collapse: collapse;
+ background-color: #FAFFFB;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid #DCDCDC;
+ background-color: #FAFFFB;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ border: 1px solid #DCDCDC;
+ background-color: #FAFFFB;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ font-weight: bold;
+ }
+ }

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/Thumbs.db
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/draft.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/home.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/important.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/next.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/note.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/prev.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/toc-blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/toc-minus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/toc-plus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/up.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/images/warning.png
==============================================================================
Binary file. No diff available.

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/html/reference.css
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/doc/html/reference.css 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,5 @@
+PRE.synopsis {
+ background-color: #e0ffff;
+ border: thin solid blue;
+ padding: 1em
+}

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/sandbox.qbk
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/doc/sandbox.qbk 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,177 @@
+The sandbox template is a template for Boost sandbox projects. Given some information about the project
+(e.g., library name and author), it will generate the following:
+
+* a directory tree for the library
+* commonly used source, documentation and build files
+* optionally, projects for several IDEs (currently MSVC, with Xcode in the works)
+
+The content in the generated project contains a fill-in-the-blanks documentation,
+and an implementation of a small class.
+
+If you'd like some more information,
+please read the [link filetemplate.sandbox.start Getting Started],
+[link filetemplate.sandbox.options Options], and
+[link filetemplate.sandbox.substitutions Substitution templates] sections.
+
+If you'd just like to try the sandbox template, go to the Boost subversion and type
+=sandbox/template-under-construction= directory and execute:
+
+[pre
+ >python make_template.py template=sandbox.py
+]
+
+The script will ask you some questions and create a seed project with the
+information you specified.
+
+
+[caution The sandbox template is in very early stages of development. At this point, it is likely
+[*not] a good starting point for a boost sandbox project. It has not been verified that
+the projects it generates adhere to Boost guidelines.]
+
+[section:start Getting Started]
+
+[important Some parts of the generated projects might not work with versions of Boost older
+than CVS HEAD.]
+
+To use the project created by the sandbox template fully, you will need a few things.
+
+First of all, you should familiarize yourself with Boost. A good starting point for this
+is [@http://www.boost.org/more/getting_started/index.html the getting started page].
+In particular, make sure you have installed a recent version of Boost, and have a working
+bjam executable.
+
+Second, you will need to download some additional tools to build the documentation.
+Instructions for this part can be found in the
+[@http://www.boost.org/doc/html/boostbook.html Boostbook documentation].
+The projects generated by file_template rely on xsltproc,
+DocBook XSL and DTD distributions, and Doxygen. The sandbox template does not currently use
+Apache FOP. Here are some of the download links for your convenience:
+
+* [@http://sourceforge.net/project/showfiles.php?group_id=21935#files docbook xsl]
+* [@http://www.stack.nl/~dimitri/doxygen/download.html doxygen]
+
+[caution Make sure you download docbook-xsl and not docbook5-xsl.]
+
+Finally, you will need access to the sandbox in the
+[@http://svn.boost.org/trac/boost/wiki/BoostSubversion Boost subversion]. Follow
+the directions in the [@http://svn.boost.org/trac/boost/wiki/BoostSubversion Boost subversion wiki].
+
+Once you have all this in place, go to the template-under-construction folder of the sandbox.
+Run the make_template.py script, and follow the instructions. For example,
+the project used to build this documentation was created as follows:
+
+[python]
+
+ python make_template.py
+ library name: (e.g., something_new): sandbox_template
+ library author[s]: (e.g., Yours Truly[,Yours D. NotTruly]): Stjepan Rajko
+
+You can also use the command line to specify the options.
+
+Some other information that might come in handy as you start working on your project:
+
+* [@http://www.boost.org/more/lib_guide.htm#Directory_structure Boost library directory structure]
+ - explains the suggested directory structure for Boost libraries.
+* [@http://www.stack.nl/~dimitri/doxygen/commands.html Doxygen command reference]
+ - if you'd like to use Doxygen.
+* [@http://www.boost-consulting.com/boost/tools/quickbook/doc/html/index.html Quickbook reference]
+ - syntax usable in quickbok =.qbk= documentation files.
+* [@http://docbook.sourceforge.net/release/xsl/current/doc/ Docbook XSL reference] - among other things, this specifies
+ parameters used in Jamfiles to customize the documentation generated through Quickbook/Docbook.
+
+[endsect]
+
+[section:options Options]
+
+The sandbox template allows the following options to be specified:
+
+[table Options used by the sandbox template
+ [[option][desctiption][default value]]
+ [[library][Name of the library]]
+ [[author][Comma separated list of authors]]
+ [[docs][[link filetemplate.sandbox.documentation Documentation format] - one of qb, qb+doxyref, qb+doxy][qb+doxyref]]
+ [[vc8ide][Specifies whether the IDE projects for MSVC 8.0 should be generated][n]]
+]
+
+For example, this project was started using the following command line:
+
+[pre
+ python make_template.py template=sandbox.py library=file_template "author=Stjepan Rajko" docs=qb vc8ide=y
+]
+
+For more information about template options, see the
+[link filetemplate.templates.options FileTemplate options] documentation.
+
+[endsect]
+
+[section:substitutions Substitution templates]
+
+The following substitutions are defined for file and directory names:
+[table File and directory name substitutions used by the sandbox template
+ [[substitution template][substituted text]]
+ [[$template\_library$][The library name specified by the user]]
+]
+
+[table File content substitutions used by the sandbox template
+ [[substitution template][substituted text][extensions]]
+ [[$template\_library$][The library_name specified by the user][general]]
+ [[$template\_Library$][Capitalized Library Name][general]]
+ [[$template_LibraryConcat$][Concatenated, capitalized LibraryName][general]]
+ [[$template\_LIBRARY$][Uppercase LIBRARY_NAME][general]]
+ [[$template\_Boost\_Library$][The full Boost.Library Name name of the library][general]]
+ [[$template\_python\_copyright$][Python-style commented copyright block][.jam,.v2]]
+ [[$template\_cpp\_copyright$][C++-style commented copyright block][.hpp, .cpp]]
+ [[$template\_qbk\_copyright$][Copyright block with quickbook-style link][.qbk]]
+ [[$template\_author\_reversed$][Bracketed list of authors, last name first][general]]
+ [[$template\_author$][list of authors, as specified by the user][general]]
+ [[$template\_year$][Current year][general]]
+]
+
+[endsect]
+
+[section:documentation Documentation formats]
+The sandbox template supports multiple documentation formats, specified
+through the =docs= option. You can use:
+
+* =qb=: Quickbook / docbook documentation only
+* =qb+doxyref=: Quickbook / docbook documentation with a
+ reference section generated by Doxygen (default).
+* =qb+doxy=: Quickbook / docbook documentation with a link to the
+ entire HTML documentation generated by Doxygen.
+
+The first two options are the most consistent with the documentation format used in recent
+Boost libraries.
+
+[warning The =qb+doxy= option is a work in progress. It has been added because it provides
+access to all documentation generated by Doxygen (main and
+related pages, todo and bug lists, modules...), and not just a subset of the reference. At this
+moment, using this option generates two bodies of documentation which are not well connected
+visually and navigationally. You should probably *not* use it]
+
+[endsect]
+
+[section:changes Proposed Changes]
+
+* the =author= option and template substitutions should be changed to =authors= to match the
+quickbook syntax
+
+* In the MSVC projects, the Rebuild action is mapped to a =bjam -a= invocation. This causes
+all projects required to be rebuilt, and might not be the most common use case (i.e., if
+you want to rebuild the documentation, you most likely don't want to rebuild quickbook).
+It might be better to perform a clean followed by a build. However, this has the downside
+of not being to be able to access =bjam -a= from the IDE.
+
+* The template directory structure should be revised. Instead of invoking the template
+processor by specifying the template script, perhaps it would be better to specify the
+template root directory - which can hold the template script if one is necessary,
+and the actual template tree.
+
+* Destination directory should be specifiable.
+
+* Since the template processor now supports file-specific substitution templates,
+ most of the copyright templates should just be called $template\_copyright$.
+
+* the user-specified library name should be given in all lowercase - this should
+ be enforced.
+
+[endsect]

Added: sandbox/template_under_construction/file_template/libs/file_template/doc/templates.qbk
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/libs/file_template/doc/templates.qbk 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,246 @@
+The FileTemplate processor offers basic functionality when dealing with
+file / directory templates. It copies
+a template directory tree into a new location, renaming files where applicable,
+substituting the contents where specified, and processing scripts embedded in
+the template tree.
+
+To get a general idea of how this is done, please read the
+[link filetemplate.templates.phases processing phases] documentation.
+
+To learn about creating new templates or extending existing templates,
+you should also read about
+[link filetemplate.templates.options options] and
+[link filetemplate.templates.substitutions substitution templates]
+
+
+[section:phases Processing phases]
+
+[section:invocation Invocation]
+The template processor first initializes [link filetemplate.templates.reference template class]
+object, which processes the template and can be used by the python scripts present
+in the template to customize the behavior of the template.
+
+Then, the template processor will invoke the startup script for the template,
+which is specified through the =template= [link filetemplate.templates.options option].
+The startup script gives the template processor any information
+it needs to know, and sets up
+[link filetemplate.templates.substitutions substitution templates] if applicable.
+
+The template processor will then
+[link filetemplate.templates.phases examine the template tree].
+
+[endsect]
+
+[section:examination Examination of the template tree]
+
+After the startup script has been executed, the template processor will
+perform a top-down traversal of the template tree. By default, it will record
+the names of all directories and files located in the tree, which will then
+be copied / processed in the next phase.
+
+To customize what information is to be copied, and to specify additional
+customization possibilites (e.g., via [link filetemplate.templates.substitutions
+substitution templates]),
+template scripts may be inserted in the template tree.
+
+Template scripts are python files which begin with the following text on their first line:
+[python]
+
+ # template script
+
+Every script found during the transversal will be executed. The script can
+interact with the template processor through the
+[link filetemplate.templates.reference template object].
+
+[endsect]
+
+[section:processing Producing the resulting file tree]
+Finally, the template processor will produce the resulting file tree from the template.
+Different kinds of files will be processed as follows:
+
+[h4 Verbatim file copies]
+A file for which no specific substitution templates are specified will be copied verbatim.
+
+[h4 Processed file content]
+A file for which at least one specific substitution template is specified will be processed
+for substitution templates and specific templates.
+
+[h4 Python generated file content]
+A file of the name /filename/=.py= can be used to generate the file /filename/. To do so,
+it must begin with
+
+ # template file
+
+When the script generates the content, it supplies it to the template processor via the
+`template.submit_content(content)` command (see the
+[link filetemplate.templates.reference template object] reference).
+
+[endsect]
+
+[endsect]
+
+[section:options Options]
+
+Options are used to fine-tune the behavior of the FileTemplate template processor as well
+as the behavior of the template. The following options are used by the template processor
+(specific templates may use additional options):
+
+[table Options used by the FileTemplate template processor
+ [[option][desctiption][valid values][default value]]
+ [[template][Template-specific script][valid filename][]]
+ [[erase][Determines whether the template processor should erase the destination
+ directory tree if it already exists][y/n]]
+]
+
+Options can be specified at command-line via [~option=value] arguments. If an option
+is not specified, and it has no default value, the user will be prompted for the value.
+
+This is the output of a sample session:
+
+[pre
+
+>python make_template.py [*template=sandbox.py] [*library=my_library]
+/--------------------
+| Executing template file sandbox.py...
+/
+/--------------------
+| Processing Boost Sandbox template.
+/
+[*author: [~John Doe]]
+/--------------------
+| Examining the template project tree...
+/
+$template_library$
+$template_library$\boost
+$template_library$\boost\$template_library$
+$template_library$\libs
+$template_library$\libs\$template_library$
+$template_library$\libs\$template_library$\build
+$template_library$\libs\$template_library$\doc
+$template_library$\libs\$template_library$\doc\html
+$template_library$\libs\$template_library$\doc\html\images
+$template_library$\libs\$template_library$\example
+$template_library$\libs\$template_library$\src
+$template_library$\libs\$template_library$\test
+Directory my_library already exists.
+[*erase: Erase it (please make sure you want to erase the entire directory tree rooted at my_library)? \[y/n\] [~y]]
+/--------------------
+| Erasing...
+/
+/--------------------
+| Creating file tree from template...
+/
+my_library\boost
+my_library\libs
+my_library\boost\my_library
+my_library\libs\my_library
+my_library\libs\my_library\build
+my_library\libs\my_library\doc
+my_library\libs\my_library\example
+my_library\libs\my_library\src
+my_library\libs\my_library\test
+my_library\libs\my_library\doc\html
+my_library\libs\my_library\doc\html\images
+]
+[endsect]
+
+[section:substitutions Substitution templates and special templates]
+
+[h4 Substitution templates]
+
+Substitution templates are the simplest form of template customization. For specified file
+extensions, the template processor will replace each occurence of a substitution template
+with the substituted text. For some examples, see
+the [link filetemplate.sandbox.substitutions substitutions] of the sandbox template.
+
+Substitution templates are divided into two categories - /specific/ and /general/.
+Specific substitution templates are only applied to
+specific file extensions. General substitution templates are applied to any file
+extension that has [*at least one] specific substitution defined. Files with no
+specific substitution templates will be copied verbatim.
+
+[tip Substitutions are applied in the order they are specified in the template scripts, so
+substituted text for one substitution template can include substitution templates
+specified after it. For example, in the sandbox template
+$template\_cpp\_copyright$ expands into text which includes $template\_author$.]
+
+[h4 Special templates]
+
+There are also /special/ templates, which are also applied whenever substitution templates
+are applied (i.e., for file extensions with at least one specific extension defined).
+The FileTemplate processor uses one special template:
+
+[table Special templates used by the FileTemplate template processor
+ [[special template][desctiption]]
+ [[$template\_start$][Everything up to the line of the file containing
+ the first occurrence of this special template will be ignored.]]
+]
+
+[endsect]
+
+[section:reference Template object reference]
+The template object contains several functions which can be used from template
+scripts to customize template behavior.
+
+The following examples quickly illustrate some of the use:
+
+To get a user-specified option:
+
+ docs = template.options.get('docs')
+
+To get a user-specified option verified against a regular expression and with a default value:
+
+ template.options.get('docs', re.compile(r'(qb|qb\+doxyref|qb\+doxy)$'), 'qb+doxyref')
+
+To get a boolean (y/n) user specified option with a default value:
+
+ template.options.get_boolean('vc8ide', False):
+
+To set up a substitution template for file names:
+
+ template.name_replacement('$template_library$', library_name)
+
+To set up a specific substitution template:
+
+ template.content_replacement(['.hpp', '.cpp'], '$template_created$', '// Created in $template_year$')
+
+To set up a general substitution template:
+
+ template.all_content_replacement('$template_year$', str(time.localtime().tm_year))
+
+To ignore (not process) an entire subdirectory in the same directory as the script:
+
+ template.ignore_subdirectory('vc8ide')
+
+To ignore (not process) a file in the same directory as the script:
+
+ template.ignore_subfile('boostbook_doxygen.css')
+
+To submit python-generated file content from a python template file:
+
+ content="""
+ This is a script-generated file."""
+ content += """
+ Yes it is."""
+
+ template.submit_content(content)
+
+[endsect]
+
+[section:changes Proposed changes]
+
+* template.all\_content\_replacement should become template.general\_content\_replacement
+
+* a =no-scripts= option should be introduced to disallow processing of
+in-template scripts (in case a template
+should be copied verbatim with minor processing to make another template)
+
+* Add `template.ignore_directory` and `template.ignore_file` functions
+which can ignore a file/directory located
+in a directory other than the same directory as the script.
+This allows templates configured in a more centralized way.
+
+* The =erase= option should require the user to type =erase= for the value
+instead of =y=, just to be safe.
+
+[endsect]
\ No newline at end of file

Added: sandbox/template_under_construction/file_template/project-root.jam
==============================================================================
--- (empty file)
+++ sandbox/template_under_construction/file_template/project-root.jam 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -0,0 +1,9 @@
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+
+import os ;
+
+path-constant BOOST_ROOT : [ os.environ BOOST_ROOT ] ;
\ No newline at end of file

Modified: sandbox/template_under_construction/make_template.py
==============================================================================
--- sandbox/template_under_construction/make_template.py (original)
+++ sandbox/template_under_construction/make_template.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -25,29 +25,36 @@
         self.alnum = re.compile(r'\w+\Z')
 
     def verify (self, string, regexp):
- if not regexp.match(string):
+ if regexp != None and not regexp.match(string):
             raise NameError, string + ' does not match ' + regexp.pattern
         return string
 
- def make(self, option, value, regexp):
+ def make(self, option, value, prompt=None):
         if value==None:
- value = raw_input(option + ' [ ' + regexp.pattern + ' ]: ')
+ if prompt==None:
+ prompt_text = option + ': '
+ else:
+ prompt_text = option + ': ' + prompt
+ value = raw_input(prompt_text)
+
         self.options[option] = value
         return value
 
- def get(self, option, regexp, default=None):
+ def get(self, option, regexp=None, default=None, prompt=None):
         if self.options.has_key(option):
             # option has already been set
             return self.verify(self.options[option], regexp)
- return self.verify(self.make(option, default, regexp), regexp)
+ return self.verify(self.make(option, default, prompt), regexp)
 
- def get_boolean(self, option, default=None):
- if default != None:
- if default:
+ def get_boolean(self, option, default_bool=None, prompt=None):
+ if default_bool != None:
+ if default_bool:
                 default = 'y'
             else:
- default = 'n'
- value = self.get(option, self.boolean, default)
+ default = 'n'
+ else:
+ default = None
+ value = self.get(option, self.boolean, default, prompt)
         return value=='y'
 
 # The Replacement class models a template replacement,
@@ -125,11 +132,19 @@
         fin.close()
         return content
 
- def process_content(self, file_name):
- if not template.content_replacements.matches(name):
- return None
+ def submit_content(self, content):
+ self.__content__ = content
+
+ def process_content(self, file_name, python=False):
+ if python:
+ self.__content__ = ''
+ execfile(file_name + '.py')
+ content = self.__content__
+ else:
+ if not template.content_replacements.matches(name):
+ return None
+ content = self.read_content(file_name)
 
- content = self.read_content(file_name)
         # only take the content from first $template_start$ on,
         # and convert all line breaks to '\n'
         discarded, sep, content = content.partition('$template_start$')
@@ -172,6 +187,7 @@
         for root, dirs, files in os.walk(directory):
             print root
             self.__dirs_clear__ = list()
+ self.__files_clear__ = list()
 
             for name in files:
                 pathname = (os.path.join(root, name))
@@ -187,12 +203,15 @@
                         sys.path.remove(os.path.abspath(root))
                         mod.do_smt()
                     elif content.startswith('# template file'):
- python_list.append(pathname)
+ python_list.append(pathname[0:len(pathname)-3])
                     else:
                         file_list.append(pathname)
                 else:
                     file_list.append(pathname)
 
+ for name in self.__files_clear__:
+ file_list.remove(os.path.join(root, name))
+
             for name in dirs:
                 if name.startswith('.'):
                     self.ignore_subdirectory(name)
@@ -200,13 +219,21 @@
                 dirs.remove(name)
             for name in dirs:
                 directory_list.append( (os.path.join(root, name)) )
+
 
         return directory_list, file_list, python_list
 
     def ignore_subdirectory(self, name):
- self.__dirs_clear__.append(name)
+ self.__dirs_clear__.append(name)
+
+ def ignore_subfile(self, name):
+ self.__files_clear__.append(name)
+
+def set_content(name, content):
+ fout = open(name, "w")
+ fout.write(content)
+ fout.close()
 
-
 # The main processing script.
 
 # template is a global variable accessible by template scripts.
@@ -228,8 +255,9 @@
 
 if os.path.exists(project_dir):
     print 'Directory ' + project_dir + ' already exists.'
- do_erase = raw_input('Erase it (please make sure you want to erase the entire directory tree rooted at ' + project_dir + ')? [y/n] ')
- if do_erase.lower().startswith('y'):
+ do_erase = template.options.get_boolean(
+ 'erase', None, 'Erase it (please make sure you want to erase the entire directory tree rooted at ' + project_dir + ')? [y/n] ')
+ if do_erase:
         template.log_message('Erasing...')
         for root, dirs, files in os.walk(project_dir, topdown=False):
             for name in files:
@@ -247,13 +275,15 @@
     print new_name
     os.mkdir(new_name)
 
+for name in python_list:
+ new_name = template.replace_name(name)
+ content = template.process_content(name, True)
+ set_content(new_name, content)
+
 for name in file_list:
     new_name = template.replace_name(name)
     content = template.process_content(name)
     if content:
- fout = open(new_name, "w")
- fout.write(content)
- fout.close()
-
+ set_content(new_name, content)
     else:
         shutil.copy(name, new_name)

Modified: sandbox/template_under_construction/sandbox.py
==============================================================================
--- sandbox/template_under_construction/sandbox.py (original)
+++ sandbox/template_under_construction/sandbox.py 2007-05-25 14:02:50 EDT (Fri, 25 May 2007)
@@ -5,6 +5,17 @@
 template_dir = '$template_library$'
 
 library_name = template.options.get('library', template.options.alnum)
+# Copyright 2007 Stjepan Rajko.
+# 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)
+
+library_name_list = library_name.split("_")
+library_name_list_capitalized = list()
+for item in library_name_list[:]:
+ library_name_list_capitalized.append(item.capitalize())
+library_name_capitalized = ' '.join(library_name_list_capitalized)
+library_name_concat_capitalized = ''.join(library_name_list_capitalized)
 
 _copyright = """_COMMENT_Copyright $template_year$ $template_author$.
 _COMMENT_Distributed under the Boost Software License, Version 1.0. (See
@@ -25,11 +36,12 @@
     author_list = last_author
 
 template.name_replacement('$template_library$', library_name)
-
+
 template.all_content_replacement('$template_library$', library_name)
-template.all_content_replacement('$template_Library$', library_name.capitalize())
+template.all_content_replacement('$template_Library$', library_name_capitalized)
+template.all_content_replacement('$template_LibraryConcat$', library_name_concat_capitalized)
 template.all_content_replacement('$template_LIBRARY$', library_name.upper())
-template.all_content_replacement('$template_Boost_Library$', 'Boost.' + library_name.upper())
+template.all_content_replacement('$template_Boost_Library$', 'Boost.' + library_name_capitalized)
 template.content_replacement(['.v2', '.jam'], '$template_python_copyright$', _copyright.replace('_COMMENT_','# '))
 template.content_replacement(['.hpp', '.cpp'], '$template_cpp_copyright$', _copyright.replace('_COMMENT_','// '))
 template.content_replacement(['.qbk'], '$template_qbk_copyright$',(_copyright.replace('_COMMENT_',''))


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk