| #!/usr/bin/python |
| |
| # Copyright 2003 Vladimir Prus |
| # Distributed under the Boost Software License, Version 1.0. |
| # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) |
| |
| |
| import BoostBuild |
| |
| t = BoostBuild.Tester() |
| |
| t.write("a.cpp", """ |
| #ifdef CF_IS_OFF |
| int main() {} |
| #endif |
| """) |
| |
| t.write("b.cpp", """ |
| #ifdef CF_1 |
| int main() {} |
| #endif |
| """) |
| |
| t.write("c.cpp", """ |
| #ifdef FOO |
| int main() {} |
| #endif |
| """) |
| |
| t.write("jamfile.jam", """ |
| # See if default value of composite feature 'cf' will be expanded to |
| # <define>CF_IS_OFF. |
| exe a : a.cpp ; |
| |
| # See if subfeature in requirements in expanded. |
| exe b : b.cpp : <cf>on-1 ; |
| |
| # See if conditional requirements are recursively expanded. |
| exe c : c.cpp : <toolset>$toolset:<variant>release <variant>release:<define>FOO |
| ; |
| """) |
| |
| t.write("jamroot.jam", """ |
| import feature ; |
| feature.feature cf : off on : composite incidental ; |
| feature.compose <cf>off : <define>CF_IS_OFF ; |
| feature.subfeature cf on : version : 1 2 : composite optional incidental ; |
| feature.compose <cf-on:version>1 : <define>CF_1 ; |
| """) |
| |
| t.expand_toolset("jamfile.jam") |
| |
| t.run_build_system() |
| t.expect_addition(["bin/$toolset/debug/a.exe", |
| "bin/$toolset/debug/b.exe", |
| "bin/$toolset/release/c.exe"]) |
| |
| t.rm("bin") |
| |
| |
| # Test for issue BB60. |
| |
| t.write("test.cpp", """ |
| #include "header.h" |
| int main() {} |
| """) |
| |
| t.write("jamfile.jam", """ |
| project : requirements <toolset>$toolset:<include>foo ; |
| exe test : test.cpp : <toolset>$toolset ; |
| """) |
| |
| t.expand_toolset("jamfile.jam") |
| t.write("foo/header.h", "\n") |
| t.write("jamroot.jam", "") |
| |
| t.run_build_system() |
| t.expect_addition("bin/$toolset/debug/test.exe") |
| |
| t.cleanup() |