From e9b124397ad78ef9b0f4bb8c19d1f5605882ab45 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Thu, 2 May 2002 18:59:31 +0000 Subject: [PATCH] Some bug fixes [SVN r13623] --- src/build/project.jam | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/build/project.jam b/src/build/project.jam index 67a478bb9..6f3f5cf3f 100644 --- a/src/build/project.jam +++ b/src/build/project.jam @@ -41,6 +41,8 @@ rule load ( jamfile-location ) if $(loaded) { + .projects += $(jamfile-location) ; + for local subinclude in [ $(module-name).subincludes ] { load [ os.path.join $(jamfile-location) $(subinclude) ] ; @@ -141,7 +143,14 @@ rule assign-option ( module : option + ) # rule module-name ( jamfile-location ) { - return Jamfile@$(jamfile-location) ; + local absolute + = [ os.path.native + [ os.path.root_relative_path + [ os.path.make $(jamfile-location) ] + [ os.path.make [ PWD ] ] + ] ] ; + + return Jamfile<$(absolute)> ; } # @@ -152,8 +161,7 @@ rule dump ( ) # Sort projects so that output is independent of order. It is # needed to allow tests to works despite possible change in # project inclusion order. - local projects = $(projects) ; - projects = [ sequence.insertion-sort $(projects) ] ; + local projects = [ sequence.insertion-sort $(.projects) ] ; ECHO "Projects structure dump" ; ECHO "" ; @@ -217,13 +225,8 @@ local rule find-jamfile ( for local jamfile in $(jamfile-glob) { local normalized = [ os.path.make $(jamfile) ] ; - if ! [ os.path.is_rooted $(normalized) ] - { - local root-path = - [ os.path.parent [ os.path.make [ modules.binding [ CALLER_MODULE ] ] ] ] ; - normalized = - [ os.path.native [ os.path.root_relative_path $(normalized) $(root-path) ] ] ; - } + + normalized = [ os.path.root_relative_path $(normalized) [ os.path.make [ PWD ] ] ] ; # Filter out if the found file is above the target parent root. if $(parent-root)