text: #!/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 <threading>multi <variant>debug:<link>static ;
  # Force link to be relevant
  project : requirements <link>shared:<define>TEST_DLL ;
  
  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()
  