I would like to see the following change made to build-system.jam:
# We always load project in "." so that 'use-project' directives have any
# chance of being seen. Otherwise, we would not be able to refer to
# subprojects using target ids.
local current-project ;
if [ project.find "." : "." ]
{
current-project = [ project.target [ project.load "." ] ] ;
}
else
{
project.act-as-jamfile __cwd__ : "." ;
}
Without the additional else case above, if there isn’t a jam file in the current working directory, the environment is not properly setup before processing the command line arguments and could potentially fail when validating command line
properties. This additional line forces the jamroot.jam file to get loaded. Is this change reasonable? Can it or something similar be added to the next release? This change effectively allows bjam to be run from anywhere in the source tree not just where
a jam file exists (though this will work in most cases unless a property is specified on the command line that is not part of the default boost.build properties).
Thanks,
Chris