#!/usr/bin/python # Copyright 2003, 2006 Vladimir Prus # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) import BoostBuild t = BoostBuild.Tester() t.write("jamroot.jam", """ project : requirements static ; exe a : a.cpp [ lib helper : helper.cpp ] ; """) t.write("a.cpp", """ extern void helper(); int main() {} """) t.write("helper.cpp", """ void helper() {} """) t.run_build_system() t.expect_addition("bin/$toolset/debug/link-static/a__helper.lib") t.rm("bin/$toolset/debug/link-static/a__helper.lib") t.run_build_system("a__helper") t.expect_addition("bin/$toolset/debug/link-static/a__helper.lib") t.rm("bin") # Now check that inline targets with the same name but present in different # places are not confused between each other, and with top-level targets. t.write("jamroot.jam", """ project : requirements static ; exe a : a.cpp [ lib helper : helper.cpp ] ; exe a2 : a.cpp [ lib helper : helper.cpp ] ; """) t.run_build_system() t.expect_addition("bin/$toolset/debug/link-static/a.exe") t.expect_addition("bin/$toolset/debug/link-static/a__helper.lib") t.expect_addition("bin/$toolset/debug/link-static/a2__helper.lib") # Check that the 'alias' target does not change the name of inline targets, and # that inline targets are explicit. t.write("jamroot.jam", """ project : requirements static ; alias a : [ lib helper : helper.cpp ] ; explicit a ; """) t.rm("bin") t.run_build_system() t.expect_nothing_more() t.run_build_system("a") t.expect_addition("bin/$toolset/debug/link-static/helper.lib") t.cleanup()