Boost logo

Boost-Build :

From: Jurko Gospodnetiæ (jurko.gospodnetic_at_[hidden])
Date: 2007-12-28 09:17:56


   Some suggestions/comments for Boost Build.

     * virtual-target.jam rule recent-targets rule comment seems truncated.

     * 'import class ;' causes an ugly crash.

     * Remove unused type.change-generated-target-suffix and related
rules or add tests for them.

     * Error message 'syntax error at EOF' should state the file in

     * Totally misleading error messages in case you type in 'local' in
front of an action definition.

     * Duplicated property-set.create rule implementation should be
removed from the property-set.jam file as it is implemented as a native
rule. Most likely the same holds for other native rules as well.

     * Document the built-in NATIVE_RULE rule.

     * Update documentation to note that Jamfile and Jamroot files may
also be named Jamfile.jam & Jamroot.jam. The extensions make it much
easier to configure different tools so they treat these files like
regular Boost Jam scripts (e.g. make an editor open them by default,
make FTP transfer them as ASCII files, etc...). Possibly also deprecate
other names for these files.

     * Document that when you register a type Boost Build automatically
prepares the following features for that type.
         * <target-type>.
         * <main-target-type>.
             * When building a main target <main-target-type>type will
be defined with the target's type.
                 * Need to document what a main target is.
         * <base-target-type>.
             * When building a target <base-target-type>base-type will
be defined with all base types of the given target's type.

     * Document how Jamfiles are expected to be written in order to be
correctly accessed by the --help system.
         * First comment block not containing the word [Cc]opyright is
interpreted as the module's documentation.
             * Brief copyright information consists of the first sentence.
                 * Should not contain '. ' in it.
         * Last comment block containing the word [Cc]opyright is
interpreted as copyright information.
             * Brief copyright information consists of the first sentence.
                 * Should not contain '. ' in it.

     * --help system should but is not displaying project specific help
in non top-level projects.

     * Upgrade the --help system to work with files not on the
BOOST_BUILD_PATH like 'Jamfile', 'Jamroot' or local project .jam files.

     * Report an error in case a project rule is used more than once in
a single project.

     * Make documentation more explicit about the fact that there may be
at most one project per folder. Took me a while to realize that there
many not be two projects in a single folder, e.g. two in a single
Jamfile or one in the Jamfile and one in the Jamroot file.

     * Calling bjam with a Jamfile containing an invalid build-project
rule such as 'build-project //' causes it to exit silently.

     * Allow defining a derived variant with disabling instead of only
adding to features defined on the base type variant. E.g. defining a
releaseWithAsserts variant which should be the same as release but
should not have NDEBUG defined.

     * Improve the import rule so it takes an additional path parameter
which would then use that path instead of the one from BOOST_BUILD_PATH
as the search path or allow it to take a path to the module file instead
of just the name.

     * Clean up the documentation on the differences between <use> and
<dependency> features.
         * One difference seen in tools/stage.jam install-target-class.
.collect-targets() rule.

     * Update command-line options documentation with package.jam
package.install rule related options: --prefix, --exec-prefix, --bindir,
--libdir, --includedir.
         * --exec-prefix option seems to be ignored in code and should
be removed.

     * Update the main Boost Jamfile comment to use the correct
--build-dir command-line option name instead of --builddir.

     * Make Boost Build work with non-ascii characters in folder names.
         * E.g. make path-constant XXX : "." set XXX to contain correct
         * Could be the OS shell problem.

     * Make Boost Build work correctly with short paths on Windows.
         * Currently if a short path is specified with the --bindir
command-line option used by the package.install rule the build will fail
if the folder already exists and its full name is different from its
short name.

   Hope this helps.

   Best regards,
     Jurko Gospodnetiæ

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at