#!/usr/bin/python # Copyright (C) Vladimir Prus 2006. # Distributed under the Boost Software License, Version 1.0. (See # accompanying file LICENSE.txt or copy at # https://www.bfgroup.xyz/b2/LICENSE.txt) import BoostBuild t = BoostBuild.Tester(use_test_config=False) t.write("jamroot.jam", """ project : requirements multi debug:static ; # Force link to be relevant project : requirements shared:TEST_DLL ; 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()