| #!/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 <link>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 <link>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 <link>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() |