From d9fb658dbb8b629e0907ebfcddc46ee85037e477 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 14 Apr 2005 10:53:54 +0000 Subject: [PATCH] Fix --build-dir for invocation from subdirs. [SVN r28237] --- v2/build/project.jam | 8 ++++---- v2/test/build_dir.py | 9 ++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/v2/build/project.jam b/v2/build/project.jam index 16d217e61..4b7124950 100644 --- a/v2/build/project.jam +++ b/v2/build/project.jam @@ -796,8 +796,8 @@ module project-rules # This is Jamroot. if $(id) { - local specified = [ $(attributes).get build-dir ] ; - if $(specified) && [ path.is-rooted $(specified) ] + if $(explicit-build-dir) + && [ path.is-rooted $(explicit-build-dir) ] { errors.user-error "Absolute directory specified via 'build-dir' project attribute" : "Don't know how to combine that with the --build-dir option." @@ -806,9 +806,9 @@ module project-rules # Strip the leading slash from id. local rid = [ MATCH /(.*) : $(id) ] ; local p = [ path.join - $(global-build-dir) $(rid) $(specified) ] ; + $(global-build-dir) $(rid) $(explicit-build-dir) ] ; - $(attributes).set build-dir : $(p) ; + $(attributes).set build-dir : $(p) : exact ; } } else diff --git a/v2/test/build_dir.py b/v2/test/build_dir.py index 0e2998215..046f82224 100644 --- a/v2/test/build_dir.py +++ b/v2/test/build_dir.py @@ -80,9 +80,16 @@ build-project sub ; """) t.run_build_system("--build-dir=build") -t.expect_addition(["build/foo/bin.v2/$toolset/debug/a.exe", +t.expect_addition(["build/foo/bin.v2/$toolset/debug/a.exe", "build/foo/bin.v2/sub/$toolset/debug/b.exe"]) +# Try building in subdir +t.rm('build') +t.run_build_system("--build-dir=build", subdir="sub") +t.expect_addition(["sub/build/foo/bin.v2/sub/$toolset/debug/b.exe"]) + + + t.write("Jamroot", """ project foo : build-dir %s ; exe a : a.cpp ;