| #!/usr/bin/python |
| |
| # Copyright (C) Vladimir Prus 2006. |
| # Distributed under the Boost Software License, Version 1.0. (See |
| # accompanying file LICENSE_1_0.txt or copy at |
| # http://www.boost.org/LICENSE_1_0.txt) |
| |
| import BoostBuild |
| |
| t = BoostBuild.Tester() |
| |
| |
| t.write("jamroot.jam", """ |
| project : requirements <threading>multi <variant>debug:<link>static ; |
| |
| build-project sub ; |
| build-project sub2 ; |
| build-project sub3 ; |
| build-project sub4 ; |
| """) |
| |
| t.write("sub/jamfile.jam", """ |
| exe hello : hello.cpp : -<threading>multi ; |
| """) |
| |
| t.write("sub/hello.cpp", """ |
| int main() {} |
| """) |
| |
| t.write("sub2/jamfile.jam", """ |
| project : requirements -<threading>multi ; |
| exe hello : hello.cpp ; |
| """) |
| |
| t.write("sub2/hello.cpp", """ |
| int main() {} |
| """) |
| |
| t.write("sub3/hello.cpp", """ |
| int main() {} |
| """) |
| |
| t.write("sub3/jamfile.jam", """ |
| exe hello : hello.cpp : -<variant>debug:<link>static ; |
| """) |
| |
| t.write("sub4/hello.cpp", """ |
| int main() {} |
| """) |
| |
| t.write("sub4/jamfile.jam", """ |
| project : requirements -<variant>debug:<link>static ; |
| exe hello : hello.cpp ; |
| """) |
| |
| t.run_build_system() |
| |
| t.expect_addition("sub/bin/$toolset/debug/link-static/hello.exe") |
| t.expect_addition("sub2/bin/$toolset/debug/link-static/hello.exe") |
| t.expect_addition("sub3/bin/$toolset/debug/threading-multi/hello.exe") |
| t.expect_addition("sub4/bin/$toolset/debug/threading-multi/hello.exe") |
| |
| t.rm(".") |
| |
| # Now test that path requirements can be removed as well. |
| t.write("jamroot.jam", """ |
| build-project sub ; |
| """) |
| |
| t.write("sub/jamfile.jam", """ |
| project : requirements <include>broken ; |
| exe hello : hello.cpp : -<include>broken ; |
| """) |
| |
| t.write("sub/hello.cpp", """ |
| #include "math.h" |
| int main() {} |
| """) |
| |
| t.write("sub/broken/math.h", """ |
| Broken |
| """) |
| |
| |
| t.run_build_system() |
| |
| t.expect_addition("sub/bin/$toolset/debug/hello.exe") |
| |
| t.cleanup() |