#!/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(use_test_config=False) t.write("jamroot.jam", """ project : requirements multi debug:static ; build-project sub ; build-project sub2 ; build-project sub3 ; build-project sub4 ; """) t.write("sub/jamfile.jam", """ exe hello : hello.cpp : -multi ; """) t.write("sub/hello.cpp", """ int main() {} """) t.write("sub2/jamfile.jam", """ project : requirements -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 : -debug:static ; """) t.write("sub4/hello.cpp", """ int main() {} """) t.write("sub4/jamfile.jam", """ project : requirements -debug: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 broken ; exe hello : hello.cpp : -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()