| #!/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) |
| |
| # Test the <implicit-dependency> is respected even if the target referred to is |
| # not built itself, but only referred to by <implicit-dependency>. |
| |
| import BoostBuild |
| |
| t = BoostBuild.Tester() |
| |
| t.write("jamroot.jam", """ |
| make a.h : : gen-header ; |
| explicit a.h ; |
| |
| exe hello : hello.cpp : <implicit-dependency>a.h ; |
| |
| import os ; |
| if [ os.name ] = NT |
| { |
| actions gen-header |
| { |
| echo int i; > $(<) |
| } |
| } |
| else |
| { |
| actions gen-header |
| { |
| echo "int i;" > $(<) |
| } |
| } |
| """) |
| |
| t.write("hello.cpp", """ |
| #include "a.h" |
| int main() { return i; } |
| """) |
| |
| |
| t.run_build_system() |
| |
| t.expect_addition("bin/$toolset/debug/hello.exe") |
| |
| t.rm("bin") |
| |
| t.write("jamroot.jam", """ |
| make dir/a.h : : gen-header ; |
| explicit dir/a.h ; |
| |
| exe hello : hello.cpp : <implicit-dependency>dir/a.h ; |
| |
| import os ; |
| if [ os.name ] = NT |
| { |
| actions gen-header |
| { |
| echo int i; > $(<) |
| } |
| } |
| else |
| { |
| actions gen-header |
| { |
| echo "int i;" > $(<) |
| } |
| } |
| """) |
| |
| t.write("hello.cpp", """ |
| #include "dir/a.h" |
| int main() { return i; } |
| """) |
| t.run_build_system() |
| |
| t.expect_addition("bin/$toolset/debug/hello.exe") |
| |
| t.cleanup() |